SuperCollider is an environment and programming language originally released in 1996 by James McCartney for real-time audio synthesis and algorithmic composition.
Since then it has been evolving into a system used and further developed by both scientists and artists working with sound. It is a dynamic programming language providing a framework for acoustic research, algorithmic music, interactive programming and live coding.
Originally released under the terms of the GPL-2.0-or-later in 2002, and from version 3.4 under GPL-3.0-or-later, SuperCollider is free and open-source software.
Starting with version 3, the SuperCollider environment has been split into two components: a server, scsynth; and a client, sclang. These components communicate using OSC (Open Sound Control).
The SC language combines the object-oriented structure of Smalltalk and features from functional programming languages with a C-family syntax.
The SC Server application supports simple C and C++ plugin APIs, making it easy to write efficient sound algorithms (unit generators), which can then be combined into graphs of calculations. Because all external control in the server happens via OSC, it is possible to use it with other languages or applications.
SuperCollider's sound generation is bundled into an optimised command-line executable (named scsynth). In most cases it is controlled from within the SuperCollider programming language, but it can be used independently. The audio server has the following features:
Open Sound Control access
Simple ANSI C and C++11 plugin APIs
Supports any number of input and output channels, including massively multichannel setups
Gives access to an ordered tree structure of synthesis nodes which define the order of execution
Bus system which allows dynamically restructuring the signal flow
Buffers for writing and reading
Calculation at different rates depending on the needs: audio rate, control rate, demand rate
Supernova, an independent implementation of the Server architecture, adds multi-processor support through explicit parallel grouping of synthesis nodes.
This page is automatically generated and may contain information that is not correct, complete, up-to-date, or relevant to your search query. The same applies to every other page on this website. Please make sure to verify the information with EPFL's official sources.