Procedure
A repeatable how-to: the ordered steps to produce a result.
753 atoms · grouped by primary domain
A · Music theory & musicianship — 53
A 3- or 5-step hat loop against a 16-step pattern creates an evolving polyrhythmic feel
A catalog of attributes lets you take inspiration from music without copying it
A custom DAW template eliminates friction between inspiration and capture
A distorted found-sound noise stab on off-kick positions gives a dark techno beat its industrial character
A drum pattern sets the groove by placing kick, snare, and hi-hat on specific beats in a bar
A filtered arpeggio fills frequency space behind the lead without competing with it
A Hardstyle buildup has three phases: tease, melody preview, and tension-building filter sweep into the drop
A heavily compressed open hi-hat on the off-beat drives the forward motion of a four-to-floor techno groove
A single-note, heavily-effected synth in the upper register raises energy without competing with the melodic content
A Synthwave bassline is built by following the root note of each chord
A trap hi-hat roll is 32nd notes whose velocities are sculpted into accents to make a stuttering texture
A tuned kick layer with automated pitch can act as melodic percussion, not just a beat
Active listening — focusing on one parameter at a time — extracts usable technique from music
Alternating higher- and lower-pitched kick drums across a pattern is a hallmark minimal-techno groove technique
An avoidance list forces new creative territory by pre-committing to not use familiar techniques
Chaining single-change mutations creates descendants that diverge progressively from an ancestor idea
Creating many one-change variants of a seed idea generates a sibling pool of musically related material
DAWs apply swing as extractable groove templates dialed in per clip
Detroit techno kicks are saturated then compressed for punch and edge without heavy distortion
Dropping the bass one bar before a structural change signals the transition and eases the landing
Drum sample choice should match the genre before any programming begins
Extracting a formal skeleton from an admired track provides an arrangement blueprint that avoids direct copying
Filling the entire arrangement with material first, then subtracting, avoids the blank-canvas problem
Finishing a track means arranging its looping parts into sections and bouncing the multitrack down to a two-track mix
Grime's disjointed feel comes from displacing the second snare in a two-step pattern rather than adding layers
Humanizing MIDI drums means subtle off-grid timing and narrow velocity variation — controlled imperfection, not randomness
Interval names (second through octave) count scale steps inclusively from the lower to upper note
Layering multiple drum sounds triggered simultaneously creates fuller, richer textures than any single sample
Layering two closed hats with contrasting envelopes builds depth without velocity programming
Melodic dictation combines key-context listening with sequencing: the listener transcribes a short melody as scale degrees
Mimicking the TR-909 accent means boosting velocity on all elements landing on accent beats
Motif development turns one short idea into a whole track's melody via transpose, invert, retrograde, augment, and fragment
Pairing a four-to-floor kick with a filtered low tom on off positions gives techno a sub-heavy bouncy groove
Partial quantization, selective instrument quantization, and manual velocity editing create human feel in programmed drums
Pitching a sampled 909 snare down a couple of semitones gives a darker, grainier texture
Placing clap and snare together on beats 2 and 4 sets the backbeat of an electro drum pattern
Placing hi-hats 'late'/humanized between kick and snare is the defining swing move in future garage
Placing individual hits off the grid by hand creates groove that uniform swing quantize cannot
Pressure-sensitive note repeat encodes velocity into repeated notes via finger pressure
Quintuplet, sextuplet, and septuplet grids place hits between 16th notes without manual millisecond nudging
Recomposition discards most of an existing work then phases and loops the retained fragments into a new piece
Repeating a progressively shorter sub-loop of closing material creates a sense of acceleration that drives a track to a convincing end
Reusing drum pattern MIDI as pitched material and vice versa creates rhythmically related harmonic and melodic parts
Rhythmic dictation transcribes a heard rhythm into standard notation
Sensory dissonance analysis can help reconstruct the tuning a historical composer likely used
Staggering clip boundaries across tracks softens section transitions and avoids abrupt formal cuts
Starting an arrangement from a maximally dense section and subtracting layers is faster and more musical than building left to right
The classic UK Garage 4x4 kick places on the first downbeat and the offbeat of beat 3, with a double-hit at bar 2 and raised velocity on bar-1 hits
Timeboxing breaks procrastination by making creative work feel manageable and stopping while it is still good
Transposition, inversion, retrograde, and pitch rotation are rule-based transformations that generate new patterns from existing material
Using two rim shot samples at different velocities instead of a snare/clap creates a lighter UKG feel with a call-and-response dynamic between two drum voices
Varying the k parameter of a euclidean rhythm live smoothly morphs the groove without changing the step count
With a zero-release sampler, hi-hat note length becomes a groove control
B · Sound design & synthesis — 109
A basic house track is built by starting from a strong kick and bassline and layering percussion on top
A drum voice sets its oscillator to a fixed Hz rather than tracking MIDI pitch
A dub techno kick is a 909-style sample with the filter lowered and release shortened to take its aggression off
A flanger adds phasing movement to a Reese bass, reinforcing its sweeping, comb-filtered character
A Grain Delay pitched down an octave turns a chord's delays into the track's sub bass
A hi-hat is synthesized as white noise passed through a high-pass filter with a fast decay envelope
A high-frequency ping-pong delay kept near-silent can be lifted in as a shimmering textural build
A low-pass filter at mid cutoff with minimal resonance murks a bright oscillator into a low-end bass
A modular kick drum is synthesized by modulating a sine wave's pitch downward with a fast envelope
A percussive noise stab is made from a noise source through a fully open filter with a fast envelope
A pure sine wave plus EQ and light reverb is sufficient to build a controlled sub-bass patch
A Reese bass is a detuned, filtered bass whose beating oscillators give warm, moving low-end
A second carrier oscillator sharing the same modulator adds a formant region at any spectral position
A sub oscillator one or two octaves below the main oscillator adds low-end weight without audibly changing the main timbre
A supersaw lead is built from two detuned saw-wave oscillators with many voices and a subtle LFO pitch modulation
A synthesized snare combines a pitched sine transient with white noise through a fast filter envelope
A tempo-synced square-wave LFO on pitch produces a rhythmic octave-jumping lead
Adding a reversed, stereo-widened tail to a Hardstyle kick creates the genre's characteristic 'swelling' sustain layer
Adding a short pitch drop at note attack gives a bass synth a transient-like percussive punch
Adding a small constant to the FM modulating frequency creates a beat or tremulant effect
Adding pitch envelope or LFO modulation removes the robotic quality from synthesised grime hooks
Additive synthesis reconstructs sounds by summing sine wave partials; resynthesis verifies the accuracy of spectral analysis
Ambisonic A-format (tetrahedral microphone raw output) is converted to B-format via a matrix transcoder with correct orientation
An arpeggio is the foundational melodic element in trance that anchors pads and leads
Applying a per-oscillator LPF or HPF warp lets two oscillators share frequency space without clashing
Applying an aggressive LFO to a sampled instrument creates the grime eskibeat blinking sound
Atmospheric pads and samples layered over the drums and bass set a DnB track's 'light' or 'dark' mood
Automating master tempo in a DAW removes the fixed rhythmic grid, creating felt compression and expansion rather than locked-in groove
Backing off a sampler's amp-envelope attack removes a drum sample's transient, turning it into a tonal element
Changing filter envelope slope shape (convex vs concave) via modulation matrix produces distinct filter sweep characters
Cloning one particle into a repeated stream builds a pitched tone from a single grain
Coloured noise is made by scaling each DFT bin of white noise by 1/f^B before inverse-transforming
Combine distortion, amp simulation, and saturation for dub 'colour' — but don't overcook, since mastering boosts it further
Coupling pitch bend and modulation wheels lets FM performers bend pitch while simultaneously darkening timbre
Defining two index breakpoints (I1, I2) and an envelope shape controls the full spectral trajectory of an FM note
Delay and comb UGens allocate memory dynamically; increase s.options.memSize to avoid allocation failures
Designing a scale for an inharmonic instrument requires FFT analysis followed by computing dissonance curve minima
Distortion plus a high-feedback delay turns a dry vocal chant into an EBM industrial texture
Driving gain into a saturator and lowering its ceiling clips the waveform peaks into distortion
Dub techno sub bass is made from the kick sample by cutting its transient and keeping only the subby tail
Dub techno's live feel comes from slowly automating filter, delay feedback, and reverb decay across the section
Dubstep wobble bass is produced by an LFO modulating a synth's volume, filter cutoff, or distortion
Each polyphonic grain in Max/MSP needs a unique instance ID to avoid shared-state collisions
Env.new specifies an envelope as arrays of levels, times, and per-segment curvatures
Feeding an FM operator back into itself converts it from a default low-passed wave to a true sawtooth
Filtering a looped disco sample with a sweeping resonant filter is the core French house production move
Filtering an LFO with a lowpass filter smooths abrupt transitions and removes click artifacts
FM brass timbres use c/m = 1/1 with index tracking amplitude, capturing the loudness-to-brightness coupling of brass instruments
FM percussive sounds use inharmonic c/m ratios with index decaying from dense to sparse spectrum
FM woodwind timbres use a higher carrier harmonic and inverse index-amplitude coupling, causing higher harmonics to lead the attack
FoaPanB encodes a mono signal to FOA B-format with a dynamically modulatable azimuth and elevation
Gated reverb cuts the snare reverb tail abruptly for the signature 80s drum sound
Grain start position and duration together determine which region of a sample buffer each grain plays back
Granular studio composition generates clouds with a synthesis tool then arranges them on a DAW timeline
Granulating a sound file by manipulating the read pointer transforms the identity of the original source
Granulation enables independent control of pitch and duration
Granulation segments an existing sound into grains and reassembles them in new time order
Grime basslines use pulse waves through low-pass filter envelopes to produce a round, punchy sub sound
Grouping harmonically related partials under a single envelope reduces the parameter count in additive synthesis
Guitar feedback can be simulated by feeding Karplus-Strong output through a nonlinear shaper back into the delay line
High-pass filtering below ~40 Hz removes inaudible subsonic content that makes bass sound flabby
Higher-order granulation re-granulates already-granulated sound to spawn new mesostructures
House drum tracks layer a sampled loop with individual synthesized drum hits to combine groove and punch
In trance, the bass is sidechained to the kick so both stay punchy without low-end mud
Inverting the sign of a waveguide's reflected wave drops the pitch an octave and cancels DC buildup
Layering a clicky hi-hat sample under a rounded kick adds the high-frequency presence the kick lacks
Layering a snare on every kick hit fills the frequency spectrum and adds attack to the kick
Layering a sub-bass 'rumble' sample beneath each kick deepens techno low end without a separate bassline
Leaving 2–3 dB of headroom or using true-peak metering prevents inter-sample overs in distribution
Live granulation requires recording to a looping buffer first, then running GrainBuf on the buffer with a trailing pointer
Microfiltration applies a unique filter to each grain for spectrally animated textures
Modulating partial frequencies and amplitudes with noise spreads each sine into a band, letting additive synthesis approximate noisy timbres
Pitching vocal samples upward without time-stretching creates grime's chipmunk vocal effect
Randomising grain parameters between bounded min and max values produces animated granular textures
Recording vinyl at 45 rpm into the SP-1200 and pitching down creates characteristic lo-fi grit that defines filter house texture
Resynthesis analyses a real instrument recording into partial tracks and uses those measurements to set additive synthesis parameters
Routing a sine wave through a bitcrusher at 8-bit depth creates grime's characteristic lo-fi buzzy bass
Routing an envelope to filter cutoff is the core articulation move of subtractive synthesis
Running a complex oscillator into a VCA produces abstract metallic hat sounds beyond noise-source patches
Setting an arpeggiator's gate low turns held notes into a short-gated step-sequenced bassline
Shelving EQ after FM distortion restores high-end lost from the tube amp and overdrive
Short decay/release and low sustain on a percussion sample give the abrupt 'clipped' snap of grime beats
Sidechaining the reverb send to the lead ducks the reverb during melody notes, keeping clarity while preserving space in pauses
Signal.sineFill creates additive synthesis wavetables by specifying partials as an amplitude array
Spectral mapping transforms the partials of one sound to a target spectrum while preserving the overall tonal character
Splitting one bass MIDI into high, mid, and sub layers produces a fuller, more controllable low end
Subtle automation or randomisation of envelope and pitch parameters emulates the organic variability of live instruments
Subtle tube simulation or overdrive warms a bassline, but too much distortion undoes it
Summing N oscillators multiplies amplitude by N; dividing by N after summing prevents clipping
SuperCollider IDE workflow requires Shift-Cmd-B to select a code block and Shift-Enter to evaluate it
SuperCollider's SynthDef and Pbind together create a patterned synthesizer: SynthDef defines the voice, Pbind sequences it
Surge XT routes modulation by selecting a source, engaging routing mode, then dragging a blue depth slider
Techno composition is loop-based: overdub successive layers over a repeating sequence, then shape structure by adding and removing elements
The ATK workflow is encode → transform → decode, each stage operating on B-format
The classic Hardstyle kick is built by applying successive EQ and distortion stages to a 909 sample to generate harmonic resonance
The DFT computes each frequency bin by accumulating every input sample times a rotating phasor
The dub techno chord is a one-note trigger expanded to a minor triad over detuned oscillators, filtered low with a tight envelope
The grime eskibeat bass is built from a pulse oscillator, slow amp envelope, mono glide, low-pass filter, and unison detune
The phase vocoder enables independent time-stretching and pitch-shifting by operating on FFT analysis frames
The recommended path into SuperCollider + synthesis is: SC environment tutorial → synthesis cookbook → custom projects
The TB-303 acid sound comes from high resonance, low cutoff, and accent/slide/octave programming
The TR-808 programs beats by selecting a drum voice then toggling 16 step buttons to place hits
The wavetable synthesis signal flow is: index increment → running index → fmod wrap → lookup → amplitude envelope → output
Trance pads are built from detuned supersaw oscillators with 7–9 voices that filter-sweep open before drops
Transposing oscillators by musical intervals (fifths, thirds, sevenths) builds chords within a single patch
UGen .range and .exprange map a -1 to 1 signal to a custom output range (linear or exponential)
Using .plot() before .play() lets you see a waveform before committing to audio output
Using a non-sinusoidal waveform for the highest partial fills in upper harmonics when oscillator count is limited
White noise through a modulated bandpass filter is the practical modular hat synthesis patch
C · Sampling, field recording & sample culture — 26
Ableton's Slice to New MIDI Track converts a break into a drum rack of individually triggerable slices
Big beat's production formula was: breakbeat + funk samples + vocal snippet + synth line + rocker aggression
Chop a loop and map its slices across the keyboard to re-trigger it in a lopsided grime rhythm
Chopping a vocal into sampler pads and shortening release turns it into a percussive element
DAW groove extraction captures a live break's exact timing and velocity offsets and transfers them to a MIDI clip
Detuning and saturating a sampler kick helps it blend with a sampled breakbeat
DnB producers switch between two different breaks each bar to create rhythmic variety and tension
Duplicating a snare slice and tuning each copy up produces the classic drum-and-bass ascending pitch fill
Effective sound library metadata uses four description layers: macro event, meso components, micro timbre, and technical capture info
Freesound attribution must name the sound, the author, the URL, and the license
Grime producers recycle riffs from old speed garage, DnB, and hardcore vinyl as raw sound design material
Jam sync timecode locks location audio to camera via a brief cable handshake and periodic re-checks
Lavalier microphones enable recordings from inside cavities and at extreme environmental conditions
Long cable runs separate the recordist from the microphone, reducing mechanical noise and human disturbance
Masking human scent on microphone windshields lets you place mics near scent-sensitive animals without disturbing them
Micro-looping tiny windows inside a longer sample disguises the source and creates glitch texture
On Maschine, tempo-matching must be done before chopping because its Sampler cannot warp in real time
Physically treating CDs with scissors and knives generates controlled digital errors as composition
Rolling off the lows and highs of a percussion loop lets it sit in a dense breakbeat mix
Running digital recordings through analogue preamps adds a distinctive tonal character
Running redundant microphone paths protects against single-point failure in inaccessible recording locations
Sample chopping turns a recorded phrase into triggered slices that are re-sequenced into something new
Sampled breaks are made musical by pitching/time-stretching and re-ordering their component hits
Slowing the master tape before recording vocals raises their pitch on playback — the trick behind Newcleus's cartoon voices
Speeding up a loop to resample it then returning to the original tempo adds authentic grit
The Akai MPC can mark slice points live while a sample is still recording
D · Mixing, mastering & loudness — 97
A -7 dB cut at 600 Hz with a wide Q creates the hollow mid-scooped character of dub techno chords
A de-esser is a frequency-selective compressor that attenuates only sibilant frequencies
A mastering session begins with a pre-flight checklist before any processing
A polarity-inverted parallel gate channel can implement sidechain ducking without a dedicated ducker plugin
A Schroeder reverberator builds artificial reverb from parallel comb filters and series allpass filters, with mutually-prime delay times
A shared reverb across the drum bus places every hit in one acoustic space, gluing separate samples into one kit
A single master session may need to deliver multiple format variants for different distribution contexts
A slow-attack field-recording layer swells behind the kick to add breathy organic texture without a transient
A spectrum analyzer supplements limited low-frequency monitoring by visualizing octave balance at the bottom end
A standardized, color-coded session layout frees attention for mix decisions
A triggered drum sample must be timing- and phase-aligned to the original by hand, or it cancels instead of reinforcing
A/B a compressor with makeup gain matched to the bypass level to hear compression without loudness bias
A/B-ing a loudness-maximized master against the original source at matched level reveals the depth that maximization destroys
Adding a tiny manual track delay to one layer of a layered clap creates a looseness without full humanization
After EQing a new track, check it has not masked more important earlier parts
Alternate mixes and stems give producers and labels options without requiring a full recall
An analyzer plots a track's averaged EQ curve so you can compare tonal balance visually
An EQ→saturate→EQ chain on a kick adds harmonic character while controlling the resulting aggression and transients
Automate processing parameters, not just faders, as arrangement sections change
Automating or modulating a filter on a delay return channel adds evolving movement to the wet signal
Bass instruments usually need added top end to cut through and reach small speakers
Building a mix by adding tracks in descending order of importance reduces processing artifacts on the most critical sounds
Building the mix groove in frequency order from pulse to detail locks rhythm tightly before adding texture
Chaining compressors lets each stage handle a different dynamic task
Cheap mass-market grotbox speakers reveal how a mix translates to the worst-case playback scenario
Check a finished mix on as many playback systems as possible for translation
Checking a mix in mono reveals phase problems, hidden balances, and optimal panning positions
Combining one tempo-synced and one free-running delay tap creates polyrhythmic dub delay texture
Comparing a track's tonal-balance curve against genre references gives a direction, not a destination
Comping — selecting the best takes across multiple recordings — is standard practice for lead vocals
Confining serious low end to the fewest tracks keeps the bottom controllable
Correct broad tonal balance with shelving filters before reaching for peaking filters
Correct overall mix tone with broad master-buss EQ, keeping narrow moves on channels
Cross-check a mix on both headphones and speakers, trusting neither alone
Crossfading over a couple of waveform cycles hides edits in sustained pitched notes
Cutting a kick's low-mids removes boxiness and opens space for the bassline
Damp early reflection points, but never cover a whole room in foam
Deliver mixes to mastering with headroom rather than hot levels — you lose no quality with peaks around -10 dB
Detailed fader rides push weak syllables up to even out a vocal for intelligibility
Drum sound replacement doubles (not replaces) subpar drums with samples to improve consistency while preserving human feel
Dub techno percussion is pushed into dub territory with amp distortion, delay, and added noise
Dub techno snares double a clean snare with a bit-crushed clap layer for gritty lo-fi texture
Dub techno sub bass uses two pitch-tuned copies of one sub sample for a minimal two-note riff
Dub techno uses a four-to-the-floor kick with off-beat open hat as its rhythmic foundation
Dub techno's space comes from two shared sends: an overdriven reverb and a 100%-wet ping-pong echo
Editing non-overlapping repetitions of a single track to create a fake double-track adds width without phase cancellation
Engage an input pad when a source clips the preamp even at minimum gain
EQing a parallel dynamics return aims the processing at specific frequency regions
Fader automation adds mix dynamics by riding individual elements — what a live band does naturally must be recreated deliberately in the DAW
Flipping polarity or time-shifting one mic in a multimiked recording is a free tonal adjustment
Frequency juggling means giving each instrument its own predominant frequency range so nothing fights
High-pass filtering non-bass tracks removes low-frequency energy that only muddies the mix
High-passing a reverb's input keeps low frequencies out of the tail and prevents low-end mud
High-passing the reverb return clears low-frequency mud without losing the blend or spatial effect
Judging bass from several room positions averages out room-mode errors
Kick, snare, bass, and lead vocal go centre for mono survival and bass efficiency
Layering the same chord through a different delay time adds cross-rhythmic depth without harmonic conflict
Listening to a mix from outside the room exposes level imbalances
Loudness enhancement requires loudness-matched comparison to avoid bias toward the processed version
Loudness-matched A/B against commercial reference tracks is the primary tool for objective mix decisions
Masking is fixed in priority order: arrange apart in time first, then EQ carve, then pan, then change register
Mix against a reference track and check on multiple systems before release, because release is irreversible
MP3 encoding quality is maximized by starting from the highest-quality source and filtering the extreme top end
Multi-band tape saturation on the drum bus shapes frequency balance and adds perceived loudness
Parallel compression blends a heavily compressed copy under the dry signal to add sustain while preserving transients
Parallel distortion lets you shape and blend added harmonics independently of the dry signal
Pitch correction should fix obvious errors while preserving the micro-variations that make a voice sound human
Place a high-frequency shelf above the region already EQ'd to avoid pulling energy back down
Processing all drums together on a shared bus glues them into one cohesive instrument
Professionals hedge deliverables with recall notes and alternate versions
Rebalancing premixed loops/samples relies on editing, phase-cancellation and selective processing
Recording a part twice and panning the takes hard left/right widens it in stereo
Reliable stereo imaging requires the two speakers and the listener to form an equilateral triangle
Reverb belongs on a wet-only send-return with post-fader sends so one effect serves every track and the mix stays balanced
Running reverb on a parallel channel at 100% wet gives precise blend control
Set the kick as the loudest reference and build every level relative to it, leaving master headroom, before reaching for EQ/compression
Set up vocal compression by dialing threshold to even out words, starting near 4:1
Setting the loudest track to peak at -12 to -18 dBFS leaves the 20 dB of headroom needed for safe plug-in operation and mix bus summing
Short reverb or early-reflection ambience adds space while keeping a sound upfront
Sidechain EQ makes a compressor respond only to sibilant frequencies
Sidechain-ducking mid-range instruments under the vocal clears space when the vocal is present
Sidechaining synths to the kick and snare creates the pumping that lets drums cut through
Sidechaining the bass to the kick ducks the bass on each kick hit, carving low-end space the two would otherwise mask
Spotify's True Peak ceiling for masters is -1 dBTP, tightening to -2 dBTP for masters hotter than -14 LUFS
Subgrouping routes related tracks to a shared bus controlled by one fader
Swapping L/R channels reveals whether an instrument is truly centred in a stereo recording
Systematic pre-mix session preparation — cleaning, organizing, and routing tracks — prevents costly interruptions during the mix
Tempo-synced gain switching adds rhythmic emphasis a compressor cannot
The Abbey Road reverb EQ curve (roll off below 600 Hz and above 10 kHz) makes reverb blend smoothly without muddying the mix
The fader-at-unity method sets all faders to 0 dB first, then raises gain — prioritising visual clarity and fine fader control over preamp signal strength
The gain-first method sets gain with the fader down, then raises the fader — giving strong preamp signal but risking low fader position precision
Tighten timing to the groove of a chosen reference instrument, and don't neglect vocal timing
Timing correction should be referenced to the groove instrument and tightened track by track in order of rhythmic importance
Timing delays to the song's tempo makes them pulse with the music and become nearly imperceptible
Tuning a drum's reverb decay so its tail eases into the next kick gives a sparse pattern continuity and space
Tuning a sound system means jointly optimising acoustics, dynamics, crossover points and driver selection
Volume automation directs listener attention and polishes balance problems that static processing cannot solve
E · Modular, Eurorack, grooveboxes & dawless — 81
A basic hi-hat patch routes white noise through a highpass filter and a VCA controlled by a decay-only envelope
A CD4049 CMOS inverter wired as an analog amplifier sweeps from clean preamp to fuzz
A cheap AM radio and inductive coil can eavesdrop on hidden electromagnetic signals in everyday electronics
A cheap electret condenser element plus a bias resistor and blocking capacitor makes a studio-quality air microphone
A CMOS Schmitt Trigger inverter with one resistor and one capacitor makes a square-wave oscillator
A Euclidean sequencer with fewer hits than steps creates irregular, long-cycle rhythms well-suited to techno bass
A Eurorack ribbon cable must be connected with its coloured stripe on the correct (bottom) side
A good solder joint requires heating both surfaces to re-melt a pre-tinned layer of solder, not dropping molten solder onto cold metal
A hacked game controller provides a cheap USB interface for connecting custom sensors to music software
A Maths channel self-cycling at audio rate is an oscillator, and feeding another oscillator into its EOC output jack alters its tone differently than into Signal IN
A Maths ramp/saw LFO differs from the triangle only by setting RISE full counter-clockwise
A multi-output knob module used as a macro controller lets one gesture simultaneously animate multiple unrelated parameters
A no-input rig patches outputs back to inputs and is recorded live because settings are unrepeatable
A passive resistor mixer sums multiple audio signals without amplification and is inherently bidirectional
A photoresistor between audio signal and ground acts as a passive, optically controlled audio gate with no batteries needed
A Piezo driver and contact mic on a resonant object create a cheap plate reverb or sculptural signal processor
A salvaged tape head wired to an amplifier becomes a hand-played instrument reading any magnetic media
A sequencer controls an oscillator with two connections: pitch (V/Oct) and gate (trigger)
A short pitch-envelope sweep at note onset adds punch to a modular bass sound without a distortion stage
A solderless breadboard allows rapid, reversible circuit assembly for prototyping before committing to a soldered board
A techno rumble kick is the kick's own reverb tail filtered to sub-bass and re-shaped by an envelope
Adding a resistor between two circuit board points introduces controlled cross-connections that can produce musically useful malfunctions
Always disconnect a Eurorack case from mains power before opening it or moving any module
Circuit packaging choices trade off accessibility (cigar box, stealth) against durability (sandwich, traditional enclosure)
Delaying a clock trigger by an eighth note places an extra hat on the off-beat without a separate sequence
Dub techno chord voicing stacks fixed semitone offsets to build a minor chord from one incoming note
In VCV Rack you stack multiple cables on one output by Ctrl-dragging from that output
LFO modules used as audio-rate partial generators extend oscillator count cheaply at the cost of aliasing and limited harmonic control
Marbles learns a custom scale by sampling a played jam and counting how often each note occurs
Maths acts as a voltage-controlled slew/portamento processor with VariResponse-shaped curves
Maths adds a bipolar voltage offset to any signal by using CH.3 attenuvertor as an offset control
MATHS builds a full ADSR by chaining Channel 1 and Channel 4 with EOR as the link
Maths compares two signals and outputs a gate when one exceeds the other via SUM-based subtraction
Maths creates an Arcade Trill complex LFO by triggering CH.1 from CH.4 EOC and patching CH.4 output back to CH.1 Both IN
Maths delays a trigger or gate by a RISE-controlled duration, with FALL controlling the output pulse width
Maths detects and holds signal peaks by slewing at a slow symmetric rate and reading Signal OUT, with EOR firing a gate at each peak
Maths divides an incoming clock by a ratio set by the RISE parameter of a triggered channel
MATHS extracts a gate from a CV by comparing it to a threshold and firing an instant EOR pulse
Maths extracts an amplitude envelope from audio by using Signal IN with adjustable FALL ballistics
Maths generates a retriggerable AD envelope via Trigger IN with VariResponse shaping the curve
Maths generates a voltage-controlled clock by taking EOC or EOR from a self-cycling channel
MATHS implements a 1-bit set-reset flip-flop with CH1 Trigger as Set and BOTH CV as Reset
Maths mirrors a control voltage around an offset point by inverting it on one channel and summing a fixed offset from another
Maths multiplies two control signals by patching both to a channel with RISE full CW and FALL full CCW
Maths performs full-wave rectification by multing a signal to CH.2 (normal) and CH.3 (inverted) into OR OUT
Maths produces a voltage-controlled triangle LFO by self-cycling one channel with SUM patched to Both CV
Maths Signal IN accepts a gate to generate an ASR envelope whose sustain level tracks the gate voltage
Maths simulates a bouncing-ball physics envelope by chaining two channels with decaying amplitude
Maths soft-syncs to a sawtooth oscillator by patching it to the lag input in audio-rate cycling mode
Maths SUM output adds or subtracts control signals using attenuvertor polarity
Mixing a dry kick and a processed copy on separate channels lets each be balanced independently
Modulating a low filter's cutoff with an envelope while resonance is high adds spectral movement and bite to each bass note
Modulating the decay envelope length with a clock divider creates alternating open and closed hi-hat patterns
New modules are added in VCV Rack by right-clicking an empty rack space to launch the Module Browser
Pairing a blinking LED with a photocell inside opaque tubing creates an optically isolated audio gate, panner, or ring modulator
Patching an oscillator to Maths trigger input and mixing EOR with the main VCO generates sub-harmonics
Patching SSG Smooth output to its own VC Rate input creates exponential glide on sequencer pitch
Planning module power draw in milliamps against PSU capacity prevents overloading rails when building a system
Poking contacts on an LCD display with a battery wire causes segments to distort and produces audible signals from the display's own oscillator
Replacing a toy's clock resistor lets you continuously vary its pitch and tempo
Routing a dry synth's audio through a sampler adds onboard effects without extra mixer channels
Running a metallic percussive output through a granular engine adds a sustained noisy texture to a minimal techno patch
Sample-and-hold and smooth random voltage sources animate patch parameters generatively so a static patch keeps evolving
Six oscillators from one 74C14 chip can be mixed with resistors to prevent shorts and create dense textures
Splitting a bass into high and low bands and sending only the highs to a delay keeps the low end clean while adding space
The 252e includes a built-in Euclidean rhythm generator that distributes pulses evenly across any ring's cells
The Buchla 225e/206e preset manager stores up to 30 named system states retrievable by number, pulse, or MIDI program change
The canonical subtractive voice patch routes oscillator → filter → VCA with two envelopes: one for amplitude, one for filter cutoff
The LM386 IC provides a simple 0.25W audio power amplifier that runs on 9V battery and needs only a few passive components
The Serge SSG generates triangle and square LFOs by patching its output back to its own input (CYCLE mode)
The SSG generates correlated random smooth and stepped voltages simultaneously by feedback-patching noise through the COUPLER
The Turing Machine's big knob sets a continuous spectrum from random (noon) through slipping (3/9 o'clock) to locked (5 o'clock)
Threshold-armed sampling records incoming audio only when it crosses a set level
Tides is calibrated for accurate pitch tracking by feeding known 1.000V and 3.000V references into V/OCT in a button-triggered routine
Tides' CLOCK input locks its frequency to an external signal multiplied by the FREQUENCY ratio
Touching a battery-powered AM radio's exposed circuit board with damp fingers turns the radio into a synthesizer by adding your body as a variable resistor
Transferring a breadboard circuit to a soldered PCB requires leaving the working breadboard intact until the permanent version is verified
Tuning analog drum modules live — pitch, decay, and saturation — is a primary performance gesture in modular techno
Turning a reverb's diffusion fully down converts it into a delay, usable as a dry-free parallel effect
Two Maths channels cross-triggered produce 90-degree phase-shifted LFOs (quadrature mode)
Two photoresistors in opposing positions create a passive light-controlled stereo panner requiring no power
F · Live coding: music — 157
A drop is one cycle of near-silence followed immediately by the full groove returning
A fill applied only on the turnaround cycle is self-clearing and requires no follow-up save
A high-pass sweep removes low-end weight from the full stack without removing the pattern
A live-coding setup file pre-loads server memory, sample dictionaries, SynthDefs, a clock and a safety limiter before the set
A live-coding SynthDef names its frequency arg 'freq', exposes an 'out' arg, and self-frees via doneAction
A low-pass cutoff ramped upward over a phrase opens the groove without adding voices
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 SuperCollider autonomous panic recovery is s.freeAll followed by a single inline graph needing no SynthDef, sample, pattern, or scale
A SuperCollider startup file auto-loads SynthDefs and buffers on server boot for live-coding readiness
Adding a feedback delay on a voice's final cycle lets its echo tail carry the transition
Additive synthesis in Sonic Pi layers multiple synth voices at different pitches and amplitudes to create new timbres
An overdriven DFM1 filter self-oscillates into a warm drone that layers across the harmonic series
Angle brackets in Tidal mini-notation select one element per cycle, creating slow-cycling pattern variation
bank() repoints a pattern's drum abbreviations at a named drum-machine sample set
beat_stretch: maps a sample to a specified beat count at the current BPM
Chopping a sample into equal slices and playing them in random order creates beat-slicing effects
chord() and scale() return rings of MIDI notes, making music-theory patterns directly executable
ChucK wires Unit Generators into a signal chain with the ChucK operator =>
Combining X-write with a movement operator animates a self-propelled operator across the grid
Comma-separated patterns inside square brackets create polyrhythms in Tidal
Commenting a voice out or in is the most legible and reversible layer transition
const replaces the entire playing pattern with another one
Copilot mode follows a propose-explain-wait loop and never saves without human acceptance
cue broadcasts a named event and sync blocks until the next occurrence of that event
Curly brace syntax in Tidal creates polymeter patterns where sequences of different lengths share the same pulse
define :name do ... end creates reusable code blocks that persist and can be redefined between runs
Driving percussion above 0 dB into StageLimiter compresses the whole mix on each hit for a sidechain-style pump
Estuary terminal commands add custom sample banks to an ensemble session
Estuary's view DSL lets performers define and share named workspace layouts via terminal commands
Estuary's visual theme is controlled by a CSS file defining four core colour variables
every applies a transformation to a pattern on every nth cycle, leaving other cycles unchanged
fastcat and cat concatenate patterns in series, differing only in whether they compress to one cycle
filterHaps tests the whole Hap (with timing) while filterValues tests only the value
fork schedules time-ordered Pbind launches using .wait calls inside a Routine running on a TempoClock
Glicol's JavaScript API embeds the audio engine in any browser app via CDN or NPM
Glicol's seq node divides a bar by spaces and sub-divides each beat with concatenated MIDI numbers
hush() immediately silences every Strudel voice — it is the first step of autonomous recovery from a broken mix
in_thread do ... end launches a concurrent execution path while the main thread continues
knit creates a ring by repeating each value a specified number of times
line generates a ring that linearly interpolates from start to finish across N steps
live_audio creates a persistent named audio input stream that can be moved between FX contexts dynamically
live_loops auto-generate cue events that other live_loops can sync on for phase alignment
Loading custom sample packs into SuperDirt requires adding a loadSoundFiles path to the SuperCollider startup file
Locking a TidalCycles delay sets its time in cycles so echoes stay in phase with the tempo
loopAt syncs a long audio sample to a given number of Strudel cycles
Mini-notation polymeter requires the {…}%n form; without %n it uses the first group's length
Mix folds a multichannel array to mono; Splay spreads it evenly across a stereo field
N.times do ... end repeats a code block exactly N times then continues execution
note() sets pitch as a MIDI number or a letter name with optional octave and accidental
octs generates a ring of the same note across multiple consecutive octaves
onset: pick in Sonic Pi selects a random transient event from a sample for instant hit variation
Orca's colon operator sends MIDI notes with channel, octave, and note arguments
Orca's T (track) operator sequences melody by indexing into a character string
Pan2 places a mono signal in a stereo field; its pos argument ranges from -1 (left) to +1 (right)
Pbind can drive any custom SynthDef by naming it with \instrument; SynthDef argument names become Pbind keys
Pbind supports named scales via \scale and chords via nested lists in pitch keywords
Pbjorklund2(k,n) emits Euclidean duration patterns that can be modulated by nesting other pattern classes
Pd's trigger object splits one input into typed outputs fired right to left
play and sleep are the two primitives for pitch and timing in Sonic Pi
PlayBuf.ar loads an audio buffer and plays it back with variable speed, direction, and looping
Raising degradeBy over successive cycles thins a voice while preserving its timing grid
Redefining a named function while a named thread loops is the foundational Sonic Pi live-coding pattern
register() adds a new method to Strudel's Pattern class and returns it as a standalone function
Renardo players receive SynthDef instructions via the `>>` operator and play patterns continuously
Renardo requires SuperCollider installed and bootable separately before it can produce sound
Renardo startup files run automatically on launch to pre-configure the session environment
Renardo's `lpf` and `hpf` attributes apply per-note low-pass and high-pass filters directly on players
Renardo's `play()` instrument uses a string of characters to define a rhythmic sample pattern
rpitch: shifts a sample's pitch by semitones without manually calculating the equivalent rate
Sardine's live coding relies on a REPL: evaluate-and-update any code while the scheduler keeps running
SC receives MIDI via MIDIIn.connectAll and MIDIdef callbacks; ADSR gate management requires per-note synth node tracking
Separating s (sample folder) and n (index) in Tidal enables independent patterning of name and index
set_mixer_control! applies global LPF, HPF, and amplitude adjustments to all Sonic Pi output
slow and fast scale a Tidal pattern's time by a factor, changing its speed without altering its structure
Sonic Pi _slide: opts cause synth parameters to glide smoothly between values over time
Sonic Pi auto-inserts incoming MIDI events into Time State, enabling sync and get on them
Sonic Pi control on a synth node requires capturing its handle and setting *_slide before calling control
Sonic Pi filters sample packs by substring, regex, or symbol before selecting by index
Sonic Pi listens on port 4560 for OSC messages and routes them into Time State automatically
Sonic Pi plays external audio files by passing a file path string to sample
Sonic Pi sends MIDI messages in sync with music via midi, midi_note_on, and related functions
Sonic Pi's onset: option indexes a sample's drum hits like a list, so you can play individual hits by number
Sonic Pi's start: and finish: opts play arbitrary sub-sections of a sample
spread() generates a Euclidean boolean ring for rhythmic hit placement in Sonic Pi
Square brackets in Tidal mini-notation create sub-patterns that fit multiple events into a single step
stack layers a list of patterns to play simultaneously so one transformation can shape them all
Strudel samples may not sound on the first play until you stop and restart
SuperCollider classes encapsulate reusable synthesis behaviour and extend the language
SuperCollider patterns started without .play(quant:) begin immediately and drift out of phase
SuperCollider records the server's live audio output to a sound file with record and stopRecording
SynthDef names and stores a reusable synth recipe in the server; Synth instantiates it with specific argument values
The :slicer FX modulates amplitude rhythmically using a control wave at a configurable phase duration
The :slicer FX's probability: opt gates each phase on or off deterministically for random-sounding rhythms
The :sound_out FX routes audio to both its outer FX context and a specific hardware output channel
The .range(lo, hi) method rescales any UGen's output to a desired numeric range; mul/add provide equivalent lower-level control
The .set message changes a running synth's arguments in real time while the synth continues playing
The * and / operators in Tidal mini-notation speed up or slow down individual events and groups
The ~> and <~ operators shift a Tidal pattern forward or backward in time by a fraction of a cycle
The $: prefix declares an independent pattern that plays simultaneously with other $: patterns
The cut effect assigns samples to choke groups so a new hit stops previous overlapping hits from the same group
The Glicol panic patch is a single out: line with an oscillator, LPF, and no sample references
The run function generates sequential integer patterns for automatically stepping through sample indices or pitch values
The sound() function plays a named sample and accepts colon notation to select sample variants
The speed control in Tidal changes sample playback rate and thus pitch; negative values reverse the sample
tick advances a beat counter per live_loop and returns the current ring element; look reads without advancing
Tidal chop, striate, cut, and loopAt turn long samples into granular and looping textures
Tidal d1-d9, hush, solo, and mute manage multiple simultaneous patterns live
Tidal filters cutoff, hcutoff, and djf shape a sound's frequency content
Tidal oscillators with range modulate parameters as LFOs, smoothed via control busses
Tidal schedules OSC messages to an external synthesiser, separating pattern logic from sound synthesis
Tidal's ? and degrade functions randomly remove pattern events to introduce controlled probabilistic variation
Tidal's continuous oscillator patterns (sine, saw, tri, square) modulate control values smoothly over time
Tidal's hush command silences all channels immediately and is the primary panic-stop for gain runaway
Tidal's mini-notation parses polymetric rhythms from strings using square and curly bracket operators
Tidal's pipe arithmetic operators (|+, |-, |*, |/) modify control values relative to an existing pattern value
Tidal's tempo is set in cycles per second (cps), not BPM; converting requires choosing beats per cycle
TidalCycles ascii, binary, and binaryN turn strings or integers into boolean rhythm patterns via their binary representation
TidalCycles bite slices a pattern cycle into equal-sized pieces and addresses them by index, enabling arbitrary reordering of pattern sections
TidalCycles can trigger custom SuperCollider synths using n with note names or midinote with MIDI numbers
TidalCycles choose emits continuous random values from a list; wchoose adds probability weights to make some values more likely
TidalCycles chunk divides a pattern into n sections and applies a transform to each in turn, one per cycle
TidalCycles degrade and degradeBy randomly remove events from a pattern at a controllable probability
TidalCycles euclid k n places k onsets Euclideanly across n steps, the function form of the (k,n) mini-notation
TidalCycles euclidInv and euclidFull produce the rhythmic complement or dual-voice Euclidean pattern
TidalCycles fix and contrast apply transforms only to events matching a ControlPattern test, leaving others unchanged
TidalCycles inhabit maps string names to patterns, allowing a pattern of strings to select and play named sub-patterns
TidalCycles loopFirst repeats only the first cycle of a pattern, freezing later cycles' content
TidalCycles mask gates a pattern with a boolean mask, letting events through only where the mask is true
TidalCycles necklace generates boolean rhythmic patterns from a list of inter-onset intervals rather than onset/total-steps parameters
TidalCycles palindrome alternates a pattern between forward and backward playback every other cycle
TidalCycles parenthesis notation (k,n) generates Euclidean rhythms directly in mini-notation
TidalCycles ply repeats each event in a pattern n times within its original time slot
TidalCycles range rescales a 0–1 continuous pattern to any numeric interval
TidalCycles ribbon cuts a fixed window from a pattern's timeline and loops that window
TidalCycles rot rotates the values of a pattern leftward while preserving the original rhythmic structure
TidalCycles select and pickF use a numeric pattern to switch between whole sub-patterns or transforming functions
TidalCycles soak applies a transform repeatedly and concatenates all versions, creating an accelerating or evolving sequence
TidalCycles spread applies a function with each of a list of parameter values in turn, cycling one value per cycle
TidalCycles step builds a pattern from a step-sequencer string, mapping x to a hit and digits to sample indices
TidalCycles stripe repeats a pattern n times at random speeds while keeping total duration constant
TidalCycles struct imposes a boolean rhythmic structure on any pattern, enabling Euclidean and binary rhythm shapes
TidalCycles stutter repeats each event n times separated by a fixed time offset, creating manual echo-style delays
TidalCycles timeLoop t loops a pattern's cycle sequence every t cycles, like a modulo on cycle number
TidalCycles when and whenmod apply transforms based on a predicate or modular arithmetic test on the cycle number
TidalCycles' 'iter' rotates a pattern by a fraction each cycle, and the rotation amount is itself patternable
To modulate a running Sonic Pi effect or synth you must capture its block-argument handle and call control on it
Transition functions like xfadeIn and anticipate swap patterns gradually instead of instantly
Two live_loops with slightly different sleep times produce Steve Reich-style phasing
use_bpm sets the tempo so sleep, envelopes, and FX phases all scale accordingly
use_random_seed resets Sonic Pi's random stream so a live_loop produces a repeatable random pattern
use_real_time removes Sonic Pi's scheduling look-ahead for MIDI and OSC-driven live loops
use_synth switches the active synthesiser for subsequent play calls in the current thread
Using one_in(N) in a live_loop creates probabilistic drum patterns with adjustable density
When Tidal cannot run in a rig, the operative recovery is to emit equivalent Strudel code that produces sound immediately
with_fx wraps code in an audio effect that processes all sounds generated inside the block
Wrapping SuperCollider lines in outer parentheses makes a code block that evaluates as one unit on a single keypress
G · Shaders & GPU programming — 28
A for loop that repeatedly scales, tiles (fract), and accumulates color creates multi-scale fractal detail in shaders
A GLSL sine oscillator needs a bias and gain to map its -1/+1 range to 0-1 for color
A reference-list SDF is dropped into a shader by adding an offset parameter subtracted from p
A WebGPU canvas context must be configured with a device and the device's preferred texture format before drawing
A WebGPU draw call requires setPipeline, setVertexBuffer, and draw called in sequence on a render pass encoder
A WebGPU render loop re-records and re-submits a command buffer each frame; requestAnimationFrame or setInterval drives the cadence
A WebGPU render pass with loadOp 'clear' and a clearValue fills the attached texture with a solid RGBA color
A WGSL fragment shader is an @fragment function that returns a vec4f RGBA color tagged @location(0) for the first color attachment
A WGSL vertex shader is an @vertex function that takes @location inputs from the vertex buffer and returns a @builtin(position) vec4f
An SDF can be derived from any implicit curve equation by setting the LHS equal to d
Audio FFT data can be passed to shaders as a 4-band uniform for audio-reactive visuals
Compute work in WebGPU runs in a compute pass that is recorded before the render pass in the same command encoder
Debug a GLSL compile error by reading its line number, then bisecting back to a known-good body
Dividing gl_FragCoord by u_resolution maps pixel coordinates to the [0,1] UV range
fBm in shaders is built by summing noise octaves with exponentially decreasing amplitude and increasing frequency
GPU-side data is stored in GPUBuffers created with size and usage flags, then populated via device.queue.writeBuffer
Line-segment and curve SDFs need a thickness offset subtracted to become visible
Mapping HSB to polar coordinates with atan and length renders a color wheel
Multiplying st.x by width/height corrects the UV space for non-square canvases
Normalizing UV coordinates to clip space (−1 to 1, aspect-ratio-corrected) makes shaders independent of canvas resolution
Raymarching surface normals are estimated by sampling the SDF gradient at nearby points
Replacing step with smoothstep at an SDF boundary adds anti-aliasing and glow effects
Spherical UV coordinates map latitude/longitude angles to texture image coordinates for sphere texturing
The canonical GLSL panic shader is the hello.frag cosine palette driven by u_time with a clamped output
Transforming clip-space vertices into grid cells requires scaling by 1/N, translating by -1, then adding a per-instance cell offset scaled by 2/N
WebGPU initialization requires requesting an adapter then a device in two async steps
When multiple pipelines share resources, an explicit GPUBindGroupLayout and GPUPipelineLayout must replace the auto-generated layout
Wrapping edge-cell neighbor lookups with the modulo operator creates a toroidal grid topology that prevents out-of-bounds buffer access
H · Creative coding & live-coded visuals — 59
2D Perlin noise maps x,y coordinates to smooth organic texture fields
A bounded self-analysing drone with non-zero-base colour and a short crossfade is the safe Punctual recovery program
A custom pow(sin(x),n) shaping function replaces noise() to give a smooth periodic radius variation with a distinctive character
A minimal cleared-and-isolated setup()/draw() skeleton is the safe P5LIVE recovery sketch because it avoids every common failure at once
A p5.js filter shader reads the canvas via tex0 and vTexCoord to apply per-pixel post-processing
Adding Perlin noise to a spiral's radius each step produces organic, irregular loop shapes
An Archimedean spiral is drawn by incrementing both angle and radius simultaneously in a loop
An ofxFloatSlider added to an ofxPanel binds a live variable to a draggable GUI control
Any Hydra number parameter can be a function evaluated each frame, enabling gestural and data-driven control
beginShape/endShape with vertex() and bezierVertex() builds arbitrary polygons and smooth curves in p5.js
CineCer0's natural/every/round/chop functions align video playback to Estuary's cycle grid
Circle-circle collision is detected by comparing center distance to sum of radii
Cross-dissolving two layers per pixel with lerpColor() and a coordinate-dependent wave makes non-uniform wave transitions
Deconstructing a shape into steps enables naturalistic variance at each step
Defining a small set of behavioral rules for elements produces emergent visual complexity through their interactions
Every Hydra patch runs source → geometry/color transforms → .out()
Feeding the previous frame back with an FFT-driven amount makes visual trails grow with the audio build
frameCount % width produces seamlessly looping horizontal motion in p5.js
Geometric visuals are built by combining one SDF shape with boolean operations, then imposing symmetry, then composing the frame
Hydra can use webcams, screen capture, video files, and images as source buffers alongside generated visuals
Hydra processes a webcam by initialising it into s0 and using it inside src()
Hydra sources inside Estuary are chained with dot-notation and sent to outputs with .out()
Hydra video feedback is created by routing output into a named buffer and reading that buffer back
Hydra visuals are built by chaining functions, and the order of the chain changes the output
Hydra's `a` object exposes real-time FFT bins so any parameter can be driven by an audio frequency band
Hydra's loadScript() imports arbitrary JavaScript libraries (Three.js, Tone.js, p5.js) into the live editor
lerpColor() over a for-loop of stacked lines builds a smooth gradient in p5.js
Mapping source brightness to tile size rasterizes an image into a halftone-like grid where dark areas make smaller tiles
Nested loops over a grid of tiles are the foundation of parametric tiling patterns in p5.js
ofImage loads and draws image files with a two-call setup/draw pattern
ofImage.grabScreen() captures the current frame to a PNG in bin/data
ofSoundPlayer loads and plays a sound file from bin/data with load() then play()
openFrameworks addons are added via projectGenerator or an addons.make file
p5.js asset-loading functions (loadFont, loadImage) are asynchronous and must be called in preload() or given a callback to avoid undefined references
P5LIVE sandbox and strudel regions must use matched open/close comment delimiters at top level, not inside functions
Parameterized randomness lets artists control how much chance enters a system via explicit ranges
Pixel mapping replaces each pixel of a source image with a drawn element sized or coloured by that pixel's value
Points on a circle's circumference are computed from center, radius, and angle using sin/cos
Points on a sphere's surface are computed from two angles using nested sin and cos
Processing's setup() runs once and draw() repeats each frame to create animation
push() and pop() isolate transformations so they do not accumulate globally in p5.js
Ramping brightness down and blending toward a solid empties the canvas gracefully instead of a hard hush cut
Recursive fractal structures are coded as objects that instantiate child copies of themselves
Recursive grid subdivision generates fractal-like layouts by splitting cells into sub-grids
Rendering a looping animation to video: save each frame and call exit() at a target frameCount
Rotating a diameter chord around a circle while varying its length by noise produces a wave-clock pattern
Sampling an image's pixels and sorting the resulting colours by hue, saturation, or brightness extracts its palette
saveFrame() exports sequential still images that can be assembled into video
Saving incremental versions frees generative artists to experiment boldly without fear
Shadertoy fragment shaders run in three.js on a fullscreen quad by mapping iTime and iResolution uniforms into the render loop
Stepping kaleidoscope symmetry up on a downbeat gives a visual drop paired with an audio peak
Swapping the FFT index driving a visual parameter aligns the visual energy with the new section's audio driver
The Hydra panic default is a bounded, reactive osc sketch with non-zero base terms and clamped FFT reads
The ofxAssimpModelLoader addon loads and draws 3D model files in openFrameworks
Three.js post-processing chains render passes through an EffectComposer that processes them in order of addition
Toggling a color inversion or hard posterize on the drop downbeat is a single-frame visual hit
translate() and rotate() transform the drawing origin; pushMatrix/popMatrix save and restore it
Treemap boxes can be styled with callback functions that receive value and index, enabling data-driven colour
Tying scroll or scale speed to a rising FFT band accelerates the visual motion through a build
I · VJing, projection mapping, LED/DMX & video — 31
A layer mask is drawn as a polygon in VPT's mask editor and saved as a black-and-white PNG
A projector must be an extended (not mirrored) display before launching projection software
A replicator-plus-delay system distributes one visual engine across many screens by shifting the same signal in time per screen
A universal TouchDesigner project template with pre-wired input/output buses reduces per-project configuration and enables flexible device swapping
Bridging a genetic-algorithm simulator to TouchDesigner via Python enables real-time visualisation of evolutionary computation
Centralising all sensor inputs through a single OSC/WebSocket bridge (MAMI pattern) lets TouchDesigner focus on interaction design rather than device plumbing
Compressing inactive TOP networks to one-eighth resolution recovers GPU memory headroom in multi-scene VJ rigs
Corner-pin mapping fits a projected image to a surface by dragging four independent corner handles
DMX Dump captures a live DMX snapshot into a new or existing Scene for immediate reuse
Drawing a projection-mapping mesh by hand in software removes the dependency on an accurate 3D model
Each Resolume layer has separate A, V, and M sliders fading audio, video, and both
Fixture Remapping reassigns an existing project's channels to different fixtures in minutes
Getting media onto a VPT layer takes two steps: activate a source, then select it in the layer's source menu
GLSL shaders can calculate and output 40k+ DMX channels in real time, enabling large-scale kinetic and LED installations from a single TD network
Inverting a mask on a black solid top layer turns it into a cutout window onto lower layers
LedFx auto-discovers WLED devices on the local network, enabling plug-and-play LED strip control without manual configuration
Mapping a per-track OSC envelope to visual parameters turns a music sequencer into a precise visual accent machine
OpenCV's calibrateCamera function enables automatic intrinsic and extrinsic calibration of projector-camera systems within TouchDesigner
Parameterising phase offset across objects produces overlapping-action animation generatively without per-object keyframing
QLC+ RGB Scripts are self-executing JavaScript objects implementing rgbMapStepCount and rgbMap functions
Restarting several clips together in VPT needs per-source trigger buttons or a shared router controller
Round-robin sound sampling prevents perceptible repetition by rotating through a pool of similar samples rather than replaying one sound identically
TDAbleton enables bidirectional MIDI and audio-feature communication between TouchDesigner and Ableton Live, allowing visuals to drive audio and audio to drive visuals
The QLC+ Script function automates sequences of function start/stop and DMX channel commands with wait times
The RGB Panel Wizard creates a fixture group for a pixel-mapped LED strip panel with configurable orientation
TouchDesigner can act as a media-server control system across a LAN, with a master sending cues to multiple client machines that each handle their own media playback
TouchDesigner can serve as a real-time rendering and previz layer in a Houdini production pipeline, handling high-resolution output with shorter turnaround than offline rendering
Video must be compressed to appropriate codecs before a live performance to enable real-time processing
VPT exchanges sensor and actuator data with Arduino over serial using an id-plus-value format
VPT's live inputs bring a connected camera in as a source and can record it into a source folder
WLED's ledmap.json remaps physical LED order to any logical layout
J · Audio-visual integration & sync — 23
A Max for Live device bridges an external OSC control surface to Live via the LOM
A rising audio energy arc can be mapped to rising visual motion rate or scale so that both domains accelerate together during a build
AbletonOSC lets you add, remove, and query MIDI notes in a clip programmatically over OSC
AbletonOSC's Device API lets you read and write any synthesiser or effect parameter by index via OSC
Beat detection via amplitude threshold fires a visual event when RMS crosses a set level
Gibber maps audio objects directly to visual properties using bias and scalar for range control
In Max the [route] object both separates OSC messages by address pattern and strips that pattern off, dispatching each to its handler
Open Stage Control loads a JSON file that defines a portable OSC control surface
OSC connections require both a destination IP address and a port number to route messages to the correct application
Pinning a free-running audio tremolo and a visual brightness-pulse to the same rate value makes them move in lockstep without a shared transport
Robust beat detection uses a decaying cutoff plus a hold window to debounce triggers
Routing the highs band to kaleidoscope symmetry count produces a coherent coupling — fast bright content increases visual complexity
Splitting incoming audio into named bands lets a VJ hook each band to a different visual parameter
Squaring a band value produces a soft onset-ish punch that pops on loud hits without requiring true onset detection
Stretching a video clip to bar length couples visual rhythm directly to musical tempo
The /live/song/get/track_data command queries multiple tracks and clips in a single OSC message
The AbletonOSC Python client uses a threading.Event to block on an OSC reply, creating a synchronous query interface
The AV shim exposes four per-band tuning controls — setScale, setCutoff, setSmooth, setBins — that adjust how a.fft responds without changing the sketch
The Song API lets you start/stop playback, set tempo, and jump to cue points using OSC messages
The track_data handler uses a dot-namespace format to query track, clip, clip_slot, or device properties in a single call
To make software react to music playing on a computer you must route system audio back in as an input via a platform-specific loopback device
Two MIDI 2.0 devices reach full communication through an ordered discovery sequence ending in normal MIDI use
When no clock signal crosses the audio-visual bridge, the performer matches visual phrase length to musical phrases by feel and manual edit timing
K · AI & real-time generative AV — 32
A ComfyUI custom node is a Python class with INPUT_TYPES, RETURN_TYPES, FUNCTION, and CATEGORY
Any PyTorch model can become a nn~ object by subclassing nn_tilde.Module and registering methods and attributes
ComfyUI's HTTP API accepts workflows as JSON with nodes keyed by numeric IDs and links as [node_id, slot_index] arrays
Converting a generated log-spectrogram to audio requires denormalizing, de-logging to amplitude, then an iSTFT
Custom separation model bags let you combine multiple checkpoints with per-source weights
DDPM inference reverses the diffusion process: starting from noise, iteratively subtract predicted noise for T steps
DDPM normalizes pixel values from [0,255] to [-1,1] so the network operates on a fixed input range matching the Gaussian prior
DDPM ResNet blocks inject the timestep embedding via scale-and-shift (FiLM-style) conditioning
DDPM training samples a random timestep per example, corrupts it, and minimizes noise-prediction loss
DDSP training requires preprocessing raw audio into TFRecord files with precomputed f0, loudness, and audio chunks
Deforum keyframe schedules interpolate parameter values linearly between defined frame:value pairs
Deforum's anti-blur applies an unsharp mask to counteract the progressive blurring that builds during long animations
Demucs exposes a Python API for integrating stem separation into scripts and pipelines
Demucs separates any audio file from the command line with a single command
Multiple LoRA weights can be loaded and fused into StreamDiffusion before inference for style mixing
nn~ exposes RAVE encode, decode, and forward as Max/MSP or Pure Data audio-rate methods
nn~ is a Max/PureData external that bridges trained neural audio models (RAVE, vschaos2) into a patching environment
q_sample implements the 'nice property' — corrupting an image to any noise level in one operation
Raising RAVE's discriminator update period fixes phase-2 instability when the discriminator is too strong
RAVE models must be exported with --streaming to avoid click artifacts in realtime hosts
RAVE requires hours of homogeneous audio preprocessed into a chunked database before training
RAVE training is monitored via TensorBoard distance, fidelity, and adversarial-loss logs
RAVE training requires CUDA verified via nvidia-smi and a dedicated conda environment
RAVE uses gin-config to define and override model hyperparameters without modifying code
RAVE's generate script applies a model to large collections of audio files offline in batch mode
Splitting RAVE encode and decode in nn~ lets performers process individual latent dimensions live
StreamDiffusion can process offline video frame-by-frame with img2img to produce a stylised output video
StreamDiffusion requires CUDA GPU, Python 3.10, PyTorch 2.1, and optional TensorRT for optimal performance
The DDPM U-Net assembles encoder, bottleneck, and decoder stages using ModuleList, with skip connections via concatenation
The forward method runs a neural model as an audio effect: audio in, neural-transformed audio out
The RAVE VST loads a .ts model in any DAW as an audio effect that re-timbres incoming audio
The StreamDiffusionTD operator wraps StreamDiffusion as a TouchDesigner node for diffusion-based real-time visuals inside a TD network
L · Visual foundations — 6
A complete visual design can be built from one hue using only lighter and darker variations in HSB
Arranging colors exclusively in stripes suppresses shape dominance and foregrounds color interaction
Matching pure primaries individually is the procedure for deriving a color space conversion matrix
Recreating a master's color palette in cut paper reveals its color instrumentation — relationships rather than specific pigments
Simultaneous contrast can be neutralized by adding the missing complementary explicitly, or by introducing light-dark contrast between the hues
Weekly curation-and-critique of new-media projects builds a practitioner's reference library and critical vocabulary
M · Performance, DJing, live-set & stagecraft — 29
'Ringing out' a monitor system identifies feedback frequencies with EQ to maximize gain before feedback
A heavy beat layered underneath a heavily tempo-shifted track masks its distortion artefacts
A recorded DJ mix needs a structural arc — from dark/minimal to climax — that mirrors a personal narrative
A semitone rise between tracks creates an energy boost by adding 7 (one semitone) or 2 (two semitones) to the Camelot number
A short loop on a shared chord bridges two harmonically compatible but chord-order-incompatible tracks
An absolute major/minor key switch keeps the root note and shifts Camelot number by ±3
Camelot wheel major-to-minor harmonic mixing matches the number and changes the letter (A/B)
Correct typing posture puts the keyboard at lap height with elbows at right angles and wrists straight
Deep functional playlist organization by genre, mood, intensity, and tempo enables instinctive in-set navigation
EQ blend carves the midrange of an instrumental to make space for an incoming vocal
Filtering by key when selecting the next track narrows choices and improves harmonic flow
Four foundational DJ mixer exercises establish the skills needed to begin mixing
Full-frequency mixing balances two tracks with volume faders alone, avoiding EQ cuts and swaps
Layering means recording the rhythmic bed first, then overdubbing melodic and textural parts on top
PA tuning begins with listening to known references, not measuring — verify before correcting
Placing an unexpectedly deep track mid-set resets the energy and grounds the crowd
Playing records at the wrong RPM (33 instead of 45, or heavily pitch-shifted) reveals hidden qualities and creates new textures
Reading crowd signals and adjusting song selection in real time is a core live DJ skill
Remapping CAPS LOCK to CTRL removes pinky strain for keyboard-heavy workflows
Running two copies of a record lets a DJ loop and tease its best section in real time
Saving a reference render at the end of each session and reviewing it fresh before the next prevents perspective loss during deep detail work
Setting a loop on a track's outro buys time to find and cue the next track
Splitting mic signals to separate house and monitor consoles requires isolation transformers to prevent ground loops
Standing to stretch and walk every 30-60 minutes prevents cumulative RSI from long sessions
Swapping basslines cuts the low end on the outgoing track to make room for the incoming bass
The right fix for a drifting beatmatch depends on how severe the drift is
Tone matching EQ corrects spectral mismatches between tracks from different genres or eras
Use parametric EQ on mic groups for feedback control — bypass filters until needed at soundcheck
When venue sound fails, a DJ must flag technical staff immediately and use any available signal to hold the room
N · Tools & free/open software stack — 11
A slow phasor~ scaled and passed through mtof~ produces a repeating one-octave pitch sweep
AbletonOSC supports hot-reloading its own handler code by sending /live/api/reload, avoiding a full Live restart during development
DAW scale-snap tools correct out-of-key notes without requiring theory knowledge
In Logic, Option-clicking with the Scissor tool slices a MIDI region into equal grid divisions instantly
iO-808 auto-persists progress across sessions while an explicit JSON save/load is used for sharing patterns
Loudspeaker sensitivity (dB SPL / 1W / 1m) plus power ratio in dB gives maximum SPL at 1m
Multiple remote DJs can be brought into one OBS scene by popping each Jitsi Meet stream into its own window and window-capturing it
OBS's Auto-Configuration Wizard picks encoding settings from your intent, hardware, and network
Pure Data opens with DSP off, so no audio is produced until DSP is explicitly turned on
Pure Data's auto-patching creates each new object already connected to the previous one
Troubleshoot 'no signal' by tracing from source to output; troubleshoot 'unwanted signal' by tracing from output to source
O · Culture, history & theory — 7
Footwork producers typically build a track by cutting up samples first and working the beat around them, at very high output rates
Layering a TR-808 and TR-909 kick into one sample yields a kick with both deep sub and sharp attack
Manipulating tape speed and direction transforms recordings into new compositional material
Orbital used MMT-8 hardware sequencers in a loop-switching live setup that performed music by swapping patterns rather than triggering samples
Recording a part at slow tempo then speeding up the tape hides timing errors and shifts the timbre
Sidechain compression keyed to the kick creates progressive house's signature pumping bassline effect
Spreading a tuned kick sample across a sampler's keys lets you play the kick itself as a melodic bassline
P · Community, scenes & practice — 4
A per-release marketing plan fixes messaging, timing, and platform actions before a track goes live
Algoraves should be safe spaces, supported by a published code of conduct
An algorave's minimal technical setup is full-range speakers plus a high-contrast projector in a dark room
Proper CC attribution includes title, author, source URL, and license name/URL — not just the artist's name