home/ atoms/ tidal-cycle-as-time-unit

Tidal's fundamental time unit is the cycle, not the beat, so adding events packs them tighter rather than lengthening the bar

TidalCycles and Strudel use the cycle — not the beat — as the fundamental unit of time, a model inherited from the Bol Processor of Indian classical music. The cycle is an ever-running loop in the background, even when nothing is playing. All events in a pattern are distributed evenly across exactly one cycle regardless of how many there are, so a 2-step and a 12-step pattern take the same wall-clock duration; adding elements packs them proportionally tighter, making each shorter (faster), not extending the bar. Cycle speed is set globally by cps (cycles per second) — Strudel/Estuary default ~0.5 (one cycle every 2 seconds); a common tutorial simplification is ‘one cycle per second’ before correcting to the real default. A tilde ~ is a rest that consumes its share silently. Because every pattern shares the same cycle boundary, patterns of differing event counts run concurrently and produce polyrhythms by default with no special setup.

Examples

d1 $ sound "bd sd"                          -- 2 events / cycle
d1 $ sound "bd sd hh cp mt arpy drum odx"   -- 8 events, same cycle duration (faster)
setcps 0.5                                  -- 1 cycle = 2 seconds

sound "bd sd hh" (3 events) against sound "cp*5" (5 events) yields a 3-against-5 polyrhythm because both finish at the same cycle boundary. s "bd cp ~" plays two sounds in a three-slot grid with a silent third slot.

Assessment

A learner says ‘I want the kick every 500ms.’ Explain why Tidal does not work that way and give the cycle-based equivalent. To slow one pattern without changing cps, what do you use, and what happens to a second pattern playing alongside it? Predict the rhythm of s "bd ~ sn ~ cp ~" before running it.

“there's no concept of beat in tidal this uh comes from uh the bold process in indian classical music”
corpus · alex-mclean-tidalcycles-growing-a-language-for-algorithmic-p · chunk 4
“sample gets the first half of the cycle, and the”
corpus · estuary-collaborative-browser-live-coding-platform-networked · chunk 59
“A cycle is the main "loop" of time in Tidal. The cycle repeats forever in the background, even when you've stopped samples from playing.”
corpus · tidalcycles-userbase-tutorial-community-function-by-function · chunk 1
“(sort of like a musical 'bar') which is always running. **Tidal** will play all of the sounds between the speech marks in one cycle”
corpus · tidalcycles-workshop-hands-on-beginner-course · chunk 2
“set CPS which is the the cycles per second and I could say 0.6 it would speed it up a bit by default it's 0.5 so one cycle every 2 seconds so I can change the overall speed”
corpus · why-we-bleep-045-algorave-alex-mclean-podcast · chunk 5