This is a modified version of SuperCollider with my own patches applied. As they are merged into this feature-central avdrd
branch that I use for myself, the patches merged will be noted here with a brief description of their functionality.
- My hot fix for #5646. Perhaps it will be replaced by the official fix later, although mine is less brittle.
- Uniform use of NamedControl in JITLib. Previously a mixture of interfaces was being called from JITlib, making it difficult for user code to know what to expect since Control namespaces (
NamedControl
vsControl.names
) are not unified in SuperCollider. - Preload Controls generated by function arguments into NamedControl for a somewhat more unified controls namespace. See ##5648 for motivation.
- SynthDef.build posthook For users who forget to
add
their SynthDefs and similar automation purposes. See #5656 for an example how to use it.
The patches are also available, as much as it is possible to separate them as such, on topic/
branches (linked above) that are merged into the avdrd
branch, which is the default branch for this repo fork.
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 BeagleBone Black.
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 BeagleBone Black READMEs for instructions on building on those platforms.
SuperCollider is tested with:
- Windows 10 (32- and 64-bit) and MSVC 2019
- macOS 10.15 and Xcode 11.7
- Ubuntu 18.04 and gcc 10
SuperCollider is known to support these platforms:
- Windows Vista, 7, 8, and 10
- macOS 10.13-11.x
- Ubuntu 14.04-20.04
We also provide a legacy macOS binary for macOS 10.10 and above using Qt 5.9.
SuperCollider has guaranteed support for:
- Windows 10
- MSVC 2017, 2019
- macOS 10.14-10.15
- Xcode 10-12
- Debian >= 9.0
- Ubuntu 16.04, 18.04, 20.04
- Fedora 31, 32
- Arch Linux
- gcc >= 6.3
- clang >= 3.9
- Qt >= 5.11
For more information on platform support guarantees, see the project Wiki.
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
You can sign up for mailing lists, and view the archives for sc-users and sc-dev.
We also have a forum and a Slack chat.
Please read our adopted code of conduct, which applies to all the above communities.
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.
Please read our adopted code of conduct before contributing, so that you can understand what actions will and will not be tolerated.
Read our contributing guide to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes.
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.
SuperCollider uses a Requests for Comment (RFC) system to propose, design, and discuss 'big' changes. Submitting a new RFC or discussing an existing one is a great way to get involved, especially if you are looking for a way to contribute that doesn't involve writing code or using a terminal. You can learn more at the RFC repository.
SuperCollider is free software available under Version 3 the GNU General Public License. See COPYING for details.