Tidal: sounds, control patterns and tempo
Learning objectives
- learner can select samples by folder/index and pitch, and route control patterns with #
- learner can apply filters, FX and continuous oscillators as control patterns
- learner can set tempo and manage several live patterns with d1-d9/hush/mute
Capstone — one whole task that evidences the objectives
Live-code a Tidal set of three simultaneous patterns (d1-d3) with independent sample selection, filtered FX modulated by continuous oscillators, tempo set via setcps, using hush/mute/solo to arrange the mix.
Prerequisite modules
This module turns rhythm notation into a playable instrument. The whole task is a short live set — three concurrent Tidal patterns behaving like a kick/percussion/melodic-texture rig in a club or algorave setting, where you shape timbre and arrange the mix in real time rather than pre-composing. Everything here is what a performer actually touches between saving a line and hearing the room respond.
The arc starts supported: with one pattern on d1, split sound into folder and index (see “Separating s and n”) and pitch one-shots into melodic material with note versus n. Then route your first effect through #, leaning on “control patterns combined with the # operator” and the structure-from-the-left rule to understand why swapping operands changes the groove. Next, sweep a low-pass filter with range-scaled sine/saw oscillators (the continuous-oscillator and LFO atoms are your JIT how-tos), add speed for pitch-and-reverse tricks, and convert a target BPM into setcps. Only then go polyphonic: bring up d2 and d3, and rehearse hush, mute, and solo until dropping and restoring layers is reflexive — that reflex is what makes the unsupported capstone a performance instead of a scramble.
Required atoms gate the capstone directly: you cannot write a single line without $, cannot layer FX without # semantics, and cannot arrange three voices without the d1-d9 controls and tempo model. Supporting atoms enrich the practice — the language/engine architecture, the Haskell-level $ treatment, and custom sample loading explain your rig, cut groups tame long samples, and the Strudel effect atoms show the same ideas in the browser for zero-install rehearsal.
Runnable examples
Generated from the context/ instrument corpus by concept (redistributable idioms only). Do not edit — regenerate with gen-module-examples.mjs.
stereo-panning
d1 $ pan (slow 2 sine) # sound "hh*8"
tidal-0037 · CC0
SinOsc s => Pan2 p => dac; -0.7 => p.pan;
chuck-0042 · MIT
reverse-playback
d1 $ sound "bd sn" # speed "-1"
tidal-0056 · CC0
Atoms in this module
Required — these gate the capstone
Supporting — enrichment, not gating
Part of curricula
- Live Coder — zero to performing live-coded music — Patterns, Grooves & Voices required
Unlocks — modules that require this one