Re: Two Audio Units with the same View class. Only one shows in DAW.
Re: Two Audio Units with the same View class. Only one shows in DAW.
- Subject: Re: Two Audio Units with the same View class. Only one shows in DAW.
- From: Admiral Quality <email@hidden>
- Date: Mon, 27 Nov 2017 18:06:58 -0500
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@hidden> 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@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden