Not Even The Examples Work

Max Mojave 10.14.16
Xcode 11.3.1
JUCE v6.0.5

Last night, I tried for 3 hours to get JUCE to compile a simple button and only got errors and crashes. So today, I thought I would try JUCE’s own examples to see if even they work.
(Note that I didn’t alter these files at all. I just built them).

The Noise Gate vst isn’t even recognised by my DAW (FL Studio). Nothing shows up when I search for it.
The Gain Slider worked.
When I try to build the MidiLogger, I get the error “‘pluginterfaces/vst2.x/aeffect.h’ file not found” on juce_VST_Wrapper.cpp

I literally did nothing to these but build them and they won’t even work. How are you supposed to make things with this framework if it can’t even load the included examples?

Might want to give some more details so someone can help. The plug interfaces item seems to be pointing to the idea that you tried to compile a VST2, which of course you can’t without the SDK.

What other details do you need? I downloaded JUCE v6.0.5 on my Mac Mojave 10.14.16, opened up the included example MidiLogger, saved it and opened it up in Xcode 11.3.1, built it in Xcode, and I got that error message.

Or, I downloaded JUCE v6.0.5 on my Mac Mojave 10.14.16, opened up the included example Noise Gate, saved it and opened it up in Xcode 11.3.1, built it in Xcode, and my DAW couldn’t recognise it (FL Studio, though I think that’s irrelevant to not being able to build code).

Last night, I was getting similar error messages despite only checking “VST (Legacy)” for my plugin type. It’s impossible to compile something without errors it seems unless you spend 5 hours googling and troubleshooting because not everything is included in the JUCE framework?

The VST2 SDK had to be removed for legal changes in the License agreement.
Before October 2019 JUCE was allowed to bundle VST2 so all worked out of the box.

Since building and deploying VST2 plugins requires a special agreement with Steinberg (which you cannot get any more), you need to supply the VST2 SDK yourself.

See this thread:

Yes, I read that last night. And I even switched JUCE_VST3_CAN_REPLACE_VST2 to 0, and to 1, with no success.

Regardless, my question is how do I simply get the out of the box examples to work. There is a serious problem if the included examples, with which to learn, don’t even work.

If you’re on Mac then go with Audio Unit out the gate to get comfortable, it’s the most consistent.

If you’re on windows then VST3 – it’s not VST3 can replace VST2 – you can’t build VST2 at all unless you have the proper SDKs yourself.

1 Like

That’s good advise. Just to add: you don’t need (shouldn’t) supply a VST3 SDK path, all you need is included in JUCE.
You should only supply a VST2 SDK path if you actually have the suitable SDK.
And don’t activate VST(legacy) nor VST3_CAN_REPALCE_VST2, if you haven’t the VST2 SDK.

3 Likes

So VST Legacy is causing issues? How do I make VSTs? I have trouble loading up Audio Units but .vst files are usually easy breezy.

If you didn’t get a coutersigned license agreement from Steinberg two years ago, you will no longer be able to create vsts legally. With a little digging you might be able to source the old sources though.

Most hosts are now able to run VST3 without problems too.

Getting the built plugins to work in hosts on Mac Os can be an issue in the OS itself, you might need to do stuff like restart the whole OS or run some special script in order for the plugins to be recognized in the hosts.

1 Like

Good point @xenakios, here is the posting in question:

Still valid and necessary when creating/adding a new plugin

So the problem is VSTs specifically? So the only option for me, someone who wants to learn this, is to use strictly audio units? Because if I try to build a VST (VST, VST2, VST3), it won’t work due to Steinberg’s licensing agreements?

And by using only audio units I can get around this nonsense and have these included examples working?

No, that’s a misunderstanding.
VST2 was also called VST, afaik that never existed in parallel. Only in distinction to VST3 people speak of VST2.
TL;DR:

  • VST2 (aka VST) was removed from the market 2018, only legacy products can still be sold with said license agreement
  • VST3 should work just fine. Only for your own safety (future proofing) you should seek to get the VST3 license agreement signed from Steinberg.
1 Like

However, unfortunately Juce added the option to keep compatibility with VST2 for the VST3 builds…And that will require the VST2 headers to be present. That can be turned off and hopefully is now turned off by default, but maybe there are still remnants of that still around in Juce.

1 Like

Ok, so I’m learning quite a bit - thank you all.

So one of my problems can be solved by making, for the time being, strictly Audio Units (since the header for VST3 still calls VST2).
What about the missing .h file for MidiLogger? What’s that about?

Are you referring to ‘pluginterfaces/vst2.x/aeffect.h’? If so, that is directly related to VST2, and is ‘missing’ because it no longer comes in one of the JUCE folders (or, as someone said above, you have not included the VST2 SDK in your Projucer settings).

If that is true and I were in your situation, I would nuke the copy of JUCE, download it again, and try the projects without changing anything.

I just opened the Projucer (I haven’t seen how it works with the demos before so I might be missing something) on mac (which does not currently have FL installed) - I did not change anything and the project compiled a VST3.

BTW - I would not shy away from VST3 (FL does support the format, IIRC). What version of FL are you using?

So I did delete, redownload, open and run without changing anything - that’s when I get the error messages. I haven’t changed a thing but they come with errors by default it seems.

I have the second latest. Haven’t updated FL yet from the previous version.

Ok, that is surprising, but there are a couple of other things that may help. I can’t tell if you have done these or not.

  1. Download JUCE from Github and build Projucer from the master branch. Then start trying things out as you did before. If that doesn’t work, try the dev branch. You can find the repository here > JUCE.

  2. Try using Reaper rather than FL to see if there are still problems. On Mac, Reaper works with AU and VST3 (also VST2, but that is not relevant here). You can find it here > Reaper.

At this point, since this is a seemingly uncommon problem, narrowing it down may help folks on the forum understand where the problem may really be. You may also want to take screen shots of the error messages and post them - sometimes there are things that may not be obvious which someone else may see and understand.