home/ atoms/ strudel-cpm-vs-cps-tempo

Strudel's setcpm takes cycles per minute, not BPM — use setcpm(bpm/4) for 4-beat cycles

Strudel’s tempo function setcpm() takes cycles per minute, where one cycle equals one pattern repetition, not one beat. At 4 beats per cycle (the standard), setcpm(120/4) = 30 cpm gives 120 BPM. Passing a BPM value directly (e.g. setcpm(120)) produces a tempo four times faster than intended — 120 cycles per minute = 480 BPM equivalent. There is no error thrown. Alternatively, setcps(bpm/60/4) converts BPM to cycles per second. The seed value in this rig is setcpm(110/4) for 110 BPM.

Examples

setcpm(120) — runs at 480 BPM equivalent (120 cycles/min, 4 beats each). Correct: setcpm(120/4) = 30 cpm = 120 BPM with 4-beat cycles.

Assessment

Explain the difference between BPM and cpm in Strudel. Write setcpm() and setcps() calls that both produce 140 BPM with 4 beats per cycle.

“`setcpm(bpm/4)` for 4 beats/cycle (seed: `setcpm(110/4)`), or `setcps(”
context/ · L5-debug/strudel.md · chunk 1