Skip to content

An n-channel diffusion system for running concerts of electroacoustic music


Notifications You must be signed in to change notification settings


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation


SuperDiffuse is an n-channel diffusion system, written in SuperCollider.

It was developed as part of research at The University of Sheffield Sound Studios, and to facilitate Sound Junction: a weekend festival of electroacoustic music at The University of Sheffield.

Based on the idea of concerts, SuperDiffuse allows pieces to be added, removed, and swapped. As concerts can often contain a variety of playback formats (Stereo, 5.1, 7.1, 8, 16, 24, 32...), SuperDiffuse allows pieces to be associated with their own routing, using a patchbay-style system.

Starting it is a matter of describing how big your system is:

// 8 playback channels, 8 output channels, 8 control faders


SuperDiffuse uses SuperCollider, so you must have it installed first:


SuperDiffuse is written as a Quark, so if you have Git installed (Windows users will need to manually install Git), run the following in SuperCollider:


Then restart SuperCollider (or just recompile the class library with Ctrl/Cmd + Shift + L).


  • Download a release from Github:

  • Unzip into a folder called SuperDiffuse (doesn't matter where, we'll move it soon)

  • In SuperCollider, go to: File > Open user support directory

  • If it doesn't already exist, make a folder called Extensions

  • Move the SuperDiffuse folder into the Extensions folder

Then restart SuperCollider (or just recompile the class library with Ctrl/Cmd + Shift + L)


Pre-flight checks

Make sure your SuperCollider is setup to use the number of output channels you need, so something like this in your startup file:

// connect to your soundcard
//  all connected devices are listed on booting
//  the server if you need to know what goes here
s.options.device_("ASIO : ASIO Fireface");

// set the number of output channels on the card:

// boot the server


SuperDiffuse needs to know how big your system is, but that's it.

  • The maximum number of channels for playback into the system
  • Number of channels to output
  • Number of control faders (MIDI or OSC)

So, if the biggest piece you're playing back is 8 channels, then your number of input channels is 8:

// numIns, numOuts, numControls

This will fail if you don't have the number of output channels you're requesting.

From there, it's all in the GUI - see the tutorial series in the documentation for more information (accessible from the SuperCollider Help system, Browse > Quarks > SuperDiffuse)