SuperCollider is a cross-platform environment for audio synthesis and algorithmic composition used by musicians, artists and researchers working with sound. It can be installed and run on Linux, macOS and Windows, as well as microcomputers such as Raspberry Pi or Bela. SuperCollider was originally developed by James McCartney and is now distributed as Free Software under the GNU General Public License. It is maintained and developed by an active and enthusiastic community.
SuperCollider consists of three main components:
- • scsynth — A real-time audio engine implemented as a server.
- The default server is scsynth. SuperCollider also includes an alternative implementation of scsynth called supernova which has multi-threading support to fully exploit the potential of multi-core CPUs.
- • sclang — A text-based programming language and interpreter that acts as a client to the server.
- sclang controls audio synthesis processes on the server and offers an interactive programming environment for live coding, an extensive library for creating patterns and a library of scales and modes from various cultures. Creating processes that unfold over time is straightforward in sclang. It also provides all the essential features of a graphical user interface (GUI) that can be used to create custom user interfaces, data visualization, and animations. With support for MIDI, OSC, HID, and Serial Port, sclang can be easily interfaced with local and networked hardware and software.
- • ScIDE — A dedicated editor for SuperCollider with an integrated help system.
- The SuperCollider Integrated Development Environment (IDE) allows you to start writing code right out of the box. Community members also maintain sclang integration with other popular IDEs. The full list of support editors is available at https://github.com/supercollider/supercollider/wiki/Systems-interfacing-with-SC#editors
The server and client communicate via Open Sound Control (OSC), allowing SuperCollider to run on a single machine or on multiple machines over a network. Thanks to this client/server architecture, it is possible for multiple clients to connect and control what is happening on the server. Users can also control the audio server directly with any OSC-enabled program by using the Node Messaging protocol.
An extensive library of Unit Generators—the building blocks of audio synthesis networks—are included with SuperCollider. Users may optionally extend this core library with the sc3-plugins suite of UGens. Additionally, there are many of user-developed language extensions, called Quarks, to further extend the functionality of SuperCollider. Quarks can be browsed in the distribution repository where users can submit their own Quarks for distribution.
These are useful starting points for getting help on SuperCollider:
- Getting Started tutorial series
- Get started with SuperCollider
- Glossary
- Glossary
- More on Getting Help
- Using Help Files effectively and inspecting class definition files to build more understanding
- All tutorials
- Index of all help files categorized under "Tutorials"
- User FAQ
- Common Errors and FAQ
These are helpful for gaining a better grasp of SuperCollider:
- How to Use the Interpreter
- Understanding errors
- Debugging tips
- Tracing Processes
- Internal Snooping (Introspection)
- HID permissions
- LID permissions
Guides on writing code in the SuperCollider language (sclang
).
- Comments
- Expression Sequence
- Introduction to Objects
- Classes
- Messages
- Polymorphism
- Assignment Statements
- Scoping and Closure
- Functions
- Control Structures
- Syntax Shortcuts
- Symbolic Notations
- Adverbs for Binary Operators
- Key Value Pairs
- Literals
- Partial Application
- Working with Multi-dimensional Arrays (J concepts in SC)
- List Comprehensions
- Tour of Special Functions
Guides and Tutorials on broad topics:
- Audio device selection
- Tour of UGens
- Operators
- Collections
- Generic Collectors
- Randomness
- Streams
- Event types
- Introduction to GUI
- List of GUI classes
- Layout Management
- FFT Overview
- Non-Realtime Synthesis (NRT)
Guides and References focused on the important relationship between the Client and Server.
- Client vs Server
- Unit Generators and Synths
- Node Messaging
- Multichannel Expansion
- Order of execution
- Default Group
- Server Guide
- Server Architecture
- Multi-client Setups
- Server Tutorial
- Server Command Reference
- Scheduling and Server timing
- Bundled Server Messages
- Synth Definition File Format
If there are things you want to do that can't be achieved using SuperCollider as it exists, you can extend SuperCollider's capabilities.
- Sclang Startup File
- Using Extensions
- Using Quarks
- Writing Classes
- Making Standalone Applications
- Writing tests
- Writing Unit Generators
- Server Plugin API
- Writing Primitives
- Share Music
-
- Share Code
-
- Discussing
-
- Help Documents
-
- Developing
-
SuperCollider Wiki
SuperCollider is free software published under the GPL: Licensing.
These help files are published under the Creative Commons CC-BY-SA-3 license: HelpDocsLicensing.