No Pitch Wheel Output with MidiBuffer

I cannot get any Pitch Wheel output from my Midi Effect VST 3 using JUCE. I attempt to add the pitchWheel message upon any input Midi Message, using a similar way according to the “Modifying MIDI Notes” section according to the official JUCE tutorial.

The test code below should create a random midi note, along with a random pitch bend value, upon every incoming message. Upon running this in Ableton and Bitwig, both creates the cluster of midi on messages, each with random velocities. Though, absolutely no pitch messages.

void XenMidiRetunerAudioProcessor::processBlock (AudioBuffer<float>& buffer, MidiBuffer& midiMessages)
{
    buffer.clear();

    MidiBuffer processedMidi;
    int time;
    MidiMessage m;

    for (MidiBuffer::Iterator i (midiMessages); i.getNextEvent (m, time);)
    {
        // No pitch messages outputted?!?
        processedMidi.addEvent(MidiMessage::pitchWheel(m.getChannel(), random(0,16383)), time);
        // Note messages clearly are present
        processedMidi.addEvent(MidiMessage::noteOn(m.getChannel(), random(0,100), (uint8)random(0,100)), time);
    }

    midiMessages.swapWith(processedMidi);
}

No pitch data is also present when sending out an event with a constant value.

Is there something I’m missing?

VST3s cannot send MIDI CCs or Pitch Bend - at least not in the standard fashion. It’s up to the host to somehow route them, unlike the way VST2’s worked. There are numerous threads on this here, here’s one of them that is hosting an interesting discussion last few days:

1 Like

Wow, I never knew VST3 entirely dropped MIDI CC! Thats certainly unfortunate! Thank you for quickly referencing me that thread! I was searching around for a solution to my issue, but I never ran across any thread discussing the VST3’s missing support for MIDI CC.