Add support for sending Midi CCs out of VST3 plugins

@Dewdman42 Man you write long posts :wink:

Here are a few quotes from the EU Directive on the legal protection of computer programs for you:

From article 1, section 2:

Ideas and principles which underlie any element of a computer program, including those which underlie its interfaces, are not protected by copyright under this Directive.

Going back to preamble 10, we see that they are not talking about GUIs here, but software component interfaces:

The parts of the program which provide for [ā€¦] interconnection and interaction between elements of software and hardware are generally known as ā€˜interfacesā€™.

Furthermore, article 5 section 3 says that:

The person having a right to use a copy of a computer program shall be entitled, without the authorisation of the rightholder, to observe, study or test the functioning of the program in order to determine the ideas and principles which underlie any element of the program if he does so while performing any of the acts of loading, displaying, running, transmitting or storing the program which he is entitled to do.

And there you have it. I may not have a law degree, but I honestly think this is a pretty clear cut case.

The entire directive is available here: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32009L0024&from=EN

1 Like

@ Dewdman42. Sorry, can I quickly ask, how did you get those drop down bullet points in your post?

In the toolbar there is a gear icon on the right, and one of the tags is called ā€œHide Detailsā€

1 Like

@Dewdman42 Man you write long posts :wink:

I know, Iā€™m cursed that way. Being able to type at least as fast I can talk doesnā€™t help.

So anyway, regarding the EU stuff quotedā€¦the question I still have is whether any of the symbol names are the same in reverse engineered headersā€¦and if soā€¦does that go beyond simple binary level interfacing?

I donā€™t know. But after reading the directive I feel pretty convinced the FST approach is legally sound.

Wouldnā€™t claiming copyright to individual symbol names be a bit like claiming copyright to words in a natural language?

Personally, I would like to own the word ā€œStrawberryā€ and decide that no one else can use it without my permission from now on.

I like strawberriesā€¦

how about a unique word like supercalifragilisticexpialidocious?

That oneā€™s mine! I used it in a song I wrote yesterday.

2 Likes

If any of you do go down the route of reverse engineering it, in the same way the IEM guys did, please consider giving it a permissive license :wink:

2 Likes

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