You might want to take a look at Symbiosis AU-VST. It does a great job
of wrapping, we use it in our plugins. Of course I'm not recommending
stealing his code, but you can take a look at it to see how he dealt
with the various challenges. It works either as a compiled-in or as a
stand-alone wrapper you can drop any VST into and configure with just
a couple of text files.

https://github.com/blurkk/symbiosis-au-vst-2

- Mike/AQ

On Mon, Nov 27, 2017 at 5:59 PM, Jeff McClintock <[email protected]> wrote:
> Hi All,
>
> I've written a wrapper to host my (non-AU) plugins in Audio Units.
>
> How it works is I built a single AU component (the "wrapper"), each target 
> plugin is placed in a copy of the AU wrapper bundle, and I edit the wrappers 
> "Info.plist" file to create (what looks like) a unique AU. My wrapper then 
> forwards all AU function calls to the target plugin ("wraps" it).
>
> This all works pretty well until I load two different wrapped plugins into 
> Ableton Live. Both plugins pass auval, both function OK as far as audio 
> processing, but I can only open the view of the first plugin loaded. The 
> other plugin refuses to show its view.
>
> Now, I realize Carbon has a "flat namespace" and auval warns me that "Class 
> 'SynthEditPluginCocoaView_1344' is implemented in (both components). One of 
> the two will be used. Which one is undefined."
>
> Correct me if I'm wrong, but I figured since both binaries are identical, 
> then both View classes are identical and it doesn’t matter that Cocoa will 
> use the same view class for both AUs.
>
> I placed breakpoints in the plugins, in the first plugin instance, Live calls 
> GetProperty(kAudioUnitProperty_CocoaUI) and displays the view, in the second 
> plugin, Live does not call this method, and does not instantiate the view 
> class nor hit any breakpoints in the [uiViewForAudioUnit: withsize] creation 
> function. It's like Live simply does not try to open the view.
>
> If I change my view class's name to make it unique, then rebuild and apply 
> the new wrapper to one of the two plugins, then both plugin views open OK. So 
> clearly there is some problem with having the same Cocoa class name in two 
> plugins. I just don't understand why this is a problem? (when the classes are 
> identical).
>
> Note: This wrapper is intended for non-techical end-users, I wish to avoid 
> having to rebuild the wrapper for each target "wrapped" plugin.
>
> Any hints appreciated.
>
> Jeff McClintock
>
>
>
>  _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Coreaudio-api mailing list      ([email protected])
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/coreaudio-api/aq%40admiralquality.com
>
> This email sent to [email protected]
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to