Nyquist (programming language)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Designed by Roger Dannenberg
Developer Roger Dannenberg
Influenced by

Nyquist is a programming language for sound synthesis and analysis based on the Lisp programming language. It is an extension of the XLISP dialect of Lisp,[1] and is named for Harry Nyquist.[2]

With Nyquist, the programmer designs musical instruments by combining functions, and can call upon these instruments and generate a sound just by typing a simple expression. The programmer can combine simple expressions into complex ones to create a whole composition, and can also generate various other kinds of musical and non-musical sounds.[citation needed]

The Nyquist interpreter can read and write sound files, MIDI files, and Adagio text-based music score files. On many platforms, it can also produce direct audio output in real time.

The Nyquist programming language can also be used to write plug-in effects for the Audacity digital audio editor.[3]

One notable difference between Nyquist and more traditional MUSIC-N languages is that Nyquist does not segregate synthesis functions (see unit generator) from "scoring" functions. For example Csound is actually two languages, one for creating "orchestras" the other for writing "scores". With Nyquist these two domains are combined.

Nyquist runs under Linux and other Unix environments, Mac OS, and Microsoft Windows.

The Nyquist programming language and interpreter were written by Roger Dannenberg at Carnegie Mellon University, with support from Yamaha Corporation and IBM.[citation needed]


  1. ^ Dannenberg, Roger B. (1997). "Machine Tongues XIX: Nyquist, a Language for Composition and Sound Synthesis". Computer Music Journal. 21 (3): 50. doi:10.2307/3681013. ISSN 0148-9267. 
  2. ^ Krapp, Peter (2011). Noise Channels: Glitch and Error in Digital Culture. University of Minnesota Press. p. xiii. ISBN 9781452933191. Retrieved 18 January 2016. 
  3. ^ "Nyquist Plug-ins Reference". Audacity Wiki. Retrieved May 2016.  Check date values in: |access-date= (help)

External links[edit]

Timeline of Lisp dialects(edit)
1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015
Lisp 1.5 Lisp 1.5
Maclisp Maclisp
Interlisp Interlisp
ZetaLisp Lisp Machine Lisp
Scheme Scheme
Common Lisp Common Lisp
Emacs Lisp Emacs Lisp
EuLisp EuLisp
Racket Racket
Arc Arc
Clojure Clojure
Hy Hy