I tried to implement a policy of injection by taking into consideration your suggestion
void processBlock(juce::AudioSampleBuffer& buffer, juce::MidiBuffer& midiBuffer) override
{
juce::AudioSourceChannelInfo bufferToFill(buffer);
bufferToFill.clearActiveBufferRegion();
juce::MidiBuffer myBuff;
myBuff.clear();
for (int i = 0; i < customBuffer.getNumEvents(); i++)
{
juce::MidiMessageSequence::MidiEventHolder* eventHolder = messageSequence.getEventPointer(i);
if (processBlockTime == 0)
{
myBuff.addEvent(eventHolder->message, 0);
processBlockTime++;
lastIndex = i;
midiBuffer.swapWith(myBuff);
}
else if (processBlockTime > 0 && processBlockTime < bufferToFill.numSamples)
{
i = lastIndex;
processBlockTime++;
}
else if (processBlockTime == bufferToFill.numSamples)
{
processBlockTime = 0;
}
keyState->processNextMidiBuffer(midiBuffer, bufferToFill.startSample,
bufferToFill.numSamples, true);
synth.renderNextBlock(*bufferToFill.buffer, midiBuffer,
bufferToFill.startSample, bufferToFill.numSamples);
}
}
Unfortunately with this code, no sound is emitted
