Csound Manual

(version 3.46)

A Manual for the Audio Processing System
and Supporting Programs with Tutorials

by Barry Vercoe, Media Lab M.I.T.
and contributors

Edited by Jean Piché, Université de Montréal

Copyright 1986, 1992 by the Massachusetts Institute of Technology. All rights reserved.


This is the Title Page of the 3.46 html version of the Csound manual. It accompanies the public Csound version 3.46 as compiled by John F. Fitch of the University of Bath in the UK and available for downloading at :

This manual was compiled from the canonical Csound Manual sources kept by Jean Piché and John F. Fitch. The manual is currently available in html format only. Future releases will also include the following formats: .rtf (Rich Text Format), .txt (ASCII text), and .ps (PostScript format)

The initial sources for this edition of the canonical Csound Manual are based on the work of Peter J. Nix of the University of Leeds, November 1994.

Important Note:

The information contained in this manual is generic. Reference to platform-specific versions of Csound have been removed. Nevertheless, some features described here may not work as indicated on a given platform. When in doubt, please refer to the platform-specific documentation available at the above-mentionned ftp sites.

CsoundManual - Top of this section - Previous - Contents - Index - Next

Csound Manual Copyright Notice

Copyright 1986, 1992 by the Massachusetts Institute of Technology. All rights reserved.

Developed by Barry L. Vercoe at the Experimental Music Studio, Media Laboratory, M.I.T., Cambridge, Massachusetts, with partial support from the System Development Foundation and from National Science Foundation Grant # IRI-8704665.

Permission to use, copy, or modify these programs and their documentation for educational and research purposes only and without fee is hereby granted, provided that this copyright and permission notice appear on all copies and supporting documentation. For any other uses of this software, in original or modified form, including but not limited to distribution in whole or in part, specific prior permission from M.I.T. must be obtained. M.I.T. makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

This Hypertext edition of the MIT Csound Manual was prepared for the World Wide Web by Peter J Nix of the Department of Music at the University of Leeds and Jean Piché of the Faculté de musique de l'Université de Montréal. They fully acknowledge the rights of the authors of the original documentation and programs as set out above and further request that this notice appear wherever this material is held and that all hypertext links to it in the accompanying edition of the Manual be retained .

CsoundManual - Top of this section - Previous - Contents - Index - Next

PREFACE to the Csound Manual

by Barry Vercoe, MIT Media Lab

Realizing music by digital computer involves synthesizing audio signals with discrete points or samples that are representative of continuous waveforms. There are several ways of doing this, each affording a different manner of control. Direct synthesis generates waveforms by sampling a stored function representing a single cycle; additive synthesis generates the many partials of a complex tone, each with its own loudness envelope; subtractive synthesis begins with a complex tone and filters it. Non-linear synthesis uses frequency modulation and waveshaping to give simple signals complex characteristics, while sampling and storage of natural sound allows it to be used at will.

Since comprehensive moment-by-moment specification of sound can be tedious, control is gained in two ways: 1) from the instruments in an orchestra, and 2) from the events within a score. An orchestra is really a computer program that can produce sound, while a score is a body of data which that program can react to. Whether a rise-time characteristic is a fixed constant in an instrument, or a variable of each note in the score, depends on how the user wants to control it.

The instruments in a Csound orchestra are defined in a simple syntax that invokes complex audio processing routines. A score passed to this orchestra contains numerically coded pitch and control information, in standard numeric score format. Although many users are content with this format, higher level score processing languages are often convenient.

The programs making up the Csound system have a long history of development, beginning with the Music 4 program written at Bell Telephone Laboratories in the early 1960's by Max Mathews. That initiated the stored table concept and much of the terminology that has since enabled computer music researchers to communicate. Valuable additions were made at Princeton by the late Godfrey Winham in Music 4B; my own Music 360 (1968) was very indebted to his work. With Music 11 (1973) I took a different tack: the two distinct networks of control and audio signal processing stemmed from my intensive involvement in the preceding years in hardware synthesizer concepts and design. This division has been retained in Csound.

Because it is written entirely in C, Csound is easily installed on any machine running Unix or C. At MIT it runs on VAX/DECstations under Ultrix 4.2, on SUNs under OS 4.1, SGIs under 4.1, and on the Macintosh under ThinkC 4.0. With this single language for audio signal processing, users move easily from machine to machine.

The 1991 version included many new features. I am indebted to others for the contribution of the phase vocoder and FOF synthesis modules. That release also charted a new direction with the addition of a spectral data type, holding much promise for future development. The 1992 release is even more significant for its addition of MIDI converter and control units, enabling Csound to be run from MIDI score-files and from external MIDI keyboards. Since the newest RISC processors bring to computer music an order of magnitude more speed than did those on which it was born, researchers and composers now have access to workstations on which realtime software synthesis with sensing and control is now a reality. This is perhaps the single most important development for people working in the field. This new Csound is designed to take maximum advantage of realtime audio processing, and to encourage interactive experiments in this exciting new domain.


CsoundManual - Top of this section - Previous - Contents - Index - Next

How to use the Csound Manual

The Csound Manual is arranged as a Reference manual (not a tutorial), since that is the form the user will eventually find most helpful when inventing instruments. Csound can be a demanding experience at first. Hence it is highly advisable to peruse the tutorials included in this document. Once the basic concepts are grasped from the beginning tutorial, the reader might let himself into the remainder of the text by locating the information presented in the Reference entries that follow.

CsoundManual - Top of this section - Previous - Contents - Index - Next

The Csound Mailing List

A Csound Mailing List exists to discuss Csound. It is run by Martin Dupras (duprasm@ere.umontreal.ca) of Université de Montréal and James Andrews of Exeter University, UK.

To have your name put on the mailing list send a message to:


with a single line in the body of the message of the form:

subscribe name@host

Posts sent to csound@maths.ex.ac.uk go to all subscribed members of the list.

CsoundManual - Top of this section - Previous - Contents - Index - Next

MIT Media Lab Csound Manual.


Title Page
The Csound Mailing list

PREFACE by Barry Vercoe




GEN Routines

SCOT: A Score Translator

The CSOUND Command

The Soundfile Utility Programs

CSCORE: A C-language Score Generator


Adding your own Cmodules to Csound



CsoundManual - Top of this section - Previous - Contents - Index - Next Section