I think a matrix mixer should be able to do this. Here is an old post on the topic.
For your case I think you'd need to first set up the elements and formats:
Set the number of input elements to 1
Set the format for the single input element to 4 channels
Set the number of output elements to 4
Set the format on output elements 0-3 to mono
Then set the gains:
Set the master gain to 1.0
Set the input gain for each input channel on the input element to 1.0
Set the output gain for each output channel to 1.0
Set the crosspoint gains to 1.0 on the following elements: ((0 << 16) | 0), ((1 << 16) | 1) , ((2 << 16) | 2) ,((3 << 16) | 3)
In the end I think you'd end up with the following non-zero values in the 5x5 array of matrix levels (kAudioUnitProperty_MatrixLevels):
// Crosspoint gains
[0][0] = 1.0
[1][1] = 1.0
[2][2] = 1.0
[3][3] = 1.0
// Input gains
[0][4] = 1.0
[1][4] = 1.0
[2][4] = 1.0
[3][4] = 1.0
// Output gains
[4][0] = 1.0
[4][1] = 1.0
[4][2] = 1.0
[4][3] = 1.0
// Global gain
[4][4] = 1.0
It's been a few years since I've looked at this, but hopefully this might help.
Topic:
Media Technologies
SubTopic:
Audio
Tags: