As you know, VST3 plugins don’t receive MIDI directly. They receive events (such as kNoteOnEvent events), and these events cannot and do not include MIDI CC messages, like sustain pedal messages.
In the VST3 spec, you’re supposed to query for an IMidiMapping interface, and then use this interface to map MIDI CC messages to VST3 parameters, and then automate those parameters. It seems simple enough, but JUCE doesn’t seem to provide the IMidiMapping interface, and it also doesn’t seem to provide the IPluginFactory required to search for the IMidiMapping interface.
I’ve tried using getPlatformSpecificData() to get an IComponent* and querying for IMidiMapping_iid and IPluginFactory_iid, and that didn’t work. Looking at the code, queryInterface() only returns the various interfaces that the “component” member might support.
Is there any way to do this? It seems like MIDI controller support is so fundamental to hosting a VST3, there must be a way I’m overlooking. I’d appreciate your help. Thanks!