Inter-App Audio node session interruptions

Originator:michael
Number:rdar://18793520 Date Originated:28-Oct-2014 07:23 PM
Status:Behaves correctly Resolved:03-Jun-2015 06:30 AM
Product:iOS Product Version:
Classification:Serious bug Reproducible:Sometimes
 
Summary:
While an Inter-App Audio session is active, launching any audio app (from the home screen) that attempts to enable AVAudioSessionModeMeasurement results in the Inter-App Audio node's audio engine being frozen, causing the most recent buffer to be repeated indefinitely.

This continues until either (a) the launched audio app is closed via the multitasking menu, or (b) the Inter-App Audio node app is brought to the foreground.

Steps to Reproduce:
1. Open an Inter-App Audio host (such as GarageBand or Audioshare)
2. Host an Inter-App Audio node (such as Figure), and set it up to play a continuous sound
3. Press the Home button, and launch an audio app that uses Measurement Mode, such as Echo Pad, Crystalline, Swoopster, Stereo Designer, AUFX:Space, AUFX:Dub

Expected Results:
Inter-App Audio session audio continues unmolested; new app's audio is audible.

Actual Results:
Inter-App Audio session is frozen, repeating the most recent buffer continually.

Version:
Reproduced on iOS 8.1. Not reproducible on iOS 7.

Notes:
Note that there are some Inter-App Audio node apps, such as ThumbJam, with which this problem cannot be reproduced, and audio continues unaffected. This is because these apps' Inter-App Audio support is provided by the Audiobus SDK, using 'ABSenderPortSend' (http://goo.gl/zOZgKK) instead of providing a reference to the main app audio unit. In this mode, Audiobus creates its own secondary IO audio unit which is hosted. It is surmised that this bug does not interfere with the secondary audio unit.

Note that launching apps that use AVAudioSessionModeMeasurement from within an IAA host app (launching them into the background via IAA, rather than launching them from the home screen) does not result in frozen audio.

This bug presents very serious problems for Audiobus, as apps are added to Audiobus sessions by launching them outside of Inter-App Audio, then hosting them upon launch. We do this to avoid issue 18793517 (Background-launched IAA nodes do not appear in multitasking menu).

Configuration:
Reproduced on an iPad 3 WiFi, and an iPad Mini

Attachments:

Comments

03-Jun-2015 06:30 AM

Engineering has determined that this issue behaves as intended.

We are now closing this bug report.

If you just have questions about the resolution, then please update your bug report with that information so we can respond.

22-Dec-2014 12:56 PM

Some new information:

It turns out, it is not exclusively AVAudioSessionModeMeasurement that causes this issue. Here are the three causes I have found so far (reproduce by doing one of the following from a third app, while there is an IAA session in progress):

  1. Enable AVAudioSessionModeMeasurement after calling setActive on the audio session (see AudioTest+MeasurementMode.zip)
  2. Create/init an audio unit prior to setting the AVAudioSession session category (with MixWithOthers) flag (see AudioTest+AudioSessionSetup.zip)
  3. Call the audio session's setCategory method twice with PlayAndRecord and AVAudioSessionCategoryOptionAllowBluetooth: once before setActive, and once after (see AudioTest+SetCategoryWithBluetoothAudio.zip) 'AudioTest+AudioSessionSetupOrder.zip', 'AudioTest+MeasurementMode.zip' and 'AudioTest+SetCategoryWithBluetoothAudio.zip' were successfully uploaded.

Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!