Tidal loops the current command until a new one compiles, with a completion rule ensuring musical continuity
TidalCycles’s execution model separates code editing from playback: when a coder submits a new pattern, the pattern currently playing continues until the new command has successfully compiled. A ‘notion of completion’ then ensures the new command begins at a musically appropriate moment (a cycle boundary in McLean’s design) rather than abruptly. Because failed code never compiles, it simply produces no change and no silence — a safety property that greatly reduces performance risk. Haskell’s strong static type-checking reinforces this by catching many errors before they can break a running performance.
Examples
Evaluating a new TidalCycles pattern mid-cycle: the old pattern completes its current cycle, then the new pattern begins at the next cycle boundary (unless it failed to compile, in which case the old pattern simply continues).
Assessment
Explain Tidal’s completion rule and describe a performance scenario where this rule prevents a technical problem from becoming an audible disruption. How does this design choice reflect the priorities of live performance?