Update: I've done a new examination of Bluetooth devices and latency in 2019, check it out here.
There's been a lot of discussion about wireless earphones lately, mostly due to the removal of the headphone port on the iPhone 7. I love wireless earphones, and for the most part I think their pros outweigh the cons. However, there’s a particular problem that I'd love to see improvement upon.
I've used Bluetooth earphones and speakers regularly for about six years, on various different platforms. Generally, I've found that they perform well when playing audio, and in most cases they work well for video too. There is an inherent delay with a bluetooth audio connection compared to a wired one, to which I'm referring when I say latency. It's basically the amount of time between when audio data leaves your device, and when you actually hear it. When playing video, modern OSes can calculate this delay, and compensate for it by simply delaying the video by the same amount of time. The tiny delay after starting or pausing a video mostly goes unnoticed, because the audio and video proceed to play back perfectly synchronised.
For unpredictable sounds, though, the above approach doesn't work. The OS has no way of knowing when you're going to press a particular button, and if it happens to produce audible feedback, the best it can do is rush the corresponding sounds to the Bluetooth receiver as quickly as possible. Suddenly the keyboard clicks that perfectly matched your taps over wired earphones no longer sync up with your fingers; they're delayed significantly, and it's pretty unpleasant. Moreover, this delay undermines the entire point of having these noises to begin with. They’re intended as a compensatory measure for the lack of tactile feedback when typing, but now they're just random blips that happen three or four taps too late. Should these sounds exist at all when the latency exceeds a certain point?
While the timescales involved here don't seem huge, the human ear is incredibly sensitive to audio timing (which you'll know if you've ever watched a video where the audio and video aren't quite lined up properly). This gives the UI an unpleasantly clunky feel to me, similar to laggy animations in the bad old days of early smartphones. This latency is also a significant issue for an app I develop, Tapt. It's a music game, which relies on tapping rhythms accurately in order to score points. When one needs to coordinate taps on the order of 100-200ms apart, any latency is a problem.
The lack of a headphone port on the iPhone 7 (which for full disclosure, I've already ordered1), and the accompanying announcement of AirPods is a significant endorsement of wireless headphones. Now personally, I have no problem with the removal of that port. It had to go eventually; 130 years is a good run, and devices aren't going to stop getting thinner and more sophisticated. But there's no getting away from the fact that the latency issue is a significant downside of going wireless.2 With this in mind, I tested out the latencies of all the Bluetooth audio gear I had access to, using Tapt and the default iOS keyboard as metrics.
I compared three Bluetooth devices (an old Sony MW600, a JBL Flip 2, and a pair of Brainwavz BLU-100s) to a wired connection, and found that in short, Bluetooth audio has roughly 3x the latency of wired audio; that's an average of 224ms for Bluetooth audio vs 61ms for wired audio.3
I've made a YouTube video which shows the tests from which I gathered that data. Keyboard clicks are heard a fair amount of time after the actual key gets pressed, which is irritating. While Tapt seems to have slightly lower latency than the iOS keyboard, it's still very disorienting hearing the lag between my finger-tapping and the notes getting played. It makes the game really, really tough, not in a good way. It's unfortunate that this is the case, if Bluetooth audio is to be the norm. I'm keen to try out AirPods once they're available, though even if they have surprisingly low latency, there will still be a wide range of Bluetooth devices in use, each with varying amounts of it. It seems like the problem needs to be tackled in the Bluetooth standard itself (or some other wireless audio standard), if these issues are to be mitigated completely.
If you found this article interesting or helpful, feel free to buy me a coffee. I'm also interested in hearing others' experiences with Bluetooth audio. If you happen to encounter any particularly good, or particularly bad hardware/software, give me a buzz.
Update (15/09/16):This is also a significant problem for VoiceOver users. I had only considered audio as a feedback mechanism, but when you need to wait for a sound before you can actually do something, 200ms+ of delay every time must get frustrating very fast.
Update (23/12/16): I've written another article where I put AirPods through the same test. It's here.
256GB, matte black, non-Plus, since you asked. ↩︎
Obviously the iPhone 7 still supports wired audio, via the Lightning port, but clearly the future is wireless. ↩︎
I measured the time between the real-world sound of each tap on the screen, and the time that the device started playing the corresponding sound. You can see the full results here: http://bit.ly/btlatency ↩︎