Csound is a programming language (based on the C programming language) designed and optimized for sound rendering and signal processing. The language consists of over 450 opcodes – the operational codes that the sound designer uses to build “instruments” or patches. Although there are an increasing number of graphical “front-ends” for the language, you typically design and modify your patches using a word processor. Usually, you create two text files, an orchestra file (.orc) containing the “instruments,” and a score file (.sco) containing the “notes.” In Csound, the complexity of your patches is limited by your knowledge, interest, and need, but never by the language itself. For instance, a 22,050 oscillator additive synthesizer with 1,024 stage envelope generators on each is merely a copy-and-paste operation. The same goes for a 1 million voice granular texture!
The 450 opcodes in the Csound language range in power and complexity from a basic table-lookup oscillator and linear envelope generator, to the full-blown waveguide physical modeling family. There are familiar analog modeling opcodes such as ADSR, LFO, VCO, and even a moog VCF. There are opcodes for reading and processing samples and opcodes for doing phase vocoder resynthesis and FFT-based cross-synthesis.
To produce or process a sound file with Csound, or to play a Csound instrument in real-time, one typically selects the orchestra and score through a simple “launcher” and then clicks on the “render” button to start the program compiling. In addition to selecting the orchestra and score, these launchers allow one to use menus, checkboxes, and text-fields to set and store all the command line options. You can specify the name of the output file, the directory for the output file, the output file-type (AIFF or WAV 16-, 24-, or 32-bit). You can tell the program to display graphics, to enable MIDI control or audio input, and to render in real-time to the DAC or write the resulting sound file to disk.
One of Csound’s greatest strengths is that it is completely modular and expandable by the user. Created in 1985 by Barry Vercoe, Csound is one of the most widely used software sound synthesis systems.