L5 · Voice
A personal style; releasing, scenes, community, sustaining a practice.
136 atoms · grouped by primary domain
A · Music theory & musicianship — 3
B · Sound design & synthesis — 1
C · Sampling, field recording & sample culture — 5
Early internet utopianism about decentralization faces structural pressure toward privatization — a cycle visible across every new communication medium
Field recordings function as time-and-location documents that reveal environmental change over decades
Pervasively broadcast pop music functions as de-facto public property even when legally restricted
Scratch and dub emerged as folk music practices from communities with limited resources
Users appropriate audio technologies in ways manufacturers never intended — actual use diverges from promoted use
E · Modular, Eurorack, grooveboxes & dawless — 1
F · Live coding: music — 63
A ChucK ADSR envelope or STK instrument stays silent until its gate is opened with keyOn/noteOn
A ChucK voice that never reaches dac produces silence with no error
A ChucK while-loop without a time-advance silently hangs the VM at 100% CPU with no audio
A failed Strudel evaluate leaves the previously running pattern playing rather than stopping audio
A Glicol file with no out: line produces silence with no error message
A Glicol node name not in the reference is a parse error that leaves the graph unswapped
A large mul or an unattenuated feedback bus in Glicol clips loudly with no error
A minimal ChucK panic patch uses SinOsc-to-dac with a timed while-loop and no sample files
A minimal groove using only bundled synths and samples with a sleep in every loop is the safe Sonic Pi recovery
A Sonic Pi live_loop automatically cues its own name each cycle, making sync :loop_name safe without explicit cue calls
A Sonic Pi sync on a non-existent cue tag blocks the loop forever without throwing any error
A Sonic Pi syntax error aborts the run but all currently running live_loops keep playing
A SuperCollider \degree pattern with no \scale defaults to C major and plays wrong pitches without error
A SuperCollider autonomous panic recovery is s.freeAll followed by a single inline graph needing no SynthDef, sample, pattern, or scale
A SuperCollider synth without doneAction:2 leaks nodes silently until CPU overload crackles
A SuperCollider SynthDef must be re-added after every edit or Synth plays the old cached graph
A SuperCollider UGen name that is miscased or not installed posts 'not understood' rather than playing
Adding .analyze('hydra') to a Strudel voice feeds it to the a.fft array that Hydra's audio-reactive mapping reads
An unknown sample name in Tidal produces no GHCi error but silences that voice via a SuperCollider post warning
An unknown Sonic Pi synth, sample, or fx name usually errors, though a bad sample name can just fall silent
An unknown Strudel sample name produces silence with no exception rather than an error
ChucK compile errors block shred addition while runtime errors remove only the offending shred
ChucK has no default master limiter, so many voices summed to dac clip unless gain is kept low
ChucK has no native scale, chord, or euclidean primitive; these must be hand-rolled from arrays and Std.mtof
ChucK sporked child shreds are killed the moment their parent shred exits
ChucK UGen names are exact CamelCase and must be verified against the rig's ugens list
Defining two Sonic Pi live_loops with the same name does not create two voices — the second silently replaces the first
Each independent Strudel voice in a multi-pattern session must be on its own $: prefixed line
Estuary's ExoLang interface lets external JavaScript live-coding languages be loaded at runtime
Estuary's visual theme is controlled by a CSS file defining four core colour variables
Every >> in Glicol must sit between two nodes; a trailing or orphaned >> is a syntax error
Every Sonic Pi live_loop body must call sleep or sync or it stops with a runtime error
Glicol has no native scale or chord primitive; pitches must be hand-listed as frequencies or seq integers
Glicol keeps the last valid graph playing when a save introduces a parse error
Glicol requires exactly one named chain per line; multiple chains on one line cause a parse error
Glicol's sp sample set is separate from Strudel's dirt-samples and requires its own samples folder
hush() immediately silences every Strudel voice — it is the first step of autonomous recovery from a broken mix
Integer division in ChucK silently truncates: 1/2 evaluates to 0, not 0.5
Live coding performances arc from empty to complex and back to silence, suggesting cyclic rather than linear revision control
Mixing audio-rate and control-rate UGens in SuperCollider fails the SynthDef build with a 'not audio rate' post message
Playing a SuperCollider synth before s.boot produces silence and a 'Server not running' post message
Referencing a Glicol bus before it is defined on its own line causes an unresolved-reference error
Slub's practice establishes that source code can be simultaneously the score, the instrument, and the performance
Sonic Pi control on a synth node requires capturing its handle and setting *_slide before calling control
Sonic Pi has no clip protection — high echo/reverb feedback or stacked loud amp: causes distortion with no error
Sonic Pi sleep arguments are in beats, not seconds — use use_bpm to set the tempo that determines their duration
Stacked loud Strudel voices or high delay feedback cause clipping — lower .gain toward 0.6-0.8 and reduce feedback
Strudel audio requires a user gesture to unlock the AudioContext — code cannot force it
Strudel method parameters accept patterns and signals, not JavaScript arrow functions — use sine/saw/rand for movement
Strudel's setcpm takes cycles per minute, not BPM — use setcpm(bpm/4) for 4-beat cycles
SuperCollider errors surface in the post window while the booted server keeps playing the last good nodes
SuperCollider gain and feedback runaway throws no error — only rising volume, clipping, or DC blowup signals it
SuperCollider JITLib's Ndef replaces a running graph on re-eval while ProxySpace requires push before tilde-name access
SuperCollider Pseq without 'inf' repeats plays once then stops silently
The Glicol panic patch is a single out: line with an oscillator, LPF, and no sample references
Tidal parse and type errors appear in GHCi while sound problems appear in the SuperCollider post window
Tidal uses prefix functions rather than method-chaining, so Strudel-isms cause GHCi scope or parse errors
Tidal's # operator applies a named control to a pattern; its right side must be a control name, not a bare string
Tidal's hush command silences all channels immediately and is the primary panic-stop for gain runaway
Unbalanced brackets in Tidal mini-notation produce a GHCi parse error, leaving the old pattern playing
Unbalanced mini-notation brackets in Strudel throw a parse error that shows in #err while keeping the old pattern playing
Weaving and live coding share deep structural analogies — computational bit operations are recognizable in loom operations, and handweaving embodies forms of tacit knowledge relevant to live coding
When Tidal cannot run in a rig, the operative recovery is to emit equivalent Strudel code that produces sound immediately
G · Shaders & GPU programming — 9
A GLSL shader that compiles but outputs values outside 0..1 or produces NaN renders black or blown-out
Debug a GLSL compile error by reading its line number, then bisecting back to a known-good body
Every GLSL fragment shader must define void main() and assign gl_FragColor at least once
GLSL requires explicit float literals and exact vector sizes; int/float mixing is a compile error
GLSL uniforms must be declared before use; only glslViewer-provided names are available without declaration
glslViewer keeps the last successfully-compiled shader on screen when a save fails to compile
Shadertoy shaders use different uniform names from glslViewer and will not run as-is
The canonical GLSL panic shader is the hello.frag cosine palette driven by u_time with a clamped output
The terminal-rig glslViewer has no audio-reactivity bridge; use u_time for motion instead
H · Creative coding & live-coded visuals — 28
A bounded self-analysing drone with non-zero-base colour and a short crossfade is the safe Punctual recovery program
A failed P5LIVE compile leaves the last good frame visible rather than blanking the canvas
A Hydra chain rendered to o1..o3 stays invisible unless that buffer is selected with render()
A minimal cleared-and-isolated setup()/draw() skeleton is the safe P5LIVE recovery sketch because it avoids every common failure at once
A P5LIVE edit that won't take effect is usually a recompile-scope issue — class-method or global-state edits do not hot-swap live instances
A Punctual parse or compile error leaves the previous working program running rather than tearing it down
An unbounded loop or heavy per-frame work freezes the P5LIVE tab because p5 runs single-threaded on the main thread
Array arguments in Hydra step at the global bpm rather than animating smoothly
background() must be the first call in p5.js draw() to clear each frame; placing it after shapes wipes them
Every Hydra chain must end with .out() or .out(oN) to be visible on the canvas
Hydra errors either throw to the #err element or silently render a black/frozen/blown-out canvas
Hydra feedback with too much gain causes whiteout; add decay terms or reduce feedback amount
Hydra reactive values must be wrapped in () => thunks; bare expressions are evaluated once at boot
Hydra's audio FFT array has exactly 4 bands (indices 0..3); reading index 4 or higher produces NaN
Many p5.js bugs produce no exception and manifest only as wrong canvas output
Most Punctual bugs produce no error — a wrong-domain function silently returns 0 and missing >> yields no output
p5.js claims the name noise() so Hydra's noise function must be called noize() inside P5LIVE
P5LIVE has three distinct audio reactivity sources and no automatic 4-bin a.fft rig bridge
Punctual 0.5 removed the 0.4 output operators >> video, >> hsv, >> red, and >> left; old code silently fails or parse-errors
Punctual changes take effect at the next cycle boundary by default — use <> 0 for near-immediate switching
Punctual has no coherent noise, voronoi, kaleidoscope, or pointer primitive — these must be faked with available functions
Punctual uses three distinct arrows: << (define), >> (output), and <> (crossfade) — mixing them causes errors or wrong behavior
Punctual's lo/mid/hi analyse the program's own audio output — they are zero if no audio statement is running
Square brackets in Punctual create combinatorial expansion — use curly braces or colon-ops for pairwise behavior
Strudel voices must call .analyze('hydra') for audio data to reach Hydra's a.fft array
The Hydra panic default is a bounded, reactive osc sketch with non-zero base terms and clamped FFT reads
Transforms in p5.js draw() must be enclosed in push()/pop() or they accumulate across every frame
WEBGL mode in p5.js centers the origin and requires texture() for color, silently breaking 2D assumptions
M · Performance, DJing, live-set & stagecraft — 3
Fully improvised live techno requires approaching the stage with no prepared ideas — the music arises entirely from the performance moment
Long cycles of undirected studio exploration — not finishing tracks — build the palette that powers a live set
The DJ has shifted from impassive shaman serving the crowd to performative showman flaunting personal pleasure
N · Tools & free/open software stack — 1
O · Culture, history & theory — 16
Actor-Network Theory reveals live coding as a network of human and nonhuman actors (code, hardware, venues, communities) whose associations constitute the scene
Algorhythms are the microrhythmical structures underlying digital computation — making inaudible electromagnetic signals audible as political-aesthetic act
Algorithmic music can function as tactical media: temporary critical interventions in dominant technological and social systems
An instrument maker's role is to serve creative wishes, not to demand artists learn novel playing methods for novelty's sake
Dance-centered genres carry a special obligation to tour, since the recording alone can't convey the live experience
Electronic music genres have unrooted from their origin locations as global platforms make geography irrelevant to style
Fear of algorithms comes from opacity; making processes visible turns algorave into algorithmic literacy
Industrial music's own trajectory illustrates the recuperation dynamic it theorised — a self-referential case study
Live coding's indifference to song structure and recording aligns it with a punk, process-centred ethos
Making algorithmic music is following the material (code as medium) rather than imposing form — discovering music that could not be imagined before hearing it
Music that resists categorisation — neither house nor techno but something in between — can communicate ideas that binary language cannot
Rapid foot-centered dance predates footwork and recurs across tap, Brazilian, Portuguese, and South African traditions
Rinse FM's 25-year journey from illegal rooftop transmitter to licensed radio station shows how underground media infrastructure can gain formal legitimacy
RP Boo views footwork's spread into other genres as growth that sparks change without diluting the Chicago source
Social media collapses dance music chronology into a permanent plateau of equal relevance
Treating music-making as personal meditation produces a consistent artistic identity distinct from market-driven production
P · Community, scenes & practice — 6
A guiding principle must be specific enough to divide the world into right and wrong actions, not merely directional
A long unrecognized development period is normal — RP Boo made footwork for ~21 years before sustained touring
Algorave's free tools and low entry barrier enact access politics, in tension with sustaining unpaid developers
Free/open-source live-coding tools are an ethical stance about craft and collective ownership, not just a pragmatic choice
Sharing digital work grows its value rather than depleting it, unlike scarcity economics
Three career paths diverge: craftsman (mastery), problem-solver (research/entrepreneurship), and principle-fighter