home/ modules/ supercollider-jitlib-live-coding

SuperCollider: JITLib live coding

  • 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

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.

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

JITLib treats a running SuperCollider program as an ongoing construction rather than a compile-then-run tool
Concept L3 Craft F
NodeProxy and Ndef are SuperCollider's server-side placeholders whose synthesis source can be swapped while playing
Concept L3 Craft F
JITLib can crossfade a proxy's source when it is redefined instead of cutting abruptly
Concept L3 Craft F
ProxySpace turns the SuperCollider environment into a namespace of live-redefinable audio proxies
Concept L3 Craft F
Pdef and Tdef are SuperCollider's client-side proxies for live-replacing running patterns and scheduled tasks
Concept L3 Craft F
ProxySpace NodeProxies let you rewrite a running synthesis graph mid-performance with an automatic crossfade
Concept L3 Craft FN
NodeProxy.map connects a running control proxy to a synth argument without stopping synthesis
Concept L3 Craft F
Each NodeProxy can act as a module patched into others at audio (.ar) or control (.kr) rate
Concept L4 Performance FNE
A SuperCollider performance piece uses ServerBoot/Tree, Pdefs, and Groups to create a hot-swappable live structure
Principle L4 Performance F
A live-coding setup file pre-loads server memory, sample dictionaries, SynthDefs, a clock and a safety limiter before the set
Procedure L3 Craft FN
ServerBoot and ServerTree callbacks ensure SynthDefs and resources load in the correct order after server boot
Concept L3 Craft F
A live-coding SynthDef names its frequency arg 'freq', exposes an 'out' arg, and self-frees via doneAction
Procedure L3 Craft FN

Supporting — enrichment, not gating

A JITLib proxy is a placeholder defined by its valid sources, its contexts of use, and a default source
Concept L3 Craft F
JITLib NodeProxies can run on remote servers for collaborative live coding over a network
Concept L4 Performance F
A SuperCollider startup file auto-loads SynthDefs and buffers on server boot for live-coding readiness
Procedure L4 Performance F
Live coding intervenes in an ongoing process by modifying its laws (the program text), not its immediate state
Principle L3 Craft FO
SC Groups organize synth nodes into named sections that can be targeted for routing and order-of-execution control
Concept L3 Craft FN
Driving percussion above 0 dB into StageLimiter compresses the whole mix on each hit for a sidechain-style pump
Procedure L3 Craft FN
SuperCollider's functionality is extended via Quarks (language packages) and UGen plugins (server extensions)
Concept L3 Craft FN
Quarks extend SC's language with community-contributed classes; UGen plugins extend the audio server with new signal processors
Fact L3 Craft FN
SuperCollider classes encapsulate reusable synthesis behaviour and extend the language
Procedure L4 Performance F
SuperCollider allows adding new methods to existing classes via extension files placed in the Extensions folder
Concept L3 Craft F
SCTweets are complete SuperCollider pieces in 140 characters that exploit syntax shortcuts for extreme concision
Concept L4 Performance F
Building constrained sub-languages inside SuperCollider creates composition environments with intentional expressive limits
Concept L4 Performance F