144
D. Rocchesso: Sound Processing
per-thread processing
Nyquist language
Common Lisp Music
SAOL
Figure 2: Music-V file description
the possibility of modifying the instrument state as a result of a chain of weakly
synchronized events (that is, to perform some sort of per-thread processing).
Instead, languages such as Music V rely on special initialization steps encoded
within instruments to handle articulatory gestures involving several pitches.
Other models have been proposed for dealing with less rigid descriptions
of sound and music events. One such model is tied to the Nyquist language
5
,
developed by the team of Roger Dannenberg at the Carnegie Mellon Univer-
sity [28]. This language provides a unified treatment of music and sound events
and is based on functional programming (Lisp language). Algorithmic manipu-
lations of symbols, processing of signals, and structured temporal modifications
are all possible without leaving a consistent framework. In particular, Nyquist
exploits the idea of behavioral abstraction, i.e. time-domain transformations
are interpreted in an abstract sense and the details are encapsulated in de-
scriptions of behaviors [27]. In other words, musical concepts such as duration,
onset time, loudness, time stretching, are specified differently in different UGs.
Modern compositional paradigms benefit from this unification of control signals,
audio signals, behavioral abstractions and continuous transformations.
Placing some of the most widely used languages for sound manipulation
along an axis representing flexibility and expressiveness, the lower end is prob-
ably occupied by Csound while the upper one is probably occupied by Nyquist.
Another notable language which lies somewhere in between is Common Lisp
Music
6
(CLM), which was developed by Bill Schottstaedt as an extension of
Common Lisp [87]. If CLM is not too far from Nyquist (thanks to the underlying
Lisp language) there is another language closer to the other edge of the axis,
which represents a "modernization" of Csound. The language is called SAOL
7
and it has been adopted as the formal specification of Structured Audio for the
MPEG-4 standard [107]. SAOL orchestras and scores can be translated into C
language by means of the software translator SFRONT
8
developed by John
Lazzaro and John Wawrzynek at UC Berkeley.
The simple examples that we are presenting in this book are written in
5
http://www.cs.cmu.edu/~rbd/nyquist.html
6
http://www-ccrma.stanford.edu/software/clm/
7
http://www.saol.net
8
http://www.cs.berkeley.edu/~lazzaro/sa/
Next Page >>
<< Previous Page
Back to the Table of Contents