Audio Unit Extensions - multiple plugin instances

Hi


Will the Audio Unit Extensions framework for iOS provide us with a means of running multiple instances of a plugin? I accept this would only be a single instance loaded by iOS, but can somehow multiple audio channels and interfaces of the same effect be running at once and the host picks the right view for embedding? Or are we limited to only being able to have one instance of an effect at a time like now with IAA and AudioBus? Being able to use multiple effects of the same type in a single project would really be a strong capability for mobile (i.e. garage band being able to run two instances of the same third party instrument). As a third party vendor it is a stronger value proposition if your users can use more than one instance of what they have paid for at once and will really help the ecosystem grow if hosts aren't needing to lean so heavily on the internal effects for key things like quality synths, reverb and filtering.


Thanks

Matt

Replies

Hosts can run as many simultaneous AU instances as can be opened within the limits of system memory. Audio Units have been around for a very long time, since OS X 10.0 and iOS 2.0 but Audio Unit Extensions bring this plug-in model to both OS X El Capitan and iOS 9 via a completely new modern API (we've referred to it as the Version 3 Audio Unit API).


The WWDC 2015 video "Audio Unit Extensions" is the introduction to this technology: https://developer.apple.com/videos/wwdc/2015/?id=508

Can you comment on the limitation to 100MB of Ram per AU Extension on iOS? Will this be changed?

According to Core Audio engineering the memory limit imposed for AU Extensions on iOS is 300 MB for 32-bit devices and 360 MB on 64-bit devices. These are performance considerations as you can expect from iOS devices having limited shared resources.


Our publication team is working on some AUv3 documentation which we hope to have available shortly. As always, please file enhancement requests through the Apple Bug Reporting mechanism if you have feedback. It's an effective way to let Core Audio engineering know exactly what features are important to you.

Hi


Thanks, but this didn't really answer what I mean. On OS X it is possible to run multiple instances of the same plugin easily. LIke two of the same reverb on different channels. On iOS with the current mechanisms available to us for routing audio (audiobus/IAA) this is not possible as only once App instance can be loaded at once and a single App instance can only deal with one multichannel input/output path. Will AU 3 on iOS provide us with a way to run multiple instances of a plugin somehow? I did not take any information away from the WWDC video to suggest a yes or no to this relatively key question for a new audio API.


Thanks

Matt

Yes, as a host you can use as many AU instances that can be opened within the limits of system memory just like you currently can do on iOS 8 with Apple provided AUs. At about the 8min mark in the WWDC presentation, Doug discusses discovery (AudioComponentDescription / AudioUnitComponent / AVAudioUnitComponentManager) and instantiation (the AVAudioUnit class method instantiateWithComponentDescription using example host code that applies to both iOS and OS X. So, hope that helps - you should try it with the example code, this is not IAA.