SuperCollider 3.14.0-dev:
Filter:

SuperCollider 3.14.0-dev

Documentation home
NOTE: News in SuperCollider version 3.13

An introductory overview

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.
Although sclang is the native language and client for the server, there are also several client implementations in other programming languages, such as Python (via Supriya API), JavaScript, Haskell, or Scala.
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.

Getting started

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

Getting Sound

Generating Sound from Scratch

Defining and Instantiating Synths

Live Coding Essentials

Building Musical Patterns

Diving deeper

These are helpful for gaining a better grasp of SuperCollider:

Debugging

  1. How to Use the Interpreter
  2. Understanding errors
  3. Debugging tips
  4. Tracing Processes
  5. Internal Snooping (Introspection)
  6. HID permissions
  7. LID permissions

Language Reference

Guides on writing code in the SuperCollider language (sclang).

  1. Comments
  2. Expression Sequence
  3. Introduction to Objects
  4. Classes
  5. Messages
  6. Polymorphism
  7. Assignment Statements
  8. Scoping and Closure
  9. Functions
  10. Control Structures
  11. Syntax Shortcuts
  12. Symbolic Notations
  13. Adverbs for Binary Operators
  14. Key Value Pairs
  15. Literals
  16. Partial Application
  17. Working with Multi-dimensional Arrays (J concepts in SC)
  18. List Comprehensions
  19. Tour of Special Functions

Overviews

Guides and Tutorials on broad topics:

  1. Audio device selection
  2. Tour of UGens
  3. Operators
  4. Collections
  5. Generic Collectors
  6. Randomness
  7. Streams
  8. Event types
  9. Introduction to GUI
  10. List of GUI classes
  11. Layout Management
  12. FFT Overview
  13. Non-Realtime Synthesis (NRT)

Architecture

Guides and References focused on the important relationship between the Client and Server.

  1. Client vs Server
  2. Unit Generators and Synths
  3. Node Messaging
  4. Multichannel Expansion
  5. Order of execution
  6. Default Group
  7. Server Guide
  8. Server Architecture
  9. Multi-client Setups
  10. Server Tutorial
  11. Server Command Reference
  12. Scheduling and Server timing
  13. Bundled Server Messages
  14. Synth Definition File Format

Extending SC

If there are things you want to do that can't be achieved using SuperCollider as it exists, you can extend SuperCollider's capabilities.

  1. Sclang Startup File
  2. Using Extensions
  3. Using Quarks
  4. Writing Classes
  5. Making Standalone Applications
  6. Writing tests
  7. Writing Unit Generators
  8. Server Plugin API
  9. Writing Primitives

Sharing your work

Share Music

Share Code

Contributing to SC

Discussing

Help Documents

Developing

For more information

SuperCollider Wiki

Licensing

SuperCollider is free software published under the GPL: Licensing.

These help files are published under the Creative Commons CC-BY-SA-3 license: HelpDocsLicensing.