Nyquist is a language designed for digital sound synthesis and computer-assisted music composition. It
is based upon the XLISP implementation of the LISP programming language. Nyquist is similar to other
software synthesis languages such as Csound and cmusic. Like programs written in those languages Nyquist
programs invoke and arrange various audio synthesis functions which are employed by musically useful
algorithms and control structures, but instrument design and scoring syntax are completely integrated in
Nyquist.Example:;;Makeandplayasound
(play (osc 60))
This one-line program will call a Nyquist oscillator function to create a default sine wave with a
default amplitude of 1.0 (normalized) and a pitch value of 60 (MIDI note number for middle C).
The output from the oscillator is then sent to the system sound hardware for realtime play
starting at the default delta-time of 0 and lasting for a default duration of 1 second.
Example:;;Createaninstrument,playascalewithit
(defun note (pitch dur)
(osc pitch dur *table*))
(play (seq (note c4 i)
(note d4 i)
(note e4 i)
(note f4 i)
(note g4 i)
(note a4 i)
(note b4 i)
(note c5 q)))
This program first defines a note function that receives two parameters, pitch and dur (duration),
and sends them to an oscillator. The oscillator applies the given pitch and duration to the
waveform defined in the *table* global variable. The default waveform is a sine with an amplitude
of 1.
The seq function then sends a sequence of note statements to the play function for realtime audio
output. In this example the pitch is indicated in a note-name/octave pair. Duration is expressed
in symbols for conventional musical rhythmic units, i.e., i stands for an eighth note (quaver) and
q stands for a quarter note (crotchet).
Nyquist programs may be entered line by line at the program prompt or they can be saved and loaded
as files.