All Topics  
Csound

 

   Email Print
   Bookmark   Link






 

Csound



 
 
Csound is a computer programming language for dealing with sound, also known as a sound compiler or an audio programming language
Audio programming language

An audio programming language is a programming language specifically targeted to sound and music production or sound synthesis.* ABC * ChucK : strongly-timed, concurrent, and on-the-fly audio programming language...
. It is called Csound because it is written in the C programming language
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
, as opposed to some of its predecessors. Csound was originally written at MIT
Massachusetts Institute of Technology

The Massachusetts Institute of Technology is a private university research university located in Cambridge, Massachusetts, Massachusetts, United States....
 by Barry Vercoe
Barry Vercoe

Barry Vercoe is a New Zealand-born computer scientist and composer. He completed his undergraduate degree in New Zealand in Music and Mathematics and went on to complete a Ph.D....
, based on his earlier system called Music 11, which in its turn followed the MUSIC-N
MUSIC-N

MUSIC-N refers to a family of computer music programs and programming languages descended from or influenced by MUSIC, a program written by Max Mathews in 1957 at Bell Labs....
 model initiated by Max Mathews
Max Mathews

Max Vernon Mathews is a pioneer in the world of computer music. He studied electrical engineering at the California Institute of Technology and the Massachusetts Institute of Technology, receiving a Sc.D....
 at the Bell Labs. It is free software
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
, available under the LGPL.






Discussion
Ask a question about 'Csound'
Start a new discussion about 'Csound'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Csound is a computer programming language for dealing with sound, also known as a sound compiler or an audio programming language
Audio programming language

An audio programming language is a programming language specifically targeted to sound and music production or sound synthesis.* ABC * ChucK : strongly-timed, concurrent, and on-the-fly audio programming language...
. It is called Csound because it is written in the C programming language
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
, as opposed to some of its predecessors. Csound was originally written at MIT
Massachusetts Institute of Technology

The Massachusetts Institute of Technology is a private university research university located in Cambridge, Massachusetts, Massachusetts, United States....
 by Barry Vercoe
Barry Vercoe

Barry Vercoe is a New Zealand-born computer scientist and composer. He completed his undergraduate degree in New Zealand in Music and Mathematics and went on to complete a Ph.D....
, based on his earlier system called Music 11, which in its turn followed the MUSIC-N
MUSIC-N

MUSIC-N refers to a family of computer music programs and programming languages descended from or influenced by MUSIC, a program written by Max Mathews in 1957 at Bell Labs....
 model initiated by Max Mathews
Max Mathews

Max Vernon Mathews is a pioneer in the world of computer music. He studied electrical engineering at the California Institute of Technology and the Massachusetts Institute of Technology, receiving a Sc.D....
 at the Bell Labs. It is free software
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
, 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
István Varga

Istv?n Varga is a former Hungary Team handball player who competed in the 1972 Summer Olympics and in the 1976 Summer Olympics.In 1972 he was part of the Hungarian team which finished eighth in the Handball at the 1972 Summer Olympics....
, 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 and Victor Lazzarini
Victor Lazzarini

Victor Lazzarini, born in Londrina, Brazil in 1969, is a composer and computer music researcher living in Ireland. After studying music in the local College or university school of music, Victor went on to study for his B.Mus....
.

Developed over many years, it currently has a vast number of opcodes/unit generators (modules) (over 1200), probably the largest number in any such system. One of its greatest strengths is that it is completely modular and expandable by the user. Csound is closely related to the underlying language for the Structured Audio
MPEG-4 Structured Audio

MPEG-4 Structured Audio is an ISO/IEC standard for describing sound. The sound descriptions generate audio when compiled by a compliant decoder....
 extensions to MPEG-4
MPEG-4

MPEG-4 is a collection of methods defining Video compression of audio and visual digital data. It was introduced in late 1998 and designated a standardization for a group of sound and video coding formats and related technology agreed upon by the International Organization for Standardization/International Electrotechnical Commission Moving...
, SAOL
Structured Audio Orchestra Language

Structured Audio Orchestra Language is an Imperative programming, MUSIC-N programming language designed for describing Software synthesizer, Digital signal processing digital audio, and applying sound effects....
.

Csound Code


Csound takes two specially formatted text file
Text file

A text file is a kind of computer file that is structured as a sequence of line . A text file exists within a computer file system. The end of a text file is often denoted by placing one or more special characters, known as an end-of-file marker, after the last line in a text file....
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 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
Markup language

A markup language is a set of codes that give instructions regarding the structure of a text or how it is to be displayed. Markup languages have been in use for centuries, and in recent years have been used in computer typesetting and word-processing systems to specify the formatting, layout, structure, and other elements of a document....
 tags (a CSD file). Here is a very simple example of a unified Csound data file which produces a wave file containing a one second sine wave
Sine wave

The sine wave or sinusoid is a function that occurs often in mathematics, physics, signal processing, hearing , electrical engineering, and many other fields....
 tone of 1 kHz at a sample rate of 44.1 kHz:

;

csound -W -d -o tone.wav

sr = 44100 ; Sample rate. kr = 4410 ; Control signal rate. ksmps = 10 ; Samples pr. control signal. nchnls = 1 ; Number of output channels.

instr 1 a1 oscil p4, p5, 1 ; Simple oscillator. out a1 ; Output. endin


f1 0 8192 10 1 ; Table containing a sine wave. i1 0 1 20000 1000; Play one second of one kHz tone. e



As with many other programming languages, writing long programs in Csound can be eased by using an integrated environment
Integrated development environment

An integrated development environment also known as integrated design environment or integrated debugging environment is a software application that provides comprehensive facilities to computer programmers for software development....
 for editing, previewing, testing, and debugging
Debugging

Debugging is a methodical process of finding and reducing the number of computer bugs, or defects, in a computer program or a piece of electronic hardware thus making it behave as expected....
.

Csound 5


Version 5.01 was released on 2006-03-18, 20 years after the first release. This latest incarnation of the software is currently available in binary and source code for Linux, Windows and Mac OS X from the Sourceforge Csound project . It is a much improved and expanded version of the original software, effectively made into a software library with an API. A variety of frontends for it have been developed. In addition to the basic C
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
 API, there are also Python
Python (programming language)

Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive....
, Java
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
, LISP
Lisp

A lisp is a speech impediment, historically also known as sigmatism. Stereotypically, people with a lisp are unable to pronounce sibilants , and replace them with Interdental consonants , though there are actually several kinds of lisps....
, Tcl
Tcl

Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration"?according to the author?with programmers devising their own languages intended to be embedded into applications, Tcl quickly gained wide acceptance on its own and is generally thought to be easy to learn, but powerful in competent hands....
 and C++
C++

C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
 (among other) bindings. The use of plug-ins allows additional capabilities without modifications to the Csound code.

OLPC


Csound5 was chosen to be the audio/music development system for the OLPC project on the XO-1 Laptop platform. Its integration with the Python language allows it to be easily employed in the development of activities such as .

See also

  • Audio signal processing
    Audio signal processing

    Audio signal processing, sometimes referred to as audio processing, is the intentional alteration of sound Signal , or sound. As audio signals may be electronically represented in either digital or analog signal format, signal processing may occur in either domain....
  • Software synthesizer
    Software synthesizer

    A software synthesizer, also known as a softsynth or virtual instrument is a computer program for digital audio generation. Computer software which can create sounds or music is not new, but advances in processing speed are allowing softsynths to accomplish the same tasks as dedicated hardware....
  • Computer music
    Computer music

    Computer music is a term that was originally used within academia to describe a field of study relating to the applications of computing technology in music composition; particularly that stemming from the Western art music tradition....
  • Comparison of audio synthesis environments
    Comparison of audio synthesis environments

    Software audio synthesis environments typically consist of an audio programming language and a user environment to design/run the language in. Although many of these environments are comparable in their abilities to produce high-quality audio, their differences and specialties are what draw users to a particular platform....


External links

  • contains FAQs, manuals, programming examples, other front end programs, and misc other goodies. The mailing list archive is also a good place to find detailed information.
  • at Sourceforge
    SourceForge

    SourceForge Enterprise Edition is a collaborative revision control and software development management system. It provides a front-end to a range of software development lifecycle services and integrates with a number of free software / open source software applications ....
  • is an integrated Csound programming environment for Macintosh.
  • is an integrated programming environment for Csound [Windows].
  • another IDE for Csound.
  • [https://sourceforge.net/projects/dex-tracker Dex Tracker] Dex Tracker a tracker style front end for csound Including a grid editor and code generation tools, and the ability to save your favorite sounds and rhythms as presets
  • A music composition environment for Csound.
  • A music composition environment for Csound and MIDI
  • Automated Csound orchestra building from individual instruments in csd format, convert midi to CSound, and record to Csound in real time (windows program)
  • An algorithmic composition environment where one works in a graphical score, for Csound and MIDI.
  • The Csound page in the OLPC wiki, with extra tutorials and XO-specific information and
  • edited by R Boulanger and the 3500+-instrument
  • a production frontend for Csound.
  • a Windows frontend/editor for Csound5.
  • A list of links to Csound helper applications, mostly for Linux.