Product SiteDocumentation Site

Chapter 11. SuperCollider

11.1. Requirements and Installation
11.1.1. Knowledge Requirements
11.1.2. Software Requirements
11.1.3. Hardware Requirements
11.1.4. Available SuperCollider Packages
11.1.5. Recommended Installation
11.2. Using GEdit to Write and Run SuperCollider Programs
11.2.1. Enable and Configure SCEd in GEdit
11.2.2. Enable SuperCollider Mode and Start a Server
11.2.3. Executing Code in GEdit
11.2.4. Other Tips for Using GEdit with SuperCollider
11.3. Basic Programming in SuperCollider
11.3.1. First Steps
11.3.2. Variables and Functions
11.3.3. Object-Oriented SuperCollider
11.3.4. Sound-Making Functions
11.3.5. Multichannel Audio
11.3.6. Collections
11.3.7. Repeated Execution
11.3.8. Conditional Execution
11.3.9. Combining Audio; the Mix Class
11.3.10. SynthDef and Synth
11.3.11. Busses
11.3.12. Ordering and Other Synth Features
11.3.13. Scheduling
11.3.14. How to Get Help
11.3.15. Legal Attribution
11.4. Composing with SuperCollider
11.4.1. Files for the Tutorial
11.4.2. Inspiration
11.4.3. Designing the First Part
11.4.4. Designing the Second Part
11.4.5. Creating Ten Pseudo-Random Tones
11.4.6. Scheduling the Tones
11.4.7. Optimizing the Code
11.4.8. Making a Useful Section out of the Second Part
11.4.9. Joining the Two Parts
11.5. Exporting Sound Files
11.5.1. Non-Real-Time Synthesis
11.5.2. Recording SuperCollider's Output (Tutorial)
SuperCollider is many things, but above all:
  • An audio synthesis engine,
  • A flexible programming language, and
  • An interpreter to transform the programming language into synthesis instructions.

11.1. Requirements and Installation

11.1.1. Knowledge Requirements

SuperCollider is by far the most difficult program described in the Fedora Musicians' Guide. The SuperCollider applications themselves are easy to use, and they work very well, but they are merely tools to help you accomplish something useful. SuperCollider has an extremely powerful and flexible programming language, with libraries designed primarily for audio processing. As often happens with computers, however, this added flexibility and power comes at the cost of requiring greater understanding and learning on the part of the user. Because SuperCollider involves actual programming, a rudimentary understanding of some principles and concepts of computer science will provide huge benefits to somebody learning the language. The following articles from Wikipedia are not mandatory reading, but you should refer to them as necessary while learning the language.

11.1.2. Software Requirements

SuperCollider uses the JACK Audio Connection Kit. You should install JACK before installing SuperCollider. Refer to Section 2.3.1, “Install and Configure JACK for instructions to install JACK.
SuperCollider is not available from the Fedora software repositories. You must enable the "Planet CCRMA at Home" repository to install SuperCollider. See Section 4.3.1, “Install the "Planet CCRMA at Home" Software Repository” for instructions ti enable the "Planet CCRMA at Home" repository. The "Planet CCRMA at Home" repository contains a wide variety of music and audio applications.

11.1.3. Hardware Requirements

You need an audio interface to use SuperCollider. You do not need a microphone to use SuperCollider.

11.1.4. Available SuperCollider Packages

The SuperCollider packages are all held in the Planet CCRMA at Home repository, and there are a lot of them. Many of them have standard Fedora suffixes, but many are other kinds of optional components. Most of the optional features add libraries to SuperCollider, allowing you to use them in your audio programs. The specific features available in each additional package are not described here.
  • supercollider-ambiem : Optional Library ("Ambisonics classes for SC").
  • supercollider-debuginfo : Decodes the debugging information provided by SuperCollider.
  • supercollider-devel : Contains files needed for development with SuperCollider.
  • supercollider-dewdrop : Optional Library ("DewDrop external collection for SC").
  • supercollider-emacs : Adds SuperCollider support to the emacs text editor.
  • supercollider-extras : Optional Library ("Extra plugins and classes for SC").
  • supercollider-gedit : Adds SuperCollider support to the GEdit text editor.
  • supercollider-libscsynth : "SuperCollider synthesis library."
  • supercollider-quarks : Optional Library ("Local quarks repository for SuperCollider").
  • supercollider-sclang : Help files, examples, the class library, and language interpreter.
  • supercollider-vim : Adds SuperCollider support to the vim text editor.
  • supercollider : Installs the "minimum requirements" to run SuperCollider.
    • supercollider-sclang
    • supercollider-libscsynth
    • fftw
    • w3m-el
    • emacs
  • supercollider-bbcut2 : Optional Library ("Beat tracking of audio streams").
  • supercollider-bbcut2-debuginfo : Decodes the debugging information provided by bbcut2.
  • supercollider-mathlib : Optional Library ("Useful classes for SC").
  • supercollider-redclasses : Optional Library ("Frederik Olofsson Red SC classes").
  • supercollider-redclasses-debuginfo : Decodes the debugging information provided by redclasses.
  • supercollider-world : Installs most SuperCollider packages.
    • supercollider
    • abmiem
    • supercollider-redclasses
    • supercollider-dewdrop
    • supercollider-emacs
    • supercollider-mathlib
    • supercollider-midifile
    • supercollider-extras
    • supercollider-bbcut2
    • supercollider-reduniverse
  • supercollider-midifile : Optional Library ("MIDI file reader for SuperCollider").
  • supercollider-reduniverse : Optional Library ("Sonification and visualization of dynamic systems").

11.1.5. Recommended Installation

If you have never used SuperCollider before, then we recommend installing the smallest number of packages possible. This will allow you to start learning with the core classes, available on all SuperCollider installations. Installing the bare minimum requirements will not prevent you from installing optional libraries in the future, of course.
The recommended installation also avoids installing the emacs or vim components, which - unless you are already a programmer - you probably don't know how to use. The emacs and vim text editors are extremely powerful and extensible, but they can be difficult to learn. Furthermore, there's no reason to learn them just for SuperCollider, because the component for GEdit is more than sufficient.
To install the minimum recommended installation for SuperCollider:
  1. In a terminal, run su -c 'yum install supercollider supercollider-gedit'
  2. Review the proposed installation carefully. The list may be quite long, and require a large download.