Multiple VoiceProcessingIO AudioUnits

Is it recommended to only use one AudioUnit for both input and output? GStreamer makes this really hard and I am trying to use two AudioUnits with subtype = kAudioUnitSubType_VoiceProcessingIO. However, the volume of the audio output is very quiet and I am wondering if that has to do with the multiple AudioUnit objects.

Replies

It is interesting to know that using two Output Type audio units is actually tolerated!


Did you look at the AGC property of kAudioUnitSubType_VoiceProcessingIO ? You might want to turn it off (on by default). Can't think of how it'll handle two outputs

Did you manage to work with multiple audiounits ?

I wonder if I can have voiceprocessing audiounit for Microphone and remoteIO audiounit for Speaker

@zvba : You can't have a voiceprocessing audiounit with remoteIO. One major reason is that VPIO requires specific AVAudioSession Category/Modes which are not the ones you can use with remoteIO. I had the chance to talk with CoreAudio developpers on this at WWDC.

This won't get any better with the new AVAudioEngine support for VPIO (which I think uses the good old APIs under the hood).

A nice solution would be to have enough controls over VPIO to get what we want. All this, for an undetermined future... .