In live coding, programs are instruments that can change themselves — making the code itself a dynamic, performable medium
The TOPLAP manifesto declares: ‘Programs are instruments that can change themselves.’ This is a defining characteristic of live coding that separates it from pre-composed electronic music: the program executing in real time can be rewritten, extended, or redirected by the performer during the performance. The code is not a fixed score but a living artifact. This ‘self-change’ capacity is why live coding systems (TidalCycles, SuperCollider/JITLib, Hydra) implement hot-reloading — evaluating new code without stopping playback — making the act of modification itself part of the performance.
Examples
In TidalCycles, evaluating a new pattern replaces the running pattern on the next cycle boundary. In SuperCollider/JITLib, a NodeProxy can be redefined while sound continues. In Hydra, running a new line of code immediately changes the visual. In all cases, the program changes itself in response to the coder’s actions.
Assessment
Contrast a live coder who modifies their program in real time with a musician playing from a fixed score. What does ‘the program changing itself’ add to the performance that a fixed score cannot? Then identify which design features of TidalCycles implement this capacity.