VST3 - Am I missing something?


#1

Hey all,

I've installed the latest VST3 SDK and set the directory path in the Introjucer accordingly. Checking the "Build VST" in the Introjucer & running the build in Xcode succeeds, but I only end up with an AU .component in the builds folder.

Shouldn't the .component & .vst files be available under the "Products" tab at the lower left corner in Xcode? I only have the .component. Do I have to manually add the vst product?

Also in the build report (attached) it seems as thought the vst isn't being linked.

 

Running Xcode 5.0.2 on OSX 10.9 with JUCE 3.0.

Many thanks!

 

Muir

 


#2

Not sure if this helps, but I was seeing a similar problem.  What I did was duplicate the target, went to 'build settings' tab, and changed 'wrapper extension' from 'component' to 'vst' and it seemed to work.


#3

Great tip about duplicating targets! Glad to have stumbled upon that function.

I tried this & the vst still doesn't show up. Perhaps I got it wrong (see attached screenshot). Wouldn't this only change the package extension from .component to .vst (while still really being an AU)?

Is there anything else I missed?

 


#4

Got it!

I just had to set the info.plist file to, well, "info.plist" and also select the target from the top left corner. Thanks so much for the tip!

I also discovered the trick to have both targets built with one command (set one as a target dependancy in the other target's "Build Phase" settings).

Still a bit taken back that changing the Wrapper Extension to vst worked (but I suppose that indicates something more is happening <Xcode novice>). Should hunker down and look up the documentation on that one.

Tried the vst in Ableton and works like a charm!

 

Now onward to conquer Windows VST..

 


#5

A post-build script gets generated that should copy the .component file to the VST/RTAS folders and rename it appropriately.

Essentially, the way it's intended to work is that a single bundle gets built which functions as all the different formats, and you can just copy/rename/create links to it to make it behave as the different versions.


#6

Thank you Jules.  As a side note, also thank you for the attention you put into JUCE.  I just got into it and wish I had tried it earlier. Other similar libraries/toolkits that I have tried seem to be behind the curve in terms of staying current with development tool IDEs.  (I am running under 10.9.1, Xcode 5.0.2).  Since I code as a hobby — mostly just to fill in gaps with plugins I need but can’t find in the wild — I was amazed to be able to get a few simple plugins running from scratch with virtually no Xcode trickery after just a bit of time of poking around the API guide and forum. 


#7

Ahh, so the binary within the bundle is sort of a polymorphic type? That's bananas!

I also would like to thank you, Jules, for the work you put into juce! I've turned on many of my colleagues to the library & one of my professors (who created RackAFX—A C++ plug-in helper IDE) is looking to put a chapter on it in his next book. Also both the undergrad & graduate gold-award recepients for the 2013 AES convention's student design competition in NYC were built with juce. Fantastic stuff!


#8

Ah, I think I found the issue of my original problem.

In the post-build script, the vst bundle is copied to the user's library folder (~/Library/...) which got dropped somewhere between OSX 10.6.8 & 10.9. There's only one library directory at the root now (/Library/...). After getting rid of the tilde and setting the VST permissions to read/write for everyone, it worked!

echo "Copying to VST folder..."

  VST=/Library/Audio/Plug-Ins/VST/$PRODUCT_NAME.vst


#9

The User Library folder still exists… It’s now hidden by default. You can either hold down the Option modifier when opening the Go menu in Finder or change the default in terminal

chflags nohidden ~/Library/

Rail


#10

Thanks for your kind words, chaps!


#11

    


#12

Now why would Apple do that?? Thanks for the tip. Still odd it wasn't showing up in any of my DAWs or the JUCE Plug-In Host. Seems like they were only scanning the root library folder...