.TL PREFACE .PP The concept of realizing music by digital computer involves synthesizing audio signals with a series of discrete points or \fIsamples\fR that are representative of continuous waveforms. There are several ways of doing this digitally, each affording a different manner of control. The method of \fIdirect synthesis\fR generates waveforms by sampling a stored picture or \fIfunction table\fR representing a single cycle. The method of \fIadditive synthesis\fR generates the many partials of a complex tone one at a time, each with its own loudness envelope. \fISubtractive synthesis\fR takes a complex tone and then filters it as required. \fINon-linear synthesis\fR employs techniques such as frequency modulation and wave shaping to imbue simple signals with complex characteristics. \fISampling synthesis\fR involves digital storage of natural sound, which can be recalled over and over in structuring a piece. .PP Comprehensive moment-by-moment specification of an electronic composition can be tedious. As a practical measure, control is prescribed in two ways: 1) by the structure of \fIinstruments\fR within an \fIorchestra\fR, and 2) by the details of \fIevents\fR within a \fIscore\fR. An orchestra is really a computer program that can produce sound, while a score is a body of data which that program can read and react to. Whether a characteristic such as a rise-time is a fixed constant in an instrument, or a variable prescribed by each note in the score, depends on just how the user wishes to control it. .PP The instruments in a \fBCsound\fR orchestra are user-defined in a simple high-level syntax that then invokes complex audio processing routines. A score passed to this orchestra is made up of numerically coded pitch and control information, in a form known as \fIstandard numeric score\fR format. Although many users are content to work in this format, higher level score representation and processing languages are often convenient. Two are described in these pages. The \fBScot\fR language uses simple alphanumeric encoding of pitch and time data, in a fashion that parallels traditional music notation; its translator will produce a \fIstandard numeric\fR score from this. The \fBCscore\fR program can expand an existing numeric score (or create one from scratch), according to user-supplied processing algorithms written in the \fBC\fR language. One strategy, then, is to define a \fIkernel\fR score in \fBScot\fR, translate it to \fInumeric\fR form, then expand and modify the data using \fBCscore\fR before sending it on to a \fBCsound\fR orchestra for performance. This provides a powerful way of exploring score structures. .PP The programs and languages making up the \fBCsound\f system have a long history of development, beginning with the \fIMusic 4\fR 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 \fIMusic 4B\fR, and my own \fIMusic 360\fR (1968) was very indebted to his work. With \fIMusic 11\fR (1973) I took a different tack. The division into two clear networks of \fIcontrol\fR and \fIaudio\fR signal processing stemmed from my intensive involvement in the two preceding years in hardware synthesizer concepts and design, and this division has been retained in \fBCsound\fR. I am indebted to many staff and student assistants for their contributions along the way. .PP Because it is written entirely in \fBC, Csound\fR is easily installed on any machine running Unix, and on many others that have a good C compiler. At MIT it runs on Vaxes, MicroVaxes and SUNs under Unix 4.3 BSD, and on Hewlett Packard Bobcat workstations under HP-Unix (essentially System 5); it also runs on the Mac II under MPW. With a common language for audio signal processing, users can move easily from machine to machine. This is aided by ethernet links that transfer both text and sound files between machines. At MIT a subset of Csound also runs in realtime on experimental MacII DSP boards. With suitable experience in both, the two worlds of software synthesis and realtime performance are thus merged into a single context of interactive experiment and informed creative control. .br B.V. .bp