- SuperCollider
infobox software
developer = James McCartney and others
operating system =Linux ,Mac OS X , Windows [ [http://sourceforge.net/project/showfiles.php?group_id=54622 SourceForge.net: Files ] ]
genre =Audio programming language
license =GNU General Public License
website = http://supercollider.sourceforge.net/SuperCollider is an environment and
programming language originally released in 1996 by James McCartney forreal time audio synthesis andalgorithmic composition .J. McCartney, [http://www.audiosynth.com/icmc96paper.html SuperCollider: A new real time synthesis language] , in Proc. International Computer Music Conference (ICMC’96), 1996, pp. 257–258.] J. McCartney, [http://dx.doi.org/10.1162/014892602320991383 Rethinking the computer music language: SuperCollider] , Computer Music Journal, 26 (2002), pp. 61–68.]Since then it has been evolving into a system used and further developed by both scientists and artists working with sound. It is an efficient and expressive
dynamic programming language which makes it an interesting framework for acoustic research, algorithmic music andinteractive programming .Released under the terms of the
GNU General Public License in 2002, SuperCollider isfree software .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 fromfunctional programming language s with a C family syntax.The "SC Server" application supports a simple C plugin API making it easy to write efficient sound algorithms (
unit generator s) 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.Features
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., explicitcurrying / schönfinkelling)
*Tail call optimization
*List comprehension s
* Reflective andLiterate Programming
* Allows to represent properties such as time and pitch in variable degrees of abstractionSynthesis server features
*
OpenSound Control access
* SimpleANSI C pluginAPI
* 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 rateGUI system
* Class system for generation of graphical user interface for applications
* Programmatic access to rich text code files
* Vector graphics|
Supported operating systems
SC runs under
Linux andMac OS X , a beta version is available forMicrosoft Windows under the name "PsyCollider". The Linux version can be controlled fromGNU Emacs andgedit .SC is available on a
Live CD called (a modified version of ).Code examples
// play a mixture of pink noise and an 800 Hz sine tone{ SinOsc.ar(800, 0, 0.1) + PinkNoise.ar(0.01) }.play; // modulate the sine frequency and the noise amplitude with another sine// whose frequency depends on the horizontal cursor position{ var x = SinOsc.ar(MouseX.kr(1, 100)); SinOsc.ar(300 * x + 800, 0, 0.1) + PinkNoise.ar(0.1 * x + 0.1) }.play;
// list iteration: create a collection of indices multiplied by their values [1, 2, 5, 10, -3] .collect { |item, i| item * i }
// factorial functionf = { |x| if(x = 0) { 1 } { f.(x-1) * x } }
Live coding
As a versatile
dynamic programming language , SuperCollider can be used forlive coding , i.e. performances which involve the performer modifying and executing code on-the-fly. A specific kind of proxies serve as high level placeholders for synthesis objects which can be swapped in and out or modified at runtime. Environments allow sharing and modification of objects and process declarations over networks. Various extension libraries support different abstraction and access to sound objects, e.g. dewdrop_lib allows for the live creation and modification of pseudo-classes and -objects.Clients
SuperCollider consists of two separate applications: the "server" (sound synthesis engine), and the "client" application to control it. Because the communication uses
OpenSound Control , a variety of applications can be used to control the server including systems such asPure data ."Third-party" clients for the SuperCollider server exist, including rsc3, a Scheme client, and hsc3, based on Haskell. [http://swiki.hfbk-hamburg.de:8888/MusicTechnology/659 More examples on the SuperCollider wiki] ]
Notable users
*
Bruce Arnold
*Aphex Twin [Dartmouth Symposium on the Future of Computer Music Software: A Panel Discussion,Computer Music Journal (2002) Vol. 26, No. 4, Pages 13-30 doi|10.1162/014892602320991347]
*Autechre [http://www.de-bug.de/mag/1825.html Alex Reynolds interview, February 2003] — "Grooves " (excerpted)]
*Bourbonese Qualk
*Anthony Braxton
*Alberto De Campo
*Cylob
*Richard Devine
*Farmers Manual
*Fennesz Fact|date=December 2007
*Jem Finer
*Peter Gabriel
*Russell Haswell
*Paul Lansky
*Sergio Luque
*Merzbow Fact|date=May 2008
* Jim O'Rourke [ [http://www.aquariusrecords.org/cat/o.html [ O titles at Aquarius Records ] ]
*Joshua Parmenter
*Curtis Roads
*Jonathan Segel
*Brian Transeau (BT)
* Scott WilsonSee also
*
Comparison of audio synthesis environments References
External links
* [http://supercollider.sourceforge.net/ Official SuperCollider home page]
* [http://swiki.hfbk-hamburg.de:8888/MusicTechnology/6 The SuperCollider Swiki]
* [http://swiki.hfbk-hamburg.de:8888/MusicTechnology/880 SuperCollider users mailing list]
* [http://www.audiosynth.com/icmc96paper.html SuperCollider 1 presentation] (1998)
* [http://www.music.mcgill.ca/~ich/research/icmpc98/icmpc98.realsynth.html Realtime Software Synthesis for Psychoacoustic Experiments] (1998)
* [http://www.ariada.uea.ac.uk/ariadatexts/ariada3/collins/ariada3_collins.html Algorithmic Composition Methods for Breakbeat Science] (2003)
* [http://akustik.hfbk.net/publications/Uncertainty_and_waiting.pdf Uncertainty and waiting in Computer Music Networks] (2004)
Wikimedia Foundation. 2010.