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]
