AUv3Synth demo - OS X host?


#1

Hi guys,

What AUv3 compatible host have you been using internally to test the AUv3Synth demo on OS X? Logic Pro X 10.2.2 doesn’t seem to support AUv3 yet…?

Also, what are the correct installation paths for the built (OS X) demo files?

AUv3Synth.app
AUv3Synth.appex
AUv3Synth.framework
/Library/Audio/Plug-Ins/VST/ AUv3Synth.vst (alias)
/Library/Audio/Plug-Ins/VST3/ AUv3Synth.vst3 (alias)


#2
  1. Well unfortunately there aren’t any real good third-party AUv3 hosts on OS X atm. You can use JUCE’s “audio plugin host” example project in the examples folder to load AUv3s and auval also supports AUv3s. I’ve also found this [open-source AUv3 host] (https://github.com/vgorloff/AUHost) which didn’t immedietly compile for me though (I needed to comment out a line which was causing crashes - also make sure to use the develop branch).

  2. The AUv3 does not need to be in any specific location. The OS will find the appex automatically inside the wrapper app (AUv3Synth.app) once the wrapper app has been registered by OS X’s launch services. You can force the registration of the wrapper app by simply launching the wrapper app from the Finder or running it from XCode.

Let me know if this solve’s your problem.


#3

I was able to get it to load in the juce demo host.

Ableton doesn’t seem to load either the au3 (no surprise) or the VST version.
It should, of course, be able to see the VST version, so I’m not sure what’s going on there.


#4

Thanks Fabian, I had previously tried to get it running in the JUCE audio plugin host, but didn’t realise that it was launching the .app which registers the AU Extension with the OS. I’ve got it running now.

Am I correct in thinking that when using the audio plugin host, the AUv3Synth plugin runs in the host thread and not as a sandboxed process? Is there a specific reason for this?


#5

Hi will, AUv3s always run in a sandboxed process, i.e. it’s not running in the host process. Check ‘ps -A’ in the terminal and you will see the AUv3Synth process running when you load the AUv3Synth in the host.


#6

Thanks @fabian, I had fooled myself - in my original trouble getting audio plugin host to see AUv3Synth, I tried building AUv3Synth as a regular old AU component. It was that version which I was successfully running in audio plugin host, hence the sandboxing confusion!

The trouble is… now I’m back to being unable to get AUv3Synth to show up in audio plugin host at all.

Re: “AUv3s will always run in a sandboxed process”. Apparently on OS X this is optional - https://developer.apple.com/videos/play/wwdc2015/508/?time=1050 @ 17:35 - there’s a host flag kAudioComponentInstantiation_LoadInProcess and an extension plist entry AudioComponentBundle if you (really) want to run the plugin within the host thread (for performance reasons).


#7

Can you see it in auval? Also, it’s super important that your AUv3 wrapper app has the Sandbox capability ticked. The projucer should do this automatically for you. But you will probably need to have a Mac Developer account and specify your developer team id in the projucer. If the wrapper app is not properly sandboxed then the AUv3 will not register.

I’ve seen the kAudioComponentInstantiation_LoadInProcess flag - but I could only get it to work if the AUv3 appex bundle was inside the host apps bundle and the AUv3 had a child bundle id of the host app (for example: com.roli.auv3host.auv3filter and com.roli.auv3host - the projucer automatically does this latter for the wrapper app and the appex bundle ids, for example). This limits the loading of AUv3 plug-ins to non third-party plug-ins only - which is not very useful. However, the Apple documentation does not mention any of this so it could be a JUCE bug.


#8

No, despite my best attempts I can’t get auval to see it.

[quote]
Also, it’s super important that your AUv3 wrapper app has the Sandbox capability ticked.[/quote]
Where does one “tick” sandboxing for the .app target?

I don’t have a paid up Apple Developer account (so I don’t think I’m able to generate signing identities). Is this obligatory for building functional AUv3s :expressionless:?


#9

Searching “sandbox” in the Console revealed that it’s definitely the issue. Lots of entries like:

12/04/2016 23:56:32.380 pkd[291]: ignoring mis-configured plug-in at ~/SDKs/juce/examples/AUv3Synth/Builds/MacOSX/build/Debug/AUv3Synth.app/Contents/PlugIns/AUv3Synth.appex: plug-ins must be sandboxed

So do I have to bite the bullet and give Apple $100 to proceed?


#10

I’m not sure if you need a dev account for sandboxing to work. The projucer should automatically enable sandboxing of the appex. Click on the project icon in the project tree in Xcode. Then, on the right, you should see build settings, build phases, etc. Select “PowerSynth (AUv3)” from the target popup menu at the top to see the build settings, build phases for that target. You should now see a “Capabilities” tab. Click on that tab and check if Sand box is enabled. Sometimes there will be a fix issues button there as well.


#11

No you don’t.

There shouldn’t be one, the Projucer should generate the project automatically such that the build settings look like this:

If that’s not the case, it’s possibly a bug in the Projucer, in this case please let us know.