Can't parse a MidiRPNMessage

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?

I think when you use MidiList::addControllerEvent, the values should be in the range 0, 16383, so maybe shift them up by 7? I.e. mess.getMessage().getControllerValue() << 7,?