Csound

related topics
{system, computer, user}
{math, number, function}
{album, band, music}
{language, word, form}

Csound is a computer programming language for dealing with sound, also known as a sound compiler or an audio programming language, or more precisely, a C-based audio DSL. It is called Csound because it is written in C, as opposed to some of its predecessors. Csound was originally written at MIT by Barry Vercoe, 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. It is free software, available under the LGPL. Its development continued throughout the 1990s and 2000s, led by John ffitch at the University of Bath. The first documented version 5 release is version 5.01 on 2006.03.18. Many developers have contributed to it, most notably Istvan Varga, Gabriel Maldonado (who developed a variant of the system, CsoundAV, which includes image and graphics processing extras), Robin Whittle, Richard Karpen, Michael Gogins, Matt Ingalls, Steven Yi, Richard Boulanger, and Victor Lazzarini.

Developed over many years, it currently has over 1200 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.

Contents

Csound code

Csound takes two specially formatted text files 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 audio file 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 filename extension .csd). Here is a very simple example of a unified Csound data file which produces a wave file containing a one second sine wave tone of 1 kHz at a sample rate of 96 kHz:

Full article ▸

related documents
Windowing system
POSIX
Real mode
Electronic mixer
Input/output
Bugzilla
System-on-a-chip
High Performance File System
Data terminal equipment
NMOS logic
Network Layer
Output
Manchester code
SoftICE
Helix (project)
Yet another Setup Tool
Windows Metafile
DASS2
Jaggies
Notepad
Webmail
Acoustic coupler
Mobile ad-hoc network
Peripheral
Floating point unit
CLIÉ
Schematic
Modified AMI code
Music sequencer
CD-i