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:

Dionysis

5 Likes

Hi,
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 = Buffer.read(Server.default, 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.