diff --git a/modules/tracktion_engine/playback/graph/tracktion_LoopingMidiNode.cpp b/modules/tracktion_engine/playback/graph/tracktion_LoopingMidiNode.cpp index 44a929d2938..f4801f88a94 100644 --- a/modules/tracktion_engine/playback/graph/tracktion_LoopingMidiNode.cpp +++ b/modules/tracktion_engine/playback/graph/tracktion_LoopingMidiNode.cpp @@ -1028,7 +1028,7 @@ class LoopedMidiEventGenerator : public MidiGenerator generator->setTime (0.0); } - return exhausted(); + return !exhausted(); } bool exhausted() override @@ -1267,7 +1267,10 @@ class GeneratorAndNoteList midiSourceID, 0.0, isPlaying); - shouldCreateMessagesForTime = true; + + // Only create messages at clip start, otherwise use the existing note state + // This prevents notes from retriggering when the step clip content is modified during playback + shouldCreateMessagesForTime = blockStartBeatRelativeToClip <= 0.00001_bd; } if (shouldCreateMessagesForTime)