.TL
PREFACE
.PP
Realizing music by digital computer involves synthesizing audio signals with
discrete points or \fIsamples\fR that are representative of continuous waveforms.
There are several ways of doing this, each affording a different manner of control.
\fIDirect synthesis\fR generates waveforms by sampling a
stored \fIfunction\fR representing a single cycle;
\fIadditive synthesis\fR generates the many partials of a complex tone,
each with its own loudness envelope;
\fIsubtractive synthesis\fR begins with a complex tone and filters it.
\fINon-linear synthesis\fR uses frequency modulation and wave shaping to
give simple signals complex characteristics, while \fIsampling\fR and storage
of natural sound allows it to be used at will.
.PP
Since comprehensive moment-by-moment specification of sound can be tedious,
control is gained in two ways: 
1) from the \fIinstruments\fR in an \fIorchestra\fR, and
2) from the \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 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.
.PP
The instruments in a \fBCsound\fR 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 \fIstandard numeric score\fR format.
Although many users are content with this format, higher level
score processing languages are often convenient.
The \fBScot\fR language uses simple alphanumeric encoding of pitch and
time, in a fashion that parallels traditional music notation;
its translator produces a \fIstandard numeric\fR score.
The \fBCscore\fR program can expand an existing numeric score,
according to user-supplied algorithms written in the \fBC\fR language.
One powerful score 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 to a \fBCsound\fR orchestra for
performance.
.PP
The programs making up the \fBCsound\fR 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;  my own \fIMusic 360\fR (1968) was very indebted to his work.
With \fIMusic 11\fR (1973) I took a different tack:
the two distinct networks of \fIcontrol\fR and \fIaudio\fR
signal processing stemmed from my intensive involvement in the
preceding years in hardware synthesizer concepts and design.
This division has been retained in \fBCsound\fR.
.PP
Because it is written entirely in \fBC, Csound\fR is easily installed
on any machine running Unix or C.  At MIT it runs on VAX/DECstations under
Ultrix 4.0, on SUNs under OS 4.1, and on the Macintosh under ThinkC 4.0.
With this single language for audio signal processing, users move easily
from machine to machine.
.PP
The 1991 version has many new features.  First, I am indebted to others
for the contribution of the phase vocoder and FOF synthesis modules.
This release also charts a new direction with the addition of a
\fIspectral data type\fR, holding much promise for future development.
Most importantly, with the advent of a new generation of RISC processors that
are an order of magnitude faster than those on which computer music was born,
researchers and composers now have access to workstations on which
\fIrealtime software synthesis with sensing and control\fR is now a reality.
This is perhaps the single most important development for people working in
the field.  This new Csound is designed to take maximum advantage of realtime
audio processing, and to encourage interactive experiments in this exciting
new domain.
.br
											B.V.

