Problems with USB C audio on iPhone 16/iPad A16
TL;DR: Class-compliant USB-C audio on new iOS devices seems to be partly broken. I need help finding a fix.
Details:
I recently upgraded from my old iPhone 12 mini to a new iPhone 16, and I picked up an A16 iPad at the same time. For the most part, I am quite happy with my new devices, except for one aggravating issue: I cannot get full-duplex audio to work as expected over the USB C connection.
One of my hobbies is DJing, and I have a portable turntable that includes class-compliant audio interfaces to allow it to be used with digital vinyl systems (DVS) on a variety of hosts. When I connect the turntable to my Mac, the UAC interfaces for the input and output both show up in Audio MIDI Setup:
I am able to access the output audio from the turntable from my Mac (e.g. to monitor on speakers or record it) and play back audio from the computer through the turntable's speaker and headphone outputs, so I am confident that the turntable is working correctly.
Unfortunately, when I connect the turntable to my new iPhone, things start to get strange. My preferred DJ app is Tau DJ (it was working great with this turntable and my old iPhone). Tau DJ recognizes all of the MIDI commands from the turntable, and can play back audio from the phone to the turntable, but it is unable to detect any audio input from the turntable even though the hardware is detected. I also tried connecting an Apple USB C to USB A adapter to the iPhone with an A-to-C cable going to the turntable, which gave the same result (render yes, capture no).
Perplexed by this, I opened up GarageBand on the iPhone, which has no trouble accessing the audio input stream:
I thought there was a chance that settings copied over from my old phone to the new one could be reponsible for the Tau DJ app not working, so I installed a fresh copy on my iPad, and got exactly the same results (Tau DJ app can't capture, but GarageBand can).
Tau is a small app from an indie developer, so my next thought was to try Algoriddim's DJay since I thought that an app featured in several keynotes would be more likely to have all the latest changes to the audio subsystem/APIs incorporated. Unfortunately, I get the exact same behavior as I observed with Tau DJ: MIDI control and audio render work fine, audio capture is broken.
I've submitted a request for help with Algoriddim, and am still waiting for a response from them. I had a chat with the developer of Tau earlier this morning, and after we did a bit of experimentation, he came to the conclusion that this is an iOS issue, and said that he does not have the ability to do anything else to address the problem from the application side.
Concluding, class-compliant audio in iOS seems to be broken in a very strange way. Apps built by Apple seem to be able to use all channels and paths of the UAC devices, but third-party apps cannot access the mic stream, even if they've been granted security permission to access the 'microphone' (actually the capture channels of the selected audio interface):
Has anyone here encountered anything like this before? Any thoughts about how to resolve it?
I'm leaving for vacation in two weeks, and right now it looks like the only workaround is to go buy an older used iPhone :/
[Edited by Moderator]