diff --git a/audio_engine/src/column.rs b/audio_engine/src/column.rs index 5c5cf95..ab92719 100644 --- a/audio_engine/src/column.rs +++ b/audio_engine/src/column.rs @@ -53,7 +53,10 @@ impl Column { } } else { if len > 0 { - let sync_offset = len - self.playback_position; + // Calculate the next beat position where recording will start + let current_beat = self.playback_position / self.frames_per_beat; + let next_beat = (current_beat + 1) % (len / self.frames_per_beat); + let sync_offset = next_beat * self.frames_per_beat; track.record_auto_stop(len, sync_offset, last_volume_setting); } else { track.record(last_volume_setting);