Cmusic is a computer music software developed by Richard Moore. It was the first, among the Music N, to be written in C. Used with CARL System, Cmusic was capable to generate sounds in real time.

Historical background – Cmusic was developed in 1980 by Richard Moore at the Computer Audio Research Laboratory (CARL) of the Center for Music Experiment at the University of California at San Diego (UCSD). Moore, who had worked alongside Max Mathews for the development of GROOVE, at first had thought to create a new version of Music V but upgraded to the C language. Following preferred to prepare a completely new software.

The C language – The choice of C language was made to return a software easier to use. Users would be able to act directly on the code and develop, where appropriate, new Unit Generators, even if it means sacrificing computational speed. In principle the adoption of C would also have a greater portability, which is in practice not affected by the choice of using a non pure C language but a mixture of C, Csh (Cshell interpreter) and CPP (a preprocessor of C), which did not make it fully compatible with any of these languages.[1]

Carl System – There was another important aspect. Cmusic was designed to CARL System, as It was called (or CARL Software Distribution), a package of programs for computer music, each dedicated to a specific function. The symbiotic relationship between the two was that taken from CARL System, Cmusic did not add substantial new compared to other Music N software, such as the Music V.[2] This relationship, moreover, limited its portability. It is equally true, however, that the whole CARL System, including Cmusic, got an appreciable international response. Several computer music centers in Europe have adopted it as a tool for the creation of electronic music works. Also include, but not limited to, the Ircam in Paris, the Laboratorio di Informatica Musicale (LIM) in Milan, Italy, and other centers in England.

Publications – The success of Cmusic is evidenced, in the early Nineties, also from the book Elements of Computer Music that explores several fundamental issues for anyone involved in computer music, but always with a view to using Cmusic, and with numerous examples to be carried out with the software of Richard Moore.

Good news – Besides the negative aspects, however, the success of Cmusic is also linked to the presence of some innovative features. We remember the possibility to synthesize sounds in real-time sound and the union of Score and Orchestra file in a single document. Cmusic, in fact, is the first to Music N software family to adopt this methodology, making it easier to write code. The use of single file, then, was also adopted in Csound, where the format .csd was introduced since version 3.50.[3]


For this topic I’ve read:

[1] Stephen Travis Pope, <em>Machine Tongues XV: Three Packages for Software Sound Synthesis</em>, Computer Music Journal, Vol. 17 [2], 1993, pp. 23 – 54.
[2] Richard Moore, <em>The Computer Audio Resarch Laboratory at UCSD</em>, Computer Music Journal, Vol. 6 [1], 1982.
[3] Alex Di Nunzio, Genesi, sviluppo e  diffusione del software Music N nella storia della composizione informatica, Thesis, University of Bologna: D.A.M.S. Musica, 2010.

  • Greg Hermanovic

    To add to the places that used Cmusic was, in Canada, DCIEM (Defence and Civil Institute of Environmental Medicine) where I (painfully) down-ported Cmusic from its native DEC VAX to a PDP-11 mini-computer for researcher Bruce Pennycook. It was used to do some research in audio-cue perception for pilots, and to make some audio art experiments, and was the basis of Pennycook’s SPAM (Sound Processing and Mixing).

    But more far-reaching, the model of defining instruments as “operators” with inputs/outputs and parameters, and digitally “wiring” together oscillators, filters etc was influential in the development of PRISMS and Houdini from Side Effects Software, a company I co-founded in 1987, and later TouchDesigner from Derivative. PRISMS, Houdini and TouchDesigner have the notion of operators that send data to other operators in realtime, fundamentally procedural animation systems. See and

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.