Sonic Pi sleep arguments are in beats, not seconds — use use_bpm to set the tempo that determines their duration
The sleep n call in Sonic Pi advances the logical clock by n beats, not n seconds. The actual wall-clock duration of each beat is determined by use_bpm bpm which is thread-local (each live_loop has its own BPM). At 120 BPM, sleep 1 = 0.5 seconds; at 60 BPM, sleep 1 = 1 second. A sleep 0 means events are simultaneous (used for chords: multiple play calls followed by sleep 0.25). Using use_bpm in the wrong thread (e.g. inside in_thread rather than at the top) produces tempo confusion without an error.
Examples
At 120 BPM: play 60; sleep 0.25 repeats 8 times per second. use_bpm 60; sleep 1 = one second. play 60; play 64; sleep 0 = C and E simultaneous (chord).
Assessment
Explain why sleep 1 sounds different at 120 BPM vs 60 BPM. What does sleep 0 do, and when is it useful?