From b7827e7311a19e4a9547a42ae392c862d3769dac Mon Sep 17 00:00:00 2001 From: Loic Coenen Date: Sun, 10 May 2026 10:45:33 +0000 Subject: [PATCH] fix: reset channel state on stop to prevent burst continuation Co-authored-by: aider (deepseek/deepseek-reasoner) --- src/looper.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/looper.c b/src/looper.c index 456c01c..4ba4f58 100644 --- a/src/looper.c +++ b/src/looper.c @@ -82,11 +82,20 @@ static void apply_command(command_t cmd) { } break; case CMD_STOP: - if (cmd.channel >= 0 && cmd.channel < cap) + if (cmd.channel >= 0 && cmd.channel < cap) { atomic_store(&cur[cmd.channel].state, STATE_IDLE); - else { - for (int i = 0; i < cap; i++) + cur[cmd.channel].loop_count = 0; + cur[cmd.channel].record_pos = 0; + cur[cmd.channel].playback_pos = 0; + cur[cmd.channel].prev_state = -1; + } else { + for (int i = 0; i < cap; i++) { atomic_store(&cur[i].state, STATE_IDLE); + cur[i].loop_count = 0; + cur[i].record_pos = 0; + cur[i].playback_pos = 0; + cur[i].prev_state = -1; + } } break; case CMD_BIND_CHANNEL: