SuperCollider: JITLib live coding
Learning objectives
- learner can swap a running synthesis source live with NodeProxy/Ndef and crossfade
- learner can treat ProxySpace as a namespace of redefinable audio proxies patched together
- learner can structure a hot-swappable SuperCollider performance
Capstone — one whole task that evidences the objectives
Deliver a SuperCollider live-coding performance built on ProxySpace: define several NodeProxies (audio and control), patch them modularly, crossfade-redefine their sources mid-performance, and drive running patterns with Pdef/Tdef from a prepared setup file.
Prerequisite modules
This module builds toward the defining act of SuperCollider performance practice: an algorave-style live-coded set where the code editor is the instrument and the audience hears every decision. Unlike studio work, nothing can stop — a click, a dropped node, or a server error is a public failure. Everything here serves one whole task: keeping sound running continuously while its generating program is rewritten underneath it.
The arc starts supported. First internalize the paradigm shift — a running program as ongoing construction, not compile-then-run — then practice the core move in isolation: give an Ndef a new source and hear the crossfade replace the old one gaplessly (“NodeProxy and Ndef are SuperCollider’s server-side placeholders whose synthesis source can be swapped while playing” and the crossfade-redefinition atom are the JIT references to keep open). Next, push a ProxySpace and grow a small modular patch: audio-rate proxies feeding filter and effect proxies, control-rate proxies mapped onto their arguments with .map/xmap, rewriting any stage while the rest keeps sounding. Then bring in the pattern layer — Pdef and Tdef as client-side proxies — so rhythmic and melodic processes become hot-swappable too. Finally, remove the scaffolding: build the setup file (buffers, SynthDefs, limiter, clock) with ServerBoot/ServerTree ordering, and perform.
The required atoms are exactly what the capstone cannot survive without: proxy redefinition, crossfading, ProxySpace patching, control mapping, pattern proxies, SynthDef conventions that keep long sets from choking the server, and the setup-file architecture that makes crash recovery possible. Supporting atoms widen the horizon — networked collaborative proxies, limiter-pumping as a creative effect, quarks, class extensions, and the philosophy of intervening in a process by changing its laws — enriching a set that already stands.
Runnable examples
Generated from the context/ instrument corpus by concept (redistributable idioms only). Do not edit — regenerate with gen-module-examples.mjs.
sidechain-pump
note("c2").s("sawtooth").duckorbit(1).duck("bd*4")
strudel-0017 · CC0
~duck: imp 4 >> envperc 0.001 0.15 >> mul -1.0 >> add 1.0
out: saw 110 >> lpf 600 1.0 >> mul ~duck >> mul 0.3
glicol-0029 · MIT
Atoms in this module
Required — these gate the capstone
Supporting — enrichment, not gating
Part of curricula
- Live Coder — zero to performing live-coded music — Performing Live required
Unlocks — modules that require this one