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.