Correct way to do multichannel out?

See question here - http://stackoverflow.com/questions/38707855/what-is-the-correct-audio-format-for-ios-multichannel-output

From poking around this forum, I found some indications that maybe AUMatrixMixer is the way to go for this? My guess is that I'm sending audio out multiple channels of a single output bus, while the hardware is expecting multiple buses instead. Does anyone have experience with this? Thanks.

Comments

  • Nope, you were right the first time: multichannel audio is simply that - e.g. an AudioBufferList of non-interleaved audio would have mNumberBuffers == the number of output channels. Buses are completely different entities, unrelated to audio channels.

  • Thanks for the response! I am finding that, for certain audio interfaces, I am able to get the audio channels running out all of the multiple outputs using a kAudioUnitSubType_MultiChannelMixer audio unit, but NOT with TAAE. This is perplexing since it's only specific to some interfaces (others work with both kAudioUnitSubType_MultiChannelMixer and with TAAE), and I know that TAAE uses kAudioUnitSubType_MultiChannelMixer under the hood.

    So it's either something that TAAE is doing or something that I'm doing with TAAE that is causing channels 3+ to get muted out. I'm going to run some more tests today and will report back with any findings.

  • Alright, looks like this was a tricky combination of my bug mixed with a TAAE bug. See https://github.com/TheAmazingAudioEngine/TheAmazingAudioEngine/issues/245

    I'm not using AEAudioFileLoaderOperation, but I used some of that code within my own class. The audio interface I have the issue with has 14 outputs, so it would crash whenever I plugged it in and it tried to reinitialize everything for 14 channels. Upon restarting, other unrelated bugs would initialize the system for <8 outputs.

  • Argh, ouch. Thanks for pointing that out, fixed.

  • As you've pointed out, TAAE does indeed use the MultiChannelMixer, which only supports 2 channels. TAAE 2 doesn't have that limitation.

  • Actually, the multichannel mixer can support an number of output channels, just not any number of buses. This is what tripped me up when I saw that you were trying to work the matrix mixer into TAAE. I'm currently running TAAE with multiple outs, and it's working fine.

    From AUComponent.h:

    "@constant kAudioUnitSubType_MultiChannelMixer
    Can have any number of inputs, with any number of channels on any input to one
    output bus with any number of channels."

  • Oh! Wow, I didn't know that! I wonder if that's changed recently or I was just always wrong...

Sign In or Register to comment.