logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Nyquist - A computer programming language for software sound synthesis and music composition

Author

Nyquist is written by Roger B. Dannenberg  <dannenberg@cs.cmu.edu>.   XLISP  is  written  by  David  Betz
       <dbetz@xlisper.mv.com>.

Bugs

       Possibly, maybe, perhaps. If you find any please report them to the authors.

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:;;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.

Files

       Examples and tutorial files are located in the $NYQUIST_HOME/demos directory.

       HTML documentation is located in the $NYQUIST_HOME/doc directory.

Name

       Nyquist - A computer programming language for software sound synthesis and music composition

Options

-lfilename.lsp
                 Load a Nyquist program file, typically (but not necessarily) with an extension of .lsp.

Synopsis

ny[OPTIONS]

Todo

       See the todo.txt file in the Nyquist top-level directory for the current TODO list.

See Also