SuperCollider programming language
Encyclopedia : S : SU : SUP : SuperCollider programming language
- For the particle accelerator, see Superconducting Supercollider.
Architecture
Since version 3 the SuperCollider environment is split into a server, scsynth, and a client, sclang, that communicate using OpenSound Control.SC Language combines the object oriented structure of Smalltalk and features from functional programming languages with a C programming language family syntax.
The SC Server application supports a simple C plugin API making it easy to write efficient sound algorithms (unit generators) which can then be combined into graphs of calculations. Due to the fact that all external control in the server happens via open sound control, it is possible to access its functionality from other languages or applications. One example for such a system is [rsc], a Scheme implementation for accessing scserver.
Language Features
- Constant time message lookup
- Real time garbage collection
- Lexical closure
- Functions as first class objects, function composition
- Coroutines
- Default argument values, variable length argument lists and any order keyword arguments
- Both lexical and dynamic scope
- Closure creation via partial application (i.e., explicit currying / schönfinkelling)
- Tail call optimization
- List comprehensions
- allows to represent properties such as time and pitch in variable degrees of abstraction
Synthesis Server Features
- open sound control access
- simple ANSI C plugin API
- supports any number of input and output channels
- gives access to an ordered tree structure of synthesis nodes which define the order of execution
- bus system which allows to dynamically restructure the signal flow
- buffers for writing and reading
- calculation at different rates depending on the needs: audio rate, control rate, demand rate
Code examples
// play a mixture of pink noise and an 800 Hz sine tone .play;
// modulate the sine frequency and the noise amplitude with another sine // whose frequency depends on the horizontal cursor position .play;
// list iteration: create a collection of indices multiplied by their values [1, 2, 5, 10, -3].collect
// factorial function f = }
System requirements
SC runs under GNU/Linux and Mac OS X. There is also a port of the audio synthesis server available for Microsoft Windows. The GNU/Linux version can easily be controlled from GNU Emacs.References
External links
- [Download SuperCollider from here]
- [Author's page]
- [The SuperCollider Swiki]
- [SuperCollider users mailing list]
- [Search the SuperCollider mailing lists archives]
- [cunningham's wiki web]
- [Location on SourceForge]
- [SuperCollider 1 presentation] (1998)
- [Realtime Software Synthesis for Psychoacoustic Experiments] (1998)
- [Algorithmic Composition Methods for Breakbeat Science] (2003)
- [Uncertainty and waiting in Computer Music Networks] (2004)
From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.
