Receive MIDI CC events: artificial parameters?

I’m converting my plugin from VST2 to VST3. It is building & running within Cubase … audio sounds great.

I want to get direct notification of MIDI CC events. I’ve read the VST3 documentation carefully and I understand that that is discouraged, and that plugins should instead expect to get parameter-change notifications (and those will happen only after a MIDI learn has been established).

My plugin manages its own MIDI-learning, and for a variety of reasons, I’ll need direct notification of MIDI events (CC, NRPN, PitchBend, Pressure,etc).

It appears that one way to accomplish this is for my plugin to define about 135 fake parameters, and create MIDI-learnings for them, and then the host will send parameter-change notifications to my plugin. My plugin can then treat those as CC/PitchBend/Pressure events (and may need to convert float 0-to-1 to integer).

Does that sound correct? Or is there another technique for a plugin to get notification of CC events within VST3 SDK?

can you tell us, why you think that you need the actual MIDI-CC events ? Have you seen the new IMidiLearn interface ?



the IMidiLearn is a nice addition, but I can’t seem to find a host that supports it, not even the latest Cubase 10.0.15,
so I’m not able to test the implementation.

Any idea when Cubase or the VST3 SDK’s VST3PluginTestHost may get this ?


Hi Lorcan,
you can test if a host implements this via the also new IPlugInterfaceSupport interface. And Cubase has this implemented since version 10.0.10.
You can checkout the NoteExpressionSynth in the SDK. It shows the usage of IMidiLearn.


Yes, thanks Arne, I did both and what I found was that (on Windows):

  • IPlugInterfaceSupport returns false for IMidiLearn
  • the NoteExpressionSynth mappings stay at pitch / modulation, even if I click enable learn and touch a knob

Going to try again tommorow, maybe I missed something.