New Quark: Cactus - A framework for project organisation in SC

You can check the project here:

Feel free to provide feedback and ideas in this thread. For issues please use GitHub issues. Only tested on MacOS currently so reports of specific issues on GNU/Linux would be great.

From the README:

A style agnostic framework for creative coding using the SuperCollider audio programming language. At its most basic level it will:

  • Create a project file structure with configuration, initialisation and cleanup files.
  • Create a buffers folder from which it collects all sound files and make them available through an intuitive interface.
  • Allow for defining quickstart templates for different types of projects using a (very) basic templating engine.

Work in Progress:

  • Allow for the creation and access of modules of sound processes. The ‘modules’ and ‘browse’ keys on the GUI are already present and the structure is functional but there are but a few modules available. The interface may still change quite a bit on this.
  • Add a folder titled ‘classes’ in your Cactus project and the classes will be auto-linked to SuperCollider. Has not been tested but feel free to use and provide feedback.

Have fun :slightly_smiling_face:



your approach looks great, especially for me as a newcomer to SC. I installed Cactus as you described, but how can I start the modules? Do I have to paste the code in the IDE? Any example (f.e. screen capture of a simple project) would be great.

1 Like

Hi there,

Sorry for the later reply. I seem to have missed the notification for your reply :grimacing:

I am considering creating a video as a brief introduction to Cactus so will post here if I get around to it. But when it comes to the modules it is still a work in progress with only a couple of modules available and the structure and examples unclear. Not much for you to play with there so I can’t really recommend it at its present state if you are a beginner.

But if you or anyone else is curious to see what I am going for with modules (feedback welcome as I am still experimenting on the interface) you can just create a new project with the default template. Then open the start.scd file and observe that the Cactus instance is stored on the global variable c by convention. In the GUI you can select browse, click ‘Global Update’ to list all modules and then install the one you want. Then you can just run a module by calling runModule on the Cactus instance. For example, for the Granulation module:

b = Platform.resourceDir +/+ "sounds/a11wlk01.wav";
b =, b);
// assuming a cactus instance is stored in c
c.runModule('Granulation', [
  \buffer, b,
  \density, 10,
  \velocity, 0.3,
  \grainsize, 0.2,
  \grainAmp, 1,
  \pitchshift, 1,
  \bsplice, 0.003,
  \esplice, 0.0497,
  \pan, 0

In theory that should work :sweat_smile:

Just to reiterate: better don’t try to use modules as a beginner. Just understand and use the main structure for now and run your own code.

Thanks, a brief video would be great, f.e. how do I call runModule on the Cactus instance?

Did you try what I wrote above? Will try to get to make a video soon :slightly_smiling_face::+1:

Yes, I execute the “Granulation Range” and “Granulation” by pasting the scd-code in the IDE, evalute and got sound out of it. The example “Clicked Sines” give me an error: Message ‘run’ not understood.

Sounds about right :smile: I recently changed the module structure and I haven’t changed all the current modules. Unfortunately, modules really are work in progress. Eventually, if this comes to fruition, I would like to have a searchable library of modules for easy access and hacking so that someone can get something up and running with SuperCollider quickly.