diff --git a/src/sfizz/Synth.cpp b/src/sfizz/Synth.cpp index d9b0bb88..2c701e19 100644 --- a/src/sfizz/Synth.cpp +++ b/src/sfizz/Synth.cpp @@ -554,8 +554,6 @@ void sfz::Synth::renderBlock(AudioSpan buffer) noexcept auto temp = AudioSpan(tempBuffer).first(numFrames); auto tempMixNode = AudioSpan(tempMixNodeBuffer).first(numFrames); - resources.midiState.advanceTime(buffer.getNumFrames()); - CallbackBreakdown callbackBreakdown; { // Prepare the effect inputs. They are mixes of per-region outputs. @@ -621,6 +619,11 @@ void sfz::Synth::renderBlock(AudioSpan buffer) noexcept // Apply the master volume buffer.applyGain(db2mag(volume)); + { // Clear events and advance midi time + ScopedTiming logger { dispatchDuration, ScopedTiming::Operation::addToDuration }; + resources.midiState.advanceTime(buffer.getNumFrames()); + } + callbackBreakdown.dispatch = dispatchDuration; resources.logger.logCallbackTime(callbackBreakdown, numActiveVoices, numFrames);