Bluetooth audio codecs are essential, but why are they often hidden?
While the majority of us are well acquainted with Bluetooth audio, not so many of us are aware of Bluetooth audio codecs. They dictate the quality, connection stability, and power usage of the data conversation between any two wireless devices. All A2DP-enabled devices — i.e. any modern phone or headphones — host the SBC audio codec by default. However, LC3 / LE Audio looks to replace this imminently and some Bluetooth 5.2-capable devices already offer LE (Low Energy) audio. While this relatively new technology takes time to roll out en masse, there are a plethora of high-quality audio codecs users can already take advantage of today.
Audio codecs dictate the quality, stability, and power use of a headphone’s Bluetooth connection. But they’re hide-and-seek champions on Android.
That said, we’re not always shown our audio codec choices in a user-friendly way. For example, I recently paired my Samsung Galaxy Buds Pro earbuds with my OnePlus 9 Pro. Without receiving any notifications, I assumed my devices would pair via the highest-quality connection available. After digging around in my phone’s settings, I realized they were in fact paired over the basic SBC codec. This connection offers up to 320Kbps of transfer speeds, but it loses a lot of audio data and quality in the process. Considering Samsung Galaxy Buds Pro are capable of streaming 250Kbps of AAC quality audio, this isn’t what I’d hoped for.
I also only discovered this because I was actively looking out for it. Others out there might not ever notice that their earbuds are connecting via SBC and serving them lower-quality audio than they’re capable of. The toggles are buried deep inside our phones’ UI settings menus. That got me thinking: Why are useful audio codec toggles hidden from us?
Do you check the audio codec your Bluetooth headphones connect over?
Audio codec prioritization isn’t universal
In fairness, the blame doesn’t fall on Android’s shoulders. Google has already developed implementable code that prioritizes Bluetooth connectivity options between the source device and sink. The problem appears to be on the side of smartphone manufacturers not adopting this capability in their devices. Android should select the best connection, but it depends on what the phone’s preferred audio codec order is set to.
Your headphones could have better audio quality, but your phone might be defaulting to a lower quality codec. There is no standard implementation.
I’ve experienced firsthand just how inconsistent Bluetooth codec selection is. In addition to the Samsung Galaxy Buds Pro, the Nothing Ear 1 and Sony LinkBuds S also prioritize SBC when pairing with a OnePlus 9 Pro device. In contrast, the OnePlus Buds Pro connect via the high-res LHDC Bluetooth codec over SBC. When using a Samsung Galaxy S23, the Bose NC700 headphones prioritize AAC over SBC. The Sony WH-1000XM3 headphones do the same, prioritizing LDAC over SBC.
The common theme here is that there is no standardized implementation of Bluetooth audio codecs. While some phones prioritize the standard SBC default, others do not. It’s a problem that may lead many wireless headphone users to miss out on better audio quality and more complex audio features. If you want to take advantage of spatial audio or lossless music streaming, it’s best to check your codec options.
Why codec selection and implementation matters
There are three contributing factors to the overall quality of wireless audio streaming. First and foremost is the quality of the source file. For example, Spotify Premium’s default streaming quality ranges from 24Kbps to 320Kbps depending on your network connection. This affects which file format is streamed, between HE-AACv2, Ogg/Vorbis, or AAC. TIDAL Premium is slightly better, streaming in AAC quality across the board between 96Kbps and 320Kbps. In contrast, a TIDAL HiFi Plus account streams CD-quality FLAC files from 1411Kbps, up to 96Khz/24-bit audio at 9216Kbps. The caveat here is that streaming high-quality audio uses up a lot of data.
Second in the chain are Bluetooth audio codecs. SBC can handle lossy music below 320Kbps, but isn’t able to unpack the finer details of higher-quality source files. If you want to experience high-quality wireless audio, aptX Lossless and OPPO are your best codec options. Each claims an impressive 1Mbps and 990Kbps of bandwidth respectively. Arguably, the real-world difference in quality between these two codecs and LDAC or LDHC is finely tuned. Running between 990Kbps and 900Kbps respectively, they make for high-quality streaming in their own right. But audiophiles looking for a wireless option will want a codec capable of handling the largest bitrate transfers possible.
The final piece of the puzzle is the headphones themselves. The quality of the drivers, tweeters, and radio transmitters influences the final stage of a user’s listening experience. A good example of this is when comparing the Nothing Ear 1 to the Samsung Galaxy Buds Pro. The 11.6mm speaker drivers of the Nothing buds do deliver clear, high-quality sound. But paired next to the two-way 11mm woofer and 6.5mm tweeter speaker drivers of the Samsung Galaxy Buds Pro, they’re simply outmatched. Also, the wireless connection dips when my Nothing Ear 1 buds are paired via SBC to my OnePlus 9 Pro device in my pocket. If you want a stable streaming experience, you want a smartphone and headphones that share good transmission capabilities.
Headphone apps aren’t as universally sound as we think
What’s most perplexing is that your accessibility experience will vary wildly depending on what brand of headphones you own and their companion app.
I had hoped that the Samsung Buds Pro and Nothing Ear 1 buds would surface audio codec choices in their apps. Disappointingly, both the Samsung Wearables and Nothing X apps fall short here. There’s no mention whatsoever of Bluetooth codecs or how to change them. The HeyMelody app for my OnePlus Buds Pro is even worse; it routed me back through my phone’s settings to bring up my headphone settings menu.
Headphones apps don’t do the simple and essential job of showing us our audio codec options.
However, the Sony Headphones app allows users to select which codec they’d like to use based on their preferences. Here, you can choose whether you want to prioritize a stable connection or sound quality. That’s useful, as crowded radio environments like train stations or airports might require a more focused wireless connection. Out in the open, you may even be able to make better use of high-quality audio streaming. Giving users the option to switch between these two improves the flexibility of a user’s listening experience. And if Sony can do it, why not others?
The most confusing question is why don’t other headphone makers prioritize this setting in their apps when it can influence the entire audio-listening experience and change a user’s perception of their product’s quality?
How to change audio codecs on Android
In order to make the most of high-quality audio playback, it’s worth double-checking your connection preferences. To do this, you’ll need to navigate to your phone’s Settings menu, then head to the Bluetooth sub-menu. By clicking on your connected headphones, their settings page should pop up. This is where you’ll see a Media audio or HD audio toggle button. Pressing this should bring up your audio codec options. On devices such as OPPO and OnePlus, this will be simplified down to either standard or HD choices. But when pairing with the Samsung Galaxy S23 and Google Pixel 7 Pro, for example, the HD codec appears next to the HD audio toggle.
However, audio codec options aren’t all shown in this way. When pairing to the Samsung Galaxy S22 Ultra, for example, the audio codec options appear in the Developer Options menu. You can enable this hidden menu via the phone’s main Settings and navigating to the About phone page. Select Software information, and then rapidly tap the Build number button several times in a row. Once enabled, the developer options page will list the audio codecs as a drop-down menu. The codecs are shown in order from lowest to highest bitrate transfer speeds.
Picking the best audio codec isn’t straightforward. It all depends on what you want to privilege — quality, latency, or stability. In general, the lossless LDHC and aptX are currently the highest quality codecs. LDAC and AAC aren’t lossless, but still offer good-quality audio. SBC is the lowest-quality codec, and you should only choose it if no other option is available. Check out our audio codec explainer for more information.