SuperCollider facts for kids
![]() |
|
Original author(s) | James McCartney |
---|---|
Initial release | 1996 |
Stable release |
3.13.0 / 19 February 2023
|
Written in | C++ |
Operating system | FreeBSD, Linux, macOS, Windows |
Type | Audio programming language |
License | GPL-3.0-or-later |
SuperCollider is a special computer program and programming language. It was first released in 1996 by James McCartney. Its main purpose is to create sounds and music using computers.
This system lets you make sounds in real-time, which means as you type. It also helps with algorithmic music, where music is made using rules. Scientists and artists use SuperCollider to explore sound, create interactive music, and even perform live coding. It is free and open-source software, so anyone can use and change it.
Contents
How SuperCollider Works
SuperCollider is made of two main parts that work together. Think of it like a brain and a voice. These two parts communicate using a special message system called OSC (Open Sound Control).
The Sound-Making Part: scsynth
The first part is called scsynth, which is the SuperCollider synthesis server. This is the "voice" that actually makes the sounds. It's a very fast and powerful program.
Here are some things scsynth can do:
- It uses Open Sound Control to get instructions.
- You can add new sound effects to it easily.
- It can handle many sounds at once, even for big setups.
- It organizes sounds in a special way to make sure they play correctly.
- It has a "bus system" to send sounds to different places.
- It can record and play back sounds using buffers.
- It can make calculations at different speeds for different needs.
There's also a version called Supernova. It helps scsynth use multiple computer processors at the same time. This makes it even more powerful for complex sounds.
The Programming Language: sclang
The second part is sclang, which is the SuperCollider programming language. This is the "brain" where you write the instructions for the sound server. It's a flexible language, good for both real-time sound and complex ideas.
sclang is similar to other programming languages like Smalltalk and C. It lets you create complex sound designs. You can also make your own tools and frameworks with it.
Making User Interfaces
SuperCollider also lets you build your own graphical user interfaces (GUIs). These are the visual parts of a program, like buttons and sliders. You can create these GUIs to control your sound projects. This makes it easier to interact with your music and sound designs.
Connecting SuperCollider to Other Things
Other Programs That Control It
Because the scsynth server uses Open Sound Control (OSC), many different programs can control it. While most people use the SuperCollider language itself, other OSC-friendly programs can also send commands to the server.
Some other programming languages have their own ways to talk to the SuperCollider server. These include Scheme, Haskell, Scala, and Clojure. There's even a popular music coding tool called Sonic Pi that uses SuperCollider.
Where SuperCollider Can Run
SuperCollider works on many different computer operating systems. These include macOS, Linux, Windows, and FreeBSD. This means you can use it on most common computers.
It has also been shown to work on mobile devices like Android phones and iOS (iPhones/iPads).
Places to Write Code

Most people use SuperCollider's own special program, called an IDE, to write code. This IDE works on Linux, Mac, and Windows.
You can also write SuperCollider code in other popular text editors and development environments, such as:
- Emacs
- Vim
- Atom
- gedit
- Kate
Code Examples
Here are some examples of what SuperCollider code looks like. These small pieces of code show how you can make sounds and do calculations.
// play a mixture of pink noise and a sine tone of 800 Hz
{ SinOsc.ar(800, 0, 0.1) + PinkNoise.ar(0.01) }.play;
// modulate the frequency of the sine tone as well as the amplitude of the noise signal with another sine signal,
// the frequency of which depends on the horizontal position of the mouse pointer
(
{
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: multiply the elements of a collection by their indices
[1, 2, 5, 10, -3].collect { |elem, idx| elem * idx };
// Factorial function
f = { |x| if(x == 0) { 1 } { f.(x-1) * x } };
// «Pan Sonic emulation - Katodivaihe - lahetys» - Miguel Negrão
(
{
var a, b, c, d, n, e, f, out;
a = Impulse.ar(8)*1.5;
b = WhiteNoise.ar * Env([1.0,1.0,0.0],[0.01,0.01],\step).ar(0, Impulse.ar(1 )) ;
b = FreeVerb.ar(b, 0.5, 0.4)*2.5;
c = SinOsc.ar(40) * Env.perc(0.01,0.2).ar(0, TDuty.ar(Dseq([1/4,1/2,1/8,1/8],inf)));
5.do{ c = (c.distort + c)*0.75};
c = c * 1.5;
d = LPF.ar(Saw.ar([20,47]).sum , XLine.ar(4000,200,0.5)) * Env.perc.ar(0, Impulse.ar(1/16)) * 0.5;
d = (GVerb.ar( d , roomsize:10, revtime:6) * 200).clip(-1.0,1.0) * 0.3;
n = 12;
e = ( Saw.ar( 40*(1..n) * ({ LFNoise1.ar(0.1).range(1,1.01) } ! n) ) *
({ LFNoise1.ar(0.1).range(0.0,1.0) }!n)).sum * 10;
e = CombC.ar(e, 0.1, 0.1, 4) + e;
e = e.tanh * 0.3 * SinOsc.ar(0.05).range(0.5,1.0);
e = e.dup;
e = e * SinOsc.ar(0.03).range(0.2,1.0) * 0.5;
f = Blip.ar(100) * Blip.ar(100) * Env([0.0,0.0,1.0],[8,8],[\step,\linear,\step])
.ar(0, Impulse.ar(1/16)) * 2 ;
out = ((a + b + c + f) ! 2) + d + e;
out = out * 0.2
}.play
)
Live Coding with SuperCollider
SuperCollider is great for something called live coding. This is when a performer writes and changes computer code during a show. It's like making music or art on the fly, right in front of an audience.
With SuperCollider, performers can quickly change sounds and music patterns. They can swap out different sound effects or modify how sounds are created. This makes for very interactive and exciting performances.
See also
In Spanish: SuperCollider para niños
- List of music software
- Comparison of audio synthesis environments