When Bluetooth Audio Latency Matters

[Update: I’ve written another article where I put AirPods through the same test. It’s here.]

There’s been a lot of talk of 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 significantly. However, they have one particular problem that really needs to be fixed.

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, but depending on the OS, video can range from perfect to unwatchable. This is due to sync issues caused by the latency of the Bluetooth audio stream. If the OS simply starts the video and audio at the same time, the audio will lag behind by the length of time it takes the Bluetooth hardware to receive, process and output it. This can be compensated for, basically by starting the video stream a little later than the audio. In my experience, iOS and macOS handle this pretty well; whatever calculations Apple uses to coordinate the starts of the video and audio streams works most of the time.

This solution doesn’t work for sounds that start unpredictably, unfortunately. Taps on the screen happen when they happen, and all the system can do is rush the corresponding sounds to the Bluetooth receiver as quickly as possible. With most people used to streaming video and audio, a short delay after pressing play on a video feels acceptable, but when keyboard clicks don’t sync up with your fingers contacting the screen, it’s just unpleasant. Rather than being a reassuring confirmation that you’ve triggered a UI action, at the speed most smartphone users type they become a collection of pips which are at best meaningless, and at worst disorienting. Is there a strong case to be made for these sounds to exist at all when latency exceeds a certain point?

This gives the UI an unpleasantly clunky feel to me, in the same way that laggy graphics felt in the bad old days of early smartphones. While the latencies involved aren’t that huge most of the time, the feeling of clunkiness is enhanced by the fact that I’m used to hearing the sounds with much lower latencies, when played through the phone’s speakers or via wired earphones. 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, latency is a problem (for any of my bluetooth gear anyway).

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; it was never going to be around for about 130 years as devices continue to get thinner and more sophisticated, but this latency issue is one of the biggest downsides for me.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 Brainwave BLU-100s) to a wired connection, and found that in short, Bluetooth audio has roughly 3x the latency of wired; an average of 224ms vs 61ms.3

The video above shows the tests from which I gathered that data. 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 (and 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 degrees of latency. It seems like the problem needs to be tackled in the Bluetooth standard itself (or some other wireless audio standard), if latency is to be reduced to the point where these issues go away completely.

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.
___

  1. 256GB, matte black, non-Plus, since you asked.
  2. Obviously the iPhone 7 still supports wired audio, via the Lightning port, but clearly the future is wireless.
  3. 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