supercollider
An audio server, programming language, and IDE for sound synthesis and algorithmic composition.
Top Related Projects
Quick Overview
SuperCollider is an open-source platform for audio synthesis and algorithmic composition. It provides a powerful and flexible environment for real-time audio processing, sound design, and music creation, combining a dynamic programming language with a state-of-the-art audio engine.
Pros
- Highly flexible and extensible audio programming environment
- Supports both real-time and non-real-time audio synthesis
- Large and active community with extensive documentation and resources
- Cross-platform compatibility (macOS, Windows, Linux)
Cons
- Steep learning curve for beginners
- Syntax can be complex and intimidating for newcomers
- Limited built-in GUI capabilities compared to some other audio software
- Performance can be resource-intensive for complex patches
Code Examples
- Simple sine wave synthesis:
{SinOsc.ar(440, 0, 0.5)}.play;
This code creates and plays a sine wave at 440 Hz with an amplitude of 0.5.
- FM synthesis example:
{
var carrier = 440, modulator = 220, index = 3;
SinOsc.ar(carrier + (SinOsc.ar(modulator) * index * modulator), 0, 0.5)
}.play;
This code demonstrates frequency modulation synthesis with a carrier frequency of 440 Hz, a modulator frequency of 220 Hz, and a modulation index of 3.
- Creating a simple sequencer:
(
SynthDef(\ping, {|freq = 440, amp = 0.5, pan = 0|
var sig = SinOsc.ar(freq) * EnvGen.kr(Env.perc(0.01, 0.1), doneAction: 2);
Out.ar(0, Pan2.ar(sig, pan, amp));
}).add;
Pbind(
\instrument, \ping,
\degree, Pseq([0, 2, 4, 7], inf),
\dur, 0.25
).play;
)
This code defines a simple synth and creates a sequencer that plays a repeating pattern of notes.
Getting Started
- Download and install SuperCollider from the official website: https://supercollider.github.io/download
- Launch SuperCollider and open a new document
- Enter the following code to test your installation:
s.boot; // Boot the server
{SinOsc.ar(440, 0, 0.5)}.play; // Play a sine wave
s.quit; // Quit the server
- Press Cmd+Enter (macOS) or Ctrl+Enter (Windows/Linux) to execute each line of code
- Explore the built-in help system and tutorials by selecting "Help" from the menu bar
Competitor Comparisons
Pattern language
Pros of Tidal
- More concise syntax for pattern-based music creation
- Easier learning curve for beginners in live coding
- Tighter integration with Haskell, allowing for functional programming techniques
Cons of Tidal
- Less flexible for creating custom synths and audio processing
- Smaller community and ecosystem compared to SuperCollider
- Limited to pattern-based music, less suitable for other audio applications
Code Comparison
Tidal example:
d1 $ sound "bd sn:2" # gain "1.2 0.8"
SuperCollider example:
(
SynthDef(\kick, { |out, amp = 0.5, freq = 50|
var sig = SinOsc.ar(freq) * EnvGen.ar(Env.perc(0.01, 0.2), doneAction: 2);
Out.ar(out, sig * amp);
}).add;
)
Pdef(\kickPattern, Pbind(\instrument, \kick, \dur, 1)).play;
The Tidal example demonstrates its concise syntax for creating rhythmic patterns, while the SuperCollider example shows its flexibility in defining custom synths and patterns. Tidal is more accessible for quick pattern creation, whereas SuperCollider offers more control over sound synthesis and complex compositions.
Main repository for Csound
Pros of Csound
- Longer history and more established in academic/research settings
- Extensive library of opcodes for sound synthesis and processing
- Better documentation and learning resources available
Cons of Csound
- Steeper learning curve, especially for beginners
- Less modern syntax and programming paradigms
- Smaller community and fewer third-party extensions
Code Comparison
Csound example:
instr 1
aSin = oscili(0.5, 440)
out(aSin)
endin
SuperCollider example:
{
SinOsc.ar(440, 0, 0.5)
}.play;
Both examples generate a simple sine wave at 440 Hz with an amplitude of 0.5. Csound uses a more traditional instrument-based approach, while SuperCollider employs a more concise, functional style.
SuperCollider generally offers a more flexible and modern programming environment, making it easier for users familiar with object-oriented programming. However, Csound's extensive opcode library and long-standing presence in academic circles make it a powerful tool for complex sound design and composition tasks.
Pure Data - a free real-time computer music system
Pros of Pure Data
- Visual programming interface, making it more intuitive for beginners
- Lightweight and runs on various platforms, including mobile devices
- Real-time patching allows for on-the-fly modifications during performance
Cons of Pure Data
- Limited built-in functionality compared to SuperCollider's extensive class library
- Less efficient for complex algorithmic compositions
- Steeper learning curve for advanced audio processing techniques
Code Comparison
Pure Data (patch-based):
[osc~ 440] -> [*~ 0.5] -> [dac~]
SuperCollider:
{SinOsc.ar(440, 0, 0.5)}.play;
Both examples generate a 440 Hz sine wave at half amplitude. Pure Data uses a visual patch, connecting objects with cords, while SuperCollider uses a concise text-based approach.
Pure Data's visual programming paradigm makes it easier for beginners to understand signal flow, but SuperCollider's text-based system allows for more complex and efficient code structures, especially for larger projects.
SuperCollider's extensive class library and powerful language features make it more suitable for advanced audio programming and algorithmic composition. However, Pure Data's visual interface and real-time patching capabilities make it an excellent choice for live performances and quick prototyping.
Collaborative Programmable Music
Pros of Overtone
- Built on Clojure, providing a more functional programming approach
- Tighter integration with the host language, allowing for more seamless live coding
- Easier to integrate with other Clojure libraries and tools
Cons of Overtone
- Smaller community and ecosystem compared to SuperCollider
- Less comprehensive documentation and learning resources
- Dependent on SuperCollider's scsynth for audio synthesis
Code Comparison
SuperCollider:
SynthDef(\sine, { |freq = 440, amp = 0.1, gate = 1|
var sig = SinOsc.ar(freq) * amp * EnvGen.kr(Env.asr, gate, doneAction: 2);
Out.ar(0, sig ! 2);
}).add;
Overtone:
(definst sine [freq 440 amp 0.1 gate 1]
(* (sin-osc freq)
amp
(env-gen (adsr) :gate gate :action FREE)))
Both examples define a simple sine wave synthesizer with frequency, amplitude, and gate parameters. SuperCollider uses a more imperative style, while Overtone leverages Clojure's functional approach. Overtone's syntax is generally more concise and aligned with Clojure's idioms.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
SuperCollider 
SuperCollider is a platform for audio synthesis and algorithmic composition, used by musicians, artists, and researchers working with sound. It consists of:
- scsynth, a real-time audio server with hundreds of unit generators ("UGens") for audio analysis, synthesis, and processing
- supernova, an alternative server to scsynth with support for parallel DSP on multi-core processors
- sclang, an interpreted programming language that controls the servers
- scide, an editing environment for sclang with an integrated help system
sclang comes with its own package manager, called Quarks. scsynth and supernova both support third-party plugins via C and C++ APIs.
SuperCollider is written in C++17 using several third-party libraries, including Qt and Boost. It can be used on Windows, macOS, a variety of Linux and BSD distributions, Raspberry Pi, and the Bela platform.
Install
macOS and Windows builds for stable releases are provided at our downloads page. See the macOS README and Windows README for instructions on usage, and how to build SC yourself.
To get the latest stable version, Linux users will need to build SuperCollider themselves. See the Linux README for instructions.
See the Raspberry Pi and Bela READMEs for instructions on building on those platforms.
Platform support
SuperCollider is tested with:
- Windows 10 64-bit and MSVC 2022
- macOS 15 and Xcode 15.2
- Ubuntu 22.04 and gcc 12
SuperCollider is known to support these platforms:
- Windows 10, 11
- macOS 11-15
- Ubuntu 22.04-24.04
SuperCollider has guaranteed support for:
- Windows 10, 11
- MSVC 2019, 2022
- macOS 13-15
- Xcode 14-16
- Debian >= 11
- Ubuntu 22.04, 24.04
- Fedora 36, 37
- Arch Linux
- gcc >= 9
- clang >= 11
- Qt >= 6.2
There is still limited support for Qt 5.15. Further details are described in README_MACOS.md.
For more information on platform support guarantees, see the project Wiki.
Learn
The official docs can be viewed in the SuperCollider IDE's built-in documentation browser. You can also view them online at doc.sccode.org.
We recommend the following resources for learning SC:
- A Gentle Introduction to SuperCollider, a free ebook by Bruno Ruviaro
- Eli Fieldsteel's video tutorials
- Getting Started with SC
- Nick Collins' SC tutorial
- SCCode.org, a repository of user-submitted examples
Discuss
You can join our forum at scsynth.org or our Slack channel.
You can also view the archives for the old mailing lists at sc-users and sc-dev.
Please read our adopted code of conduct, which applies to all the above communities.
Contribute
Development of SuperCollider happens here on GitHub, and we are grateful to the community for contributing bugfixes and improvements. Read below to learn how you can take part in improving SuperCollider.
Code of Conduct
Please read our adopted code of conduct before contributing, so that you can understand what actions will and will not be tolerated.
Contributing Guide
Read our contributing guide to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes.
Good First Issues
To help you get your feet wet and get you familiar with our contribution process, we have a list of good first issues that contain bugs which have a relatively limited scope. This is a great place to get started. You can also ask on our developer's mailing list, on Slack, or on the forum.
License
SuperCollider is free software available under Version 3 the GNU General Public License. See COPYING for details.
Top Related Projects
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot