home/ atoms/ tidal-setcps-tempo

Tidal's tempo is set in cycles per second (cps), not BPM; converting requires choosing beats per cycle

TidalCycles measures tempo in cycles per second with setcps. The default is 0.5625 cps (= 135 BPM at 4 beats/cycle). To convert BPM to cps: divide target BPM by (60 × beats_per_cycle). For 140 BPM at 4 beats/cycle: setcps (140/60/4) = 0.583. Tempo can also be patterned using the cps control function inside a pattern, allowing tempo automation. The cycle-based model means that changing the number of beats per cycle changes the relationship between pattern density and perceived tempo — a two-step pattern at 0.5 cps plays at the same rate as a four-step pattern at 1 cps.

Examples

setcps 1.5           -- 1.5 cycles per second
setcps (140/60/4)    -- 140 BPM at 4 beats/cycle
-- pattern tempo:
d1 $ sound "cp(3,8)" # cps (slow 8 $ range 0.8 1.6 saw)

Assessment

You want to play at 120 BPM with 3 beats per cycle. What setcps value do you use? Then recalculate for 120 BPM with 4 beats/cycle and explain what changes musically.

“Tidal's timing is based on cycles, rather than beats, however it is more common for people to think in terms of beats per minute (BPM).”
corpus · tidalcycles-userbase-tutorial-community-function-by-function · chunk 5