Introducing ddwChucklib-livecode

ddwChucklib-livecode is an idiosyncratic approach to live-coding notation, built in SuperCollider. It’s loosely inspired by ixi-lang, with a couple of distinctions: explicit division of bars into beats, and “generator” expressions embedded within the notation.

It interfaces with my chucklib object framework for composition, which automates resource management for musical processes. Several live-coding frameworks here play SuperCollider SynthDefs. The concept of a musical process goes further, encompassing not only a SynthDef, but also the mixing framework (MixerChannels, or explicit groups and buses if you choose), auxiliary resources (buffers and other data structures), and any calculations that are needed to pull it all together. The idea is, in performance, you shouldn’t have to load buffers, make buses for mixing etc., all separately — you should just “make” an instance of a process definition, and it builds the structure for you.

ddwChucklib-livecode (“cll”) gives you a chucklib-style process template that accepts pattern data from compact live-coding strings. See the video examples from v0.1 below (I’m up to v0.3 now, where generators are much improved — I’ve used the newer version for a couple of performances, but I don’t have video currently). It’s released as a Quark, which you can install in SC by Quarks.install(“ddwChucklib-livecode”) (provided git is set up).

The “compiler” is all written in SuperCollider itself, using the SC interpreter’s preprocessor hook to translate cll statements into SC code!

I have a draft of an overview paper — if you’d like to read it and offer some feedback, contact me privately.


James (Harkins — SC user and dev since late 2002)

Leave a Reply

Your email address will not be published. Required fields are marked *

Translate »