Csound is a domain-specific computer programming language for audio programming. It is called Csound because it is written in C, as opposed to some of its predecessors.
It is free software, available under the LGPL-2.1-or-later.
Csound was originally written at MIT by Barry Vercoe in 1985, based on his earlier system called Music 11, which in its turn followed the MUSIC-N model initiated by Max Mathews at the Bell Labs.
Its development continued throughout
the 1990s and 2000s, led by John Fitch at the University of Bath.
The first documented version 5 release is version 5.01 on March 18, 2006.
Many developers have contributed to it, most notably Istvan Varga, Gabriel Maldonado, Robin Whittle, Richard Karpen, Iain McCurdy, Michael Gogins, Matt Ingalls, Steven Yi, Richard Boulanger, Victor Lazzarini and Joachim Heintz.
Developed over many years, it currently has nearly 1700 unit generators.
One of its greatest strengths is that it is completely modular and extensible by the user.
Csound is closely related to the underlying language for the Structured Audio extensions to MPEG-4, SAOL.
Csound takes two specially formatted s as input. The orchestra describes the nature of the instruments and the score describes notes and other parameters along a timeline. Csound processes the instructions in these files and renders an or real-time audio stream as output.
The orchestra and score files may be unified into a single structured file using markup language tags (a CSD file with .csd). Here is a very simple example of a unified Csound data file which produces a containing a one-second sine wave tone of 1 kHz at a sample rate of 96 kHz:
csound -W -d -o tone.wav
sr = 96000 ; Sample rate.
kr = 9600 ; Control signal rate.
ksmps = 10 ; Samples per control signal.
nchnls = 1 ; Number of output channels.
instr 1
a1 oscil p4, p5, 1 ; Oscillator: p4 and p5 are the arguments from the score, 1 is the table number.
out a1 ; Output.
endin
f1 0 8192 10 1 ; Table containing a sine wave.