There is not much JUCE can do about poor midi support in VST3. Steinberg screwed that up with VST3. They tried to patch it up a bit a few years ago with that legacyOut feature-add, but as noted, not all hosts are aware of that or supporting that. There are other problems with VST3 midi also that I won’t get into now. Suffice it to say that Steinberg does not believe that VST plugins should be used for midi plugins. They don’t even feel VST2 should have been used for that and they say publicly that people who make VST2 midi plugins are simply exploiting the fact that it can be done but in their view its not what VST is intended for and make no promises about it. Their view is that VST is an audio plugin standard, not midi.
The only real support for MIDI in VST3, according to their philosophy, is for accepting midi data for instrument plugins. But midi out, they see not point, pur4pose or reason to even talk about it. they don’t view that as being “proper” use of VST. I’m not making this up, that is their official viewpoint.
In VST2, many people have gotten away with making midi plugins because of the way the API works, you get the midi buffer to play with inside your plugin. IN VST3, they have reduced that midi buffer to only notes. So you can play with notes-only in a VST3 plugin, but when you start talking about all other midi event types, such as CC, PitchBend, etc… those are not in the midi buffer at all…and Steinberg does not feel it should be. They feel that all of those things should be converted by the host into “parameters” and that the plugin can access those parameters, in a similar way as it would access automation parameters; and then use that information however you want in your plugin to effect the audio, but outputting any of that midi is not the intention for VST plugins according to Steinberg and they refuse to support it.
They came out with the legacyCCOut thing relatively recently as a way to get CC messages out because people were screaming about it and somehow someone must have gotten past their defiant attitude enough to convince them to support it, so that added the ability for a plugin to output CC, but the host has to call that special callback function in order to do it. if that host doesn’t do it, then you can’t get CC’s out of a VST3 plugin.
So bottom line, if you have a license for VST2, I would not bother messing around with VST3 midi. Its way too broken and Steinberg doesn’t wish to fix it, as I said, they don’t view midi processing as the purpose of VST.
If you don’t have a VST2 license, well then officially, you can’t really make a VST midi plugin that works reliably today. Simple as that. Sorry to bear the bad news, but that is all how it is today in 2020.