Add support for sending Midi CCs out of VST3 plugins

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 :slight_smile:

Or is it better to ask for forgiveness than permission :thinking:

There’s kind of two threads going about the same discussion, please see this, I may have posted it in the wrong discussion:

On one hand yes, on the other one, when I am about to build my fortune on basis of a project I might have to scrap just because of a take-down notice…

Everybody needs to make their own mind, both are valid views.

I’m merely playing the role of devil’s advocate here :stuck_out_tongue:

I too would think long and hard before using them on a commercial project. At the very least, I would be sure to a plan B ready just in case!

1 Like

Maybe :slight_smile:

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 @stephenk here, 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.

3 Likes

@jules any information about the JUCE team’s plans to address this issue would be greatly appreciated.

2 Likes

VST3 plugins built with JUCE 6 will understand LegacyMidiCCOutEvents:

3 Likes

Awesome news!!! Thanks @reuk

That’s great news! Any chance juce6 will also provide access to multiple vst3 and AU3 midi ports?

If you had previously voted for this topic in the Feature Requests category you can now use your votes elsewhere.

what?

@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.

When I was testing the CC-out functionality I think I used Reaper, so that should definitely work.

Ah thanks, yup, it does work in Reaper. Hopefully the other DAWs catch up at some point :sob:

@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 hosted plugin 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.

Thanks for raising this. This issue should be fixed as of this commit:

1 Like

Wow, that was fast! :slight_smile: Thanks @reuk.