Can processNextBlock() get a midiMessage positioned after the block, time/sampleIndex-wise?


#1

Hello JUCErs,

I apologise for the noob question, but is it considered a correct DAW behavior when midi buffer passed to your processor’s processNextBlock() contains midi messages positioned AFTER the block, time-wise?

I’m reading the Synthesiser’s implementation and there I saw this, which has spawned the question:

void Synthesiser::processNextBlock (...)
{
    ...

    while (numSamples > 0)
    {
        ...

        if (samplesToNextMidiMessage >= numSamples)
        {
            renderVoices (outputAudio, startSample, numSamples);
            handleMidiEvent (m);
            break;
        }

        ...
    }

    while (midiIterator.getNextEvent (m, midiEventPos))
        handleMidiEvent (m);
}

Thanks.