So I’ve been reading up more about the VST3 midi problem. Gaining a better understanding since I can’t get a VST2 license.
What I understand is that VST3 basically is anti-midi.
CC’s are not sent into VST3 plugins through the normal midi buffer. Only notes. CC can’t be generated and sent at all. Many people complained.
Steinberg issued a small update with an extra CC legacy function that can be used to send CC events, this was added to VST3, however such a thing would be not ideal for JUCE because we basically want the JUCE api to be the same across VST2, VST3, AU, etc.
VST3 only gains access to incoming CC midi events by assuming the host will place CC’s into a separate area of parameters which can be accessed from inside the plugin, when using VST3 directly. Again, this would be outside the scope of what should be done with JUCE because we want the API to be common with the other plugin formats.
Also this hack around that people are using in VST3 to handle CC incoming midi, has many downsides… But one of the downsides not mentioned often is that the serial ordering of CC events intermixed with note events can be lost for any given process block window of time, or perhaps per timestamp. For example if you have cc-note-cc-note-cc-note on the same timestamp (or perhaps within same process block), then what comes into VST3 plugin is one parameter value for the last CC message received in that time window, and then three midi notes, which should be in proper order in the buffer with the same timestamp. But the additional CC messages are lost and even if they weren’t lost, there is no way to interleave them back in between the notes before handling by the instrument.
In short, VST3 is fundamentally problematic… midi-in is broken, midi-out is only available through a special added function from Steinberg last year that would be a VST3-only thing, not desirable for JUCE use.
I would like some clarity about what exactly JUCE is doing in order to handle midi in VST3 instrument and midi plugins?
I am more and more of the opinion I may have to take my chances releasing VST2 midi plugins even though I don’t have a signed license. I don’t see any other way fgrankly because the timing issues mentioned above are critical for what I want to do. Steinberg has been very short sighted with VST3, even recently I see their devs arguing with 3rd party devs on the SDK forum.