NAME¶
Nyquist - A computer programming language for software sound synthesis and music
composition
SYNOPSIS¶
ny [OPTIONS]
DESCRIPTION¶
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:
- ;; Make and play a sound
(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:
- ;; Create an instrument, play a scale with it
(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.
OPTIONS¶
- -l filename.lsp
- Load a Nyquist program file, typically (but not
necessarily) with an extension of .lsp.
FILES¶
Examples and tutorial files are located in the
$NYQUIST_HOME/demos
directory.
HTML documentation is located in the
$NYQUIST_HOME/doc directory.
BUGS¶
Possibly, maybe, perhaps. If you find any please report them to the authors.
TODO¶
See the todo.txt file in the
Nyquist top-level directory for the current
TODO list.
AUTHOR¶
Nyquist is written by Roger B. Dannenberg <dannenberg@cs.cmu.edu>.
XLISP is written by David Betz <dbetz@xlisper.mv.com>.
COPYRIGHT¶
Copyright and license information for
Nyquist:
Copyright 2000-2002, by Roger B. Dannenberg. All rights reserved.
Copyright and license information for
XLISP:
Copyright 1984-2002, by David Michael Betz. All rights reserved.
See the license.txt file in the
Nyquist top-level directory for complete
licensing details.