Posts

Post not yet marked as solved
3 Replies
A mixer node can't make that conversion automatically, so you'll have to do it yourself. I've been back at this, and trying to do this myself. But I can't figure out how. Is there a way to insert a custom "conversion node" into the AVAudioEngine chain to handle this between the input node and the mixer? I have also tried putting a tap on the mixer's output, and thought I might be able to do some pointer math with the end result if the mixer has "failed" to convert correctly but the format on that tap's buffer reports that it has been able to convert to Int data, and the floatChannelData is nil. So I'm not sure how to detect that the conversion needs to be done, or where to get the float data that needs converting. I also wondered if I need to set up an extra AudioEngine, obtain the unconverted mic data from it's output, convert it to Int16, and then play it into a playerNode on the main engine? But that seems like it would be expensive, and sort of an awkward approach. Can you help get me started on how that conversion should happen?