Improvements to TAAE in version 1.4.8
I've just released version 1.4.8 of The Amazing Audio Engine, and thought I'd let you know about two main changes.
Audio Unit Filter/Channel Updates
I've refactored initialization of AEAudioUnitFilter and AEAudioUnitChannel; it's no longer necessary to pass in a reference to AEAudioController. If you're using either class, you'll get a build error until you update the init call. Easy update, though, and both classes are now more robust.
There's a significant change in the way Measurement Mode is handled when audio input is coming through the built-in microphone. We discovered recently that an iPad Air 2 bug causes playthrough latency to be extremely high unless Measurement Mode is enabled.
You can enable Measurement Mode in TAAE by setting useMeasurementMode to YES. I recommend it, as it resolves the latency problem - and boosts the bass response too.
However, because Measurement Mode disables iOS's automatic gain control, input gain through the built-in mic is very low, even with the input gain setting at max. Previous versions of TAAE simply disabled Measurement Mode with the built-in mic for this reason, but the iPad Air 2 latency bug means this is no longer the right call.
So now TAAE will automatically boost the incoming signal by a factor of about 20dB when in Measurement Mode with the built-in mic, unless you set the boostBuiltInMicGainInMeasurementMode property to NO. This is an attempt to approximate the same power levels. Of course, it's a bit of a hack as it's not proper auto gain, and the value was determined entirely experimentally, but it seems to work fine, and the bass response is really nice. Be sure to check out the inputGain property, too, which operates independently of the aforementioned boost.
Feedback is very welcome.
As always, you can get the update via CocoaPods, or from GitHub.
Other stuff coming soon
There're a couple of exciting things in the works: Jeremy Huff and Ryan King of Hello World Engineering have been working on a streaming replacement for AEAudioFilePlayer which I'll be merging in soon. I've been wanting to replace the memory-heavy AEAudioFilePlayer for ages, so this is very welcome. Stay tuned.
Also, Steve Rubin's put together an OS X port of TAAE which is currently sitting in a feature branch. It's waiting for audio input support and a working sample app, but once that's done, TAAE will officially support the Mac!
Happy audio programming!