COMMON LISP MUSIC AND COMMON MUSIC NOTATION
William Schottstaedt Research Associate
Common Lisp Music (CLM) is a music synthesis and signal processing package written primarily in Common Lisp. It is aimed at composers who are not primarily interested in computer-related performance issues or computer assisted improvisation - there is no support for "real-time'' interactions.
The instrument design language is a subset of Common Lisp (its numerical functions, and nearly all its control functions), extended with a large number of "unit generators'': Oscil, Env, Table-Lookup, and so on. The "run-time'' portion of an instrument can be compiled into C, 56000, or lisp code. Since CLM instruments are lisp functions, a CLM note list is just a lisp expression that happens to call those functions. The notes need not even be in any order. The actual computation is done one note at a time, and the results are overlaid, building up the sound note by note. If an Ariel Quint Processor board is available, CLM can take advantage of it, computing many notes in parallel.
Common Music Notation (CMN) is a music notation package written in Common Lisp, using CLOS and the Sonata font. It provides for all the usual needs of music notation in a fully customizable, programmable environment.
CLM and CMN have recently been extended, ported to new machines, and more tightly integrated with Rick Taube's Common Music program. In CLM, new features include a fast mixing package, a "make'' facility for sound files, support for AIFF and other sound file formats, ports to the NS/Intel platforms and new Macs, and several new instruments. In CMN, we have continued to add various specialized notations. Common Lisp Music and Common Music Notation are available free, via anonymous ftp [pub/Lisp/clm.tar.Z and pub/Lisp/cmn.tar.Z at ccrma-ftp.stanford.edu].
Taube, H. "COMMON MUSIC - A Music Composition language in Common Lisp and CLOS,'' STAN-M-63, Stanford University, January 1990.