/ supercollider

CBPSC 0.1.1 Released

The first version of CBPSC, a.k.a. Corpus-based Processing for SuperCollider, is available from github.com/kitefishlabs/cbpsc.

It has been tested exztensively on SC3.4/MacIntel. I will be gradually expanding and refining CBPSC over the coming months. Email with questions/bugs/feature requests/etc.

What is CBPSC?

CBPSC is a project seeking to implement simple, powerful corpus-based processing tools in SuperCollider. The project is very much related to a similar project (cbp) implemented in Max5, which itself is based on the now well-known CataRT, a software project authored by Diemo Schwarz. This SC version seeks to capitalize on the powerful and efficient scripting and signal-processing capabilities of sclang and sc-server, respectively.

Download and Install

To install, download a zipped copy by clicking the “download source” link at the top of the GitHub repo . Install the class files (those ending with .sc) in your SuperCollider Extensions directory (usually at ~/Library/Application Support/SuperCollider/Extensions/). Recompile sclang and open the gui.rtf file. This file contains an example gui and instructions for running it. There are help files for CorpusDB, CorpusSearch, CorpusUnitViewer, and UnitViewer that explain in some detail how to use each programmatically.

Classes, GUIs, code

The software encompasses several classes. The CorpusDB class creates and maintains a database that holds a corpus of sound files, segments, and associated metadata. The class contains everything needed to analyze sound files, including an analysis SynthDef. The CorpusUnitViewer is a class that provides code to display a graph of units based on their metadata. It is built on (inherits from) UnitSpace, a generic class that handles most of the work that goes into displaying representations of units. Finally, the CorpusSearch class contains methods to organize and search through the units in a corpus. Collectively, the classes provide all the basic functionality for corpus-based processing.

GUIs, like the example GUI provided, knit all this functionality into a graphical interface. Code may be written that uses no GUI, but still makes calls into the various classes. When used together, a Model-View-Controller (MVC) design takes shape. When used programmatically with now view code, a Model-Controller pattern is used. These design patterns allow for the clear and efficient separation of roles and a thoroughly modular approach.

System Requirements

Tested on MacBook Pro/2.16GHz Intel Core Duo/2 GB RAM/OS 10.6.4/SC 3.4. Should work on any Mac that can run SC3.4. Not tested with 64 bit SC server. To do: test and develop Swing GUI code for Linux & Windows.


In SC3, all the dependencies for CBPSC may be obtained as Quarks from within the SC application. For help on installing and running Quarks, run Quarks.help or Quarks.gui in SuperCollider.

CBPSC uses the following Quarks:

  • TabbedView (for the GUI only)
  • KDTree