This ^^ From my part I am actually going to be possibly doing my next project in VST3 SDK directly because JUCE doesn’t support multiple Event bus for VST3 (multiple midi ports). That is a key feature for me and so I guess I am going to be trying to do it directly in VST3 SDK.
That being said, I still have interest in developing midi plugins primarily, but honestly I don’t have it in me to attempt to reverse engineer anything. I will either use what’s out there and take my chances or do nothing at all. I’m not trying to make a million bucks on anything either, so I’m not too worried about it.
From what I can tell the LegacyCC midi out thing is up to DAW’s to implement support for that. Until they do, there is nothing that can be done with JUCE to support complete midi thru in VST3 I don’t think. This is an old elephant in the room. Steinberg didn’t think this through all the way 10 years ago and its too late now… When I email with Arne he just says, midi plugins are not supported by VST period. he says the fix is for all DAW’s to comply with VST3 spec. Which they don’t. So…it is what it is.
After all this talk, I would much rather that JUCE stepped up and complied with VST3 more fully so that we can move on. Set the standard. Hope for DAW’s to follow that lead. Without breaking VST2 if possible of course.
I’m not really sure which route I’m going to take…
I think I have exhausted all the possibilities now and the next thing I need to do is talk to a lawyer to figure out which one will land me in the least amount of trouble
I can confirm that, as of version 6.04, Reaper now supports VST3 plugins that output LegacyMidiCCOutEvents. After adding the hacks to juce_VST3Common.h suggested by @stephenkhere, I was able to create a VST3 with Juce that lets incoming CC messages pass through and can also generate and output new CC messages. Since LegacyMidiCCOutEvent is slowly but surely gaining acceptance among hosts (including the Juce AudioPluginHost), it would be nice if Juce added official support for it.
@reuk or @Dewdman42 do you know if there are any DAWs that actually support LegacyMIDICCOutEvents yet? Trying to test this functionality out but so far sending a pitch wheel MidiMessage from a JUCE6 VST3 does not seem accomplish anything in the host, at least not in Ableton or FL.
@reuk I think the addition of LegacyMIDICCOutEvents support broke MIDI CC input in some parts. For example polyphonic aftertouch messages (0xA) are now sent to a hostedplugin input event lists as LegacyMIDICCOutEvents (see juce_VST3Common.h, createVstEvent()). This is of course not understood by plugins, hence they do not react to polyphonic aftertouch.
To fix this I think it would be necessary to make a difference between converting a MIDI buffer to an event list if it’s an input event list or if it’s an output event list.