Re-running a Sonic Pi buffer does not restart the piece; it swaps each live_loop body in at its next boundary and loops keep their .tick counters
Sonic Pi is real-time and stateful. Pressing Run on an already-playing buffer does not restart the music from the top — instead each live_loop hot-swaps its new body in at that loop’s next cycle boundary, so audio never cuts. Crucially, a live_loop keeps its running state across a redefine: its .tick ring counters are not reset, so a sequence continues from where it was rather than restarting at element zero. This makes live editing seamless but means you cannot rely on Run to reset counters — use tick_reset or a fresh seed for that.
Examples
Edit a note inside live_loop :mel and press Run: the change appears at the next cycle, and notes.tick continues from its current index rather than restarting at 0.
Assessment
A performer edits a running live_loop and expects the ring to restart from its first element on Run, but it continues mid-sequence. Explain why, and name what does reset the counter.