Two Audio Units with the same View class. Only one shows in DAW.
Two Audio Units with the same View class. Only one shows in DAW.
- Subject: Two Audio Units with the same View class. Only one shows in DAW.
- From: "Jeff McClintock" <email@hidden>
- Date: Tue, 28 Nov 2017 11:59:34 +1300
- Organization: SynthEdit ltd
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