I’m trying to add 14bit CC messages to a midi clip using the MidiRPNGenerator for this purpose:
auto &sequence = midiClip->getSequence();
auto rpnMidiBuffer = juce::MidiRPNGenerator::generate(1, 2, 33);
for (auto mess : rpnMidiBuffer)
sequence.addControllerEvent(1.25f, mess.getMessage().getControllerNumber(), mess.getMessage().getControllerValue(), nullptr);
This is the way I parse the message within a plugin’s applyToBuffer method:
if (auto* mma = fc.bufferForMidiMessages)
{
for (auto mm : *mma)
{
if (mm.isController())
{
auto ts = mm.getTimeStamp();
bool isRpnMessageComplete = rpnDetector.parseControllerMessage(mm.getChannel(), mm.getControllerNumber(), mm.getControllerValue(), rpnMessage);
if (isRpnMessageComplete)
{
DBG("cc mess --------------------------- @ " << ts ) ;
DBG("channel " << rpnMessage.channel);
DBG("num " << rpnMessage.parameterNumber);
DBG("val " << rpnMessage.value);
rpnDetector.reset();
}
}
The output I’m getting is :
cc mess --------------------------- @ 0.0110631
channel 1
num 0
val 0
cc mess --------------------------- @ 0.00253698
channel 1
num 0
val 0
...
Any idea what I’m doing wrong?