My host needs to call an AUv3 Extension's AURenderBlock without using an AUGraph or AVAudioEngine.
Instantiating the AU and getting its viewController works fine; but when I call the AURenderBlock I get kAudioUnitErr_Uninitialized. I guess I need to manually initialise the AU.
How do I do this?
[AVAudioUnit instantiateWithComponentDescription:AVUnit.audioComponentDescription options:options completionHandler:^(AVAudioUnit* avAudioUnit, NSError* error) {
AU = avAudioUnit.AUAudioUnit;
//AudioUnitInitialize( avAudioUnit.audioUnit ); <-- this does not work
// open the GUI for the plugin, this works without an issue
[AU requestViewControllerWithCompletionHandler:^(AUViewControllerBase* AUviewController) {
pluginViewController = AUviewController;
}];
audioUnitRenderBlock = AU.renderBlock;
}];
If you're not using the engine you don't really even need to use AVAudioUnit. Use AUAudioUnit, call the factory + instantiateWithComponentDescription: options: completionHandler: then call allocateRenderResourcesAndReturnError: to initialize the AUv3.
regards,
edward
|