Composing Music with Computers

Chapter 8: Music Composition Software on the Accompanying CD-ROM

8.1 A programming language for algorithmic composition: nyquist

Nyquist, developed by Roger Dannenberg at the Carnegie Mellon University, USA, is a programming language for music composition and sound synthesis: it supports both high-level compositional tasks and low-level signal processing within a single integrated environment. This feature is particularly attractive for composers wishing to work at the microscopic level of abstraction. Most sound synthesis languages (e.g., the popular Csound) are not entirely suitable for algorithmic composition because they are limited to instrument design: the actual notes to be played on an instrument must be manually specified one-by-one in a score file. There is no provision for writing generative musical programs in such languages.

Nyquist is implemented on top of a programming language called Lisp, more specifically XLisp, an extension of Lisp that is freely available for non-commercial purposes. Nyquist can be thought of as a library of Lisp functions that can be called up by other user-specified functions in a program. In fact, XLisp has been extended to incorporate sounds as a built-in data type, which gives Nyquist a great deal of expressive power. Composers thus write their algorithmic programs in Nyquist as if they were writing Lisp programs. The great advantage of this is that composers have the full potential of Lisp, which is a powerful language used in artificial intelligence research, combined with a wide variety of functions and abstract structures for composition devised by Dannenberg. The caveat of Nyquist is that composers should be familiar with Lisp programming...

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: Robot Software
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.