File: TITLE.html

package info (click to toggle)
csound-doc 3.47b2-2
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 1,492 kB
  • ctags: 272
  • sloc: makefile: 36
file content (312 lines) | stat: -rw-r--r-- 14,978 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
<HTML>
<HEAD>
   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
   <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; IRIX 6.3 IP32) [Netscape]">
   <TITLE>CSOUND MANUAL (HTML Version 3.47)</TITLE>
</HEAD>
<BODY>

<CENTER><A NAME="Csound_Title_Page"></A>
<HR WIDTH="100%"></CENTER>

<CENTER><B><A HREF="REFER.html">QUICK REF</A></B> <B>- <A HREF="INDEX.html">INDEX</A></B>
<B>- <A HREF="CONTENTS.html">CONTENTS</A> - <A HREF="Syntax/SYNTAX.html">ORCHESTRA</A>
- <A HREF="NumScore/NUMSC.html">SCORE</A> - <A HREF="Function/GENS.html">GENS</A></B></CENTER>

<CENTER><B><A HREF="Cscore/CSCORE.html">CSCORE</A> - <A HREF="Command/CSCOMM.html">COMMAND</A>
- <A HREF="Utility/UTILITIES.html">UTILITIES</A> - <A HREF="Tutorial/TUTORIALS.html">TUTORIALS</A></B></CENTER>

<CENTER>
<HR></CENTER>

<CENTER><BR>
<BR>
<B><FONT SIZE=+4>The Csound Manual</FONT></B></CENTER>

<CENTER><B><FONT SIZE=+1>(version 3.47)</FONT></B><BR>
<BR></CENTER>

<CENTER>
<H1>
A Manual for the Audio Processing System&nbsp;<BR>
and Supporting Programs with Tutorials</H1></CENTER>

<CENTER>
<H4>
by Barry Vercoe, Media Lab M.I.T.<BR>
and contributors<BR>
<BR></H4></CENTER>

<CENTER><B>Edited by Jean Pich&eacute;, Universit&eacute; de Montr&eacute;al</B><BR>
<BR></CENTER>

<CENTER>&nbsp;</CENTER>

<CENTER><I>Copyright 1986, 1997 by the Massachusetts Institute of Technology.
All rights reserved.&nbsp;<BR>
Copyright 1997 by Analog Devices Incorporated. All rights reserved.</I><BR>
<BR>
<BR></CENTER>

<CENTER>
<HR></CENTER>

<H4>
<U>VERSION</U></H4>
This is the Title Page of the <B>3.47 </B>html version of the Csound manual.
It accompanies the public <B>Csound version 3.47 </B>as compiled by <B>John
ffitch</B> of the University of Bath in the UK and available for downloading
at :
<UL>
<LI>
<A HREF="ftp://ftp.maths.bath.ac.uk/pub/dream">ftp://ftp.maths.bath.ac.uk/pub/dream</A>
or</LI>

<LI>
<A HREF="ftp://ftp.musique.umontreal.ca/pub/mirrors/dream">ftp://ftp.musique.umontreal.ca/pub/mirrors/dream</A></LI>
</UL>
This manual was compiled from the canonical Csound Manual sources kept
by <B>Jean Pich&eacute;</B> and <B>John ffitch</B>. The manual is currently
available in html format only. Future releases will also include the following
formats: <B>.rtf</B> (Rich Text Format), <B>.txt</B> (ASCII text), and
<B>.ps</B> (PostScript format)

<P>The initial sources for this edition of the canonical Csound Manual
are based on the work of <B>Peter J. Nix</B> of the University of Leeds,
November 1994.
<H4>
<U>Important Note:</U></H4>
The information contained in this manual is generic. Reference to platform-specific
versions of Csound have been removed. Nevertheless, some features described
here may not work as indicated on a given platform. When in doubt, please
refer to the platform-specific documentation available at the above-mentionned
ftp sites.
<UL>
<LI>
<A HREF="#Copyright">Copyright and Acknowledgements</A></LI>

<LI>
<A HREF="CONTENTS.html">Contents</A></LI>

<LI>
<A HREF="#PREFACE">Preface</A></LI>

<LI>
<A HREF="INDEX.html">Index</A></LI>
</UL>

<CENTER><A NAME="Copyright"></A>
<HR><B><A HREF="REFER.html">QUICK-REF</A></B> - <B><A HREF="TITLE.html"><FONT SIZE=+1>C</FONT>soundManual</A></B>
- <B><A HREF="TITLE.html">Top of this section</A></B> - <A HREF="#Csound_Title_Page">Previous</A>
- <A HREF="CONTENTS.html">Contents</A> - <A HREF="INDEX.html">Index</A>
- <A HREF="#PREFACE">Next</A>&nbsp;
<HR></CENTER>

<H1>
Csound Manual Copyright Notice</H1>
Copyright 1986, 1992 by the Massachusetts Institute of Technology. All
rights reserved.

<P>Developed by <B>Barry L. Vercoe</B> at the Experimental Music Studio,
Media Laboratory, M.I.T., Cambridge, Massachusetts, with partial support
from the System Development Foundation and from National Science Foundation
Grant # IRI-8704665.

<P>Permission to use, copy, or modify these programs and their documentation
for educational and research purposes only and without fee is hereby granted,
provided that this copyright and permission notice appear on all copies
and supporting documentation. For any other uses of this software, in original
or modified form, including but not limited to distribution in whole or
in part, specific prior permission from M.I.T. must be obtained. M.I.T.
makes no representations about the suitability of this software for any
purpose. It is provided "as is" without express or implied warranty. Extended
Csound developed by Analog Devices, Norwood, MA.

<P><I>This Hypertext edition of the MIT Csound Manual was prepared for
the World Wide Web by <B>Peter J Nix</B> of the Department of Music at
the University of Leeds and <B>Jean Pich&eacute;</B> of the Facult&eacute;
de musique de l'Universit&eacute; de Montr&eacute;al. They fully acknowledge
the rights of the authors of the original documentation and programs as
set out above and further request that this notice appear wherever this
material is held and that all hypertext links to it in the accompanying
edition of the Manual be retained .</I>
<CENTER><A NAME="PREFACE"></A>
<HR><B><A HREF="REFER.html">QUICK-REF</A></B> - <B><A HREF="TITLE.html"><FONT SIZE=+1>C</FONT>soundManual</A></B>
- <B><A HREF="TITLE.html">Top of this section</A></B> - <A HREF="#Copyright">Previous</A>
- <A HREF="CONTENTS.html">Contents</A> - <A HREF="INDEX.html">Index</A>
- <A HREF="#Introduction">Next</A>&nbsp;
<HR></CENTER>

<H2>
PREFACE to the Csound Manual</H2>

<H2>
by Barry Vercoe, MIT Media Lab</H2>
Realizing music by digital computer involves synthesizing audio signals
with discrete points or samples representative of continuous waveforms.
There are many ways to do this, each affording a different manner of control.
Direct synthesis generates waveforms by sampling a stored function representing
a single cycle; additive synthesis generates the many partials of a complex
tone, each with its own loudness envelope; subtractive synthesis begins
with a complex tone and filters it. Non-linear synthesis uses frequency
modulation and waveshaping to give simple signals complex characteristics,
while sampling and storage of natural sound allows it to be used at will.

<P>Since comprehensive moment-by-moment specification of sound can be tedious,
control is gained in two ways: 1) from the instruments in an orchestra,
and 2) from the events within a score. An orchestra is really a computer
program that can produce sound, while a score is a body of data which that
program can react to. Whether a rise-time characteristic is a fixed constant
in an instrument, or a variable of each note in the score, depends on how
the user wants to control it.

<P>The instruments in a Csound orchestra are defined in a simple syntax
that invokes complex audio processing routines. A score passed to this
orchestra contains numerically coded pitch and control information, in
standard numeric score format. Although many users are content with this
format, higher level score processing languages are often convenient.

<P>The programs making up the Csound system have a long history of development,
beginning with the Music 4 program written at Bell Telephone Laboratories
in the early 1960's by Max Mathews. That initiated the stored table concept
and much of the terminology that has since enabled computer music researchers
to communicate. Valuable additions were made at Princeton by the late Godfrey
Winham in Music 4B; my own Music 360 (1968) was very indebted to his work.
With Music 11 (1973) I took a different tack: the two distinct networks
of control and audio signal processing stemmed from my intensive involvement
in the preceding years in hardware synthesizer concepts and design. This
division has been retained in Csound.

<P>Because it is written entirely in C, Csound is easily installed on any
machine running Unix or C. At MIT it runs on VAX/DECstations under Ultrix
4.2, on SUNs under OS 4.1, SGI's under 5.0, on IBM PC's under DOS 6.2 and
Windows 3.1, and on the Apple Macintosh under ThinkC 5.0. With this single
language for defining the audio signal processing, and portable audio formats
like AIFF and WAV, users can move easily from machine to machine.

<P>The 1991 version added phase vocoder, FOF and spectral data types. 1992
saw MIDI converter and control units, enabling Csound to be run from MIDI
score-files and external keyboards. In 1994 the sound analysis programs
(lpc, pvoc) were integrated into the main load module, enabling all Csound
processing to be run from a single executable, and Cscore could pass scores
directly to the orchestra for iterative performance. The 1995 release introduced
an expanded MIDI set with MIDI-based linseg, butterworth filters, granular
synthesis, and an improved spectral-based pitch tracker. Of special importance
was the addition of run-time event generating tools (Cscore and MIDI) allowing
run-time sensing and response setups that enable interactive composition
and experiment. It appeared that realtime software synthesis was now showing
some real promise.

<P><B>PREFACE TO THE EXTENDED OPCODES</B>

<P>During the years 1994-97, Analog Devices Corporation embarked on a major
new development in this field. Although the audio, music and multimedia
industries had made considerable gain in the previous ten years by embracing
digital means of sound synthesis, recording, post production and packaging,
the devices that brought about this revolution have remained largely monolithic,
single purpose, and inflexible. An up-to-date studio must maintain a large
rack of equipment, where each device has a singular function based on application
specific technology. The ADI initiative sought to change that by letting
programmable devices be truly programmable, and having the audio work done
by realtime flexible software. Their strategy began with porting MIT's
Csound audio processing software to their SHARC 21060 DSP.

<P>Porting Csound to a floating-point DSP is both enticing and thought-provoking.
Being able to run complex Csound instruments in realtime has immediate
appeal, and the floating-point intensive Csound software is exceedingly
well served by the SHARC hardware and its utilities. The port could have
been a simple one. However, a forward-looking audio-processing network
is also one that can continually change its profile in response to audio
and tactile sensing of human gesture. This naturally invited some major
re-thinking.

<P>To support flexible fuctionality and interactivity, Csound was substantially
modified by dividing it into two interacting parts:

<P>1) csound - a control or host-resident part for preprocessing the user-defined
orchestras and scores, downloading both, creating ftables and sampled data
tables, and managing all disk and graphic I/O.

<P>2) dsound - a DSP-resident part for performing sustained hi-fidelity
audio processing, with direct on-board audio I/O and MIDI performance sensing.

<P>The two parts are tightly connected by a custom-developed host interface,
able to handle simultaneous bi-directional streams of disk-based audio
data, control data, score files, MIDI files and graphical data, while the
high-fidelity audio processing on the DSP is smoothly maintained.

<P>Given this realtime structure, the signal-processing repertoire of the
original Csound was considerably extended and made more effective. Extensions
induced by interactive realtime performance enable the system to operate
like a modern synthesizer, while those aimed at automatic MIDI file performance
enable it to operate as a Karaoke machine. The extensions are most visible
in faster generators (loscil1) and better voice input processing (harmon2),
along with additional effects processing (chorus, flanging). The new opcodes
are identified throughout this manual by an appended asterisk (*). Instruments
with these opcodes will run only with the extended hardware. Instruments
without them will run in both places.

<P>Although many of the extensions are complex, the added richness has
little advantage without realtime live performance, and many of the internal
changes were driven by the wish for high- speed response to external keyboards.
As a result, most extensions have been written in 21060 assembler language,
whose hand coding was found to gain up to 6 times the computational efficiency
of its C equivalent. The addition of profiling opcodes (clkon, clkoff)
is informative here. From all outward appearances, however, the realtime
performable instruments look just like your Csound instruments always did.
Your old favorite pieces will still run, but now in realtime, and you can
play on top of them too. This is the promise that is being fulfilled.

<P>B.V.
<CENTER><A NAME="Introduction"></A>
<HR><B><A HREF="REFER.html">QUICK-REF</A></B> - <B><A HREF="TITLE.html"><FONT SIZE=+1>C</FONT>soundManual</A></B>
- <B><A HREF="TITLE.html">Top of this section</A></B> - <A HREF="#PREFACE">Previous</A>
- <A HREF="CONTENTS.html">Contents</A> - <A HREF="INDEX.html">Index</A>
- <A HREF="#The_Csound_Mailing_List">Next</A>&nbsp;
<HR></CENTER>

<H2>
How to use the <B>Csound</B> Manual</H2>
The <B>Csound</B> Manual is arranged as a <I>Reference</I> manual (not
a tutorial), since that is the form the user will eventually find most
helpful when inventing instruments. Csound can be a demanding experience
at first. Hence it is highly advisable to peruse the tutorials included
in this document. Once the basic concepts are grasped from the beginning
tutorial, the reader might let himself into the remainder of the text by
locating the information presented in the Reference entries that follow.
<CENTER><A NAME="The_Csound_Mailing_List"></A>
<HR><B><A HREF="REFER.html">QUICK-REF</A></B> - <B><A HREF="TITLE.html"><FONT SIZE=+1>C</FONT>soundManual</A></B>
- <B><A HREF="TITLE.html">Top of this section</A></B> - <A HREF="#Introduction">Previous</A>
- <A HREF="CONTENTS.html">Contents</A> - <A HREF="INDEX.html">Index</A>
- <B><A HREF="CONTENTS.html">Next Section</A></B>&nbsp;
<HR></CENTER>

<H2>
The Csound Mailing List</H2>
A <B>Csound</B> Mailing List exists to discuss Csound. It is run by James
Andrews of Exeter University, UK.

<P>To have your name put on the mailing list send a message to:

<P><TT>csound-request@maths.ex.ac.uk</TT>

<P>with a single line in the body of the message of the form:

<P><TT>subscribe name@host</TT>

<P>Posts sent to <TT>csound@maths.ex.ac.uk</TT> go to <I>all</I> subscribed
members of the list.
<CENTER>&nbsp;</CENTER>

<CENTER>&nbsp;
<HR><B><A HREF="REFER.html">QUICK-REF</A></B> - <B><A HREF="TITLE.html"><FONT SIZE=+1>C</FONT>soundManual</A></B>
- <B><A HREF="TITLE.html">Top of this section</A></B> - <A HREF="#Introduction">Previous</A>
- <A HREF="CONTENTS.html">Contents</A> - <A HREF="INDEX.html">Index</A>
- <B><A HREF="CONTENTS.html">Next Section</A></B>&nbsp;
<HR></CENTER>

<CENTER><B><I><FONT COLOR="#006600">HTML Csound Manual - <FONT SIZE=-1>&copy;
Jean Pich&eacute; &amp; Peter J. Nix, 1994-97</FONT></FONT></I></B></CENTER>

</BODY>
</HTML>