From the Csound manual, ver. 6.05: Csound is a unit generator-based, user-programmable computer music system. It was originally written by Barry Vercoe at the Massachusetts Institute of Technology in 1984 as the first C language version of this type of software.
Csound is to synthesizers as linux is to computers. Like PureData and SuperCollider, Csound provides a programming framework within which it is possible not only to create sounds, but design your own synthesizers or effects modules. The screenshots and demos above are mere samples of what can be done with Csound, the possiblities are quite endless. With a basic understanding of the syntax involved in Csound, and a few good references to serve as guideposts, it is possible to design your own instruments the way you want them.
Csound is cross-platform. It can be used in various ways: simple text files (run in your terminal of choice), with a GUI frontend such as CsoundQT (formerly qutecsound), or even in a web browser. To use it in a terminal, go to the directory with the desired instrument and type
csound [instrumentfilename.csd]. Use ctrl+c to close the instrument.
To make an instrument or effects module, all that is required is a simple text editor such as Leafpad or Gedit. There are basically 3 sections to any Csound instrument/effects module: the Options section, the Instrument section and the Orchestra section. The Options section is where parameters are selected that Csound will utilize for sound production, such as midi control, audio card selection, sample rate, etc. To use Jack for audio, the
-+rtaudio=jack command must be used. To play the instrument on a midi channel, use the command:
-M1 to access midi channel 1 or
-Ma to play it on all channels. It may be necessary to deactivate the a2jmidid daemon (if running) before opening the instrument so that it can connect to the midi channels.
The Instrument section is where all of the instrument parameters are placed, such as filter types, envelopes, sample reproduction, etc. There are many types of synthesis methods which can be set up in Csound, such as subtractive, FM, additive, wavetable synthesis, formant synthesis, etc. Samples can also be processed.
The Instrument section is also closely linked to the last section, the Orchestra section. In a realtime midi set-up, the orchestra section will probably require no more than the length of time that the instrument is active. But the Orchestra section can be utilized to make the Instrument section reproduce a score, sequence pattern, etc.
A Csound Synthesizer example: MonoPolySynthII This is an example of a full realtime, midi-controllable mono-polyphonic synthesizer created with Csound. This one (shown in the first screenshot above) was developed by Iain McCurdy. It is touch-sensitive (in amplitude and filter, with various reaction curve possiblities), and includes two oscillators, each with various waveform possibilities, as well as wave "banks" which can be selected. A unique "wobble" effect can be used to incorporate a bit of "analog imperfection" to the tone. Five filters included are: low-pass, high-pass, band-pass, low-pass with distortion, and a Chebyshev 1 filter. Envelopes are included to control pitch, timbre (filter) and amplitude. In order to use this synthesizer, you should have Csound installed (preferably version 6.04 or newer). There are two files in the zip package. Both should be placed in the same folder. About 20 presets are included in the Presets Bank file. (I may update this file from time to time with more presets.) To use the presets, first select the preset number, then click "load preset." Note that clicking "save preset" will overwrite anything at that preset number, so make sure you select the correct preset number before saving your work! (Visit his website in his link (below) to try out other instruments he has created.)
Csound at Sourceforge -Where to find the newest versions of Csound, if not already in your linux distro's repositories.
Csounds.com -The Csound Community. Lots of useful info and forums.
IainMcCurdy.org -Iain McCurdy's website, with lots of useful examples, instruments and effects, demonstrations, links and more.
CsoundQT -The Csound Frontend created by Andres Cabrera.