RecadioBlog

Why Is Bluetooth Sound Quality Bad on My Mac

January 3, 2024 Originally published 2023-12-12
MacBluetoothSound quality

The reason behind bad audio quality when using bluetooth headphones with your mac. Spoiler, it is not –just– your headphones. Read why and learn how to fix it.

This post is the summary version of a deep dive I've done on this topic. I might release an in depth version if there's interest and link it here if and when it's ready. In the meantime you can read this shorter version.

For an even shorter version, just read the text on call-outs like this one

Introduction

If you found this post you've probably been searching about bluetooth sound quality for a while. I have good news and bad news.

Bad news first, most of what you've read is quite outdated and not very useful. Enabling AAC and AptX audio codecs –more on audio codecs later– won't fix your problems, which is probably what you've read a few times already.

But the good news are that I've done a deep dive to really understand why the sound quality is so bad sometimes, even if you paid a few hundred bucks for your headphones, and I have a workaround to offer.

To be fair I already knew how to fix patch the issue, and that's why I built Recadio, but I wanted to know why this happened at a technical level. Here's what I found.

How Mac Handles Bluetooth Headphones

The starting point of the research was this article written by Apple where they write:

[Using] Bluetooth headphones' microphone, audio quality and volume are reduced. You might also hear static or popping sounds:

This happens because Bluetooth has two modes:

  • The first mode is for listening to higher-quality audio.
  • The second mode is for both speaking through the microphone and listening to audio. When Bluetooth switches to the second mode, audio quality is reduced until the microphone is no longer in use.

We already found the first piece of this puzzle:

🧩Mac will switch to a terrible reduced audio quality mode when using the Bluetooth headphone's microphone

But what do they mean with "modes"? And why is the audio quality awful reduced? Let me introduce you the concept of Bluetooth profiles.

Bluetooth Profile

The bluetooth profile defines the set of things the bluetooth device can do. A few examples that you've probably used already are:

There are many different profiles, and you can read more about them in the Wikipedia page , but the two that are important to understand our problem are the A2DP and HFP.

One important difference is that the A2DP allows streaming from one device to another, not both ways, while the HFP does.

As you could guess, when Apple mentions first mode they're talking about A2DP, and second mode refers to HFP.

We can rephrase the previous piece of the puzzle as:

🧩Mac will switch to a Hands Free Profile when using the Bluetooth headphone's microphone

But that doesn't explain much on its own. That's because we need to talk about another important concept here: audio codecs.

Audio Codec

According to Cambridge Dictionary , a codec is:

a device or computer program that compresses data (= makes it use less space) so it can be sent or stored, and decompresses it (= returns it to its original form) so it can be seen or used.

And an audio codec is just that, but especially designed for audio files.

Some codecs might prioritize higher quality by compromising how much the audio can be compressed, while others could give priority to the compression rate sacrificing audio quality. There's a good amount of complexity that I might cover if I write an extended version of this post, but for now let's keep it here.

An important point is that both the sender and receiver need to know the same codec to use it, otherwise the compressed audio couldn't be decompressed and listened to.

Relation Between Bluetooth Profile and Audio Codecs

Different profiles support different codecs, and some also specify a mandatory codec for the profile. The codecs have properties that match the use case of the profile. Let's look at the ones we care about.

The A2DP use case is to support high-quality audio distribution, so quality is obviously a priority. Communication only goes in one direction, therefore the sender can use the full connection to fit audio. Both compression and delay are not critical. As a result, A2DP uses codecs that produce high audio quality.

The HFP use case is handling phone calls, so audio quality is not very important, but latency is. Data travels both ways, each device taking turns sending their data. As a consequence bandwidth is halved, making compression important. Therefore, HFP uses codecs with low latency sacrificing audio quality.

This is the second piece to understand our problem:

👉HFP doesn't care too much about audio quality as long as latency is low

So even the codecs with best audio quality for the HSP will be quite bad. And odds are your devices doesn't even have the best ones. Yes, even if you spent a few hundred bucks on them.

There's a promising update for both profiles with the release of a new codec LC3-SWB , which was released in January 2020 and is supposed to deliver much better audio with significant compression. The question now is, when are devices going to have that codec so we can actually take advantage of it?

Then Why Is My Audio Quality So Low?

On the one hand you have that Macs will use a HFP when the microphone is in use, and on the other you have that HFP use audio codecs which prioritizes low latency over audio quality. Therefore,

☠️Using the Bluetooth headset's microphone will make your Mac sacrifice audio quality to improve latency

Then, your headphones might have 10 year old codecs, which will need to really lower the quality of the sound to get decent latency.

But you might have read you have to enable AAC and AptX. Well, that's because Apple didn't do a great job about selecting the best codec for A2DP in the past, and defaulted to the mandatory one –named SBC –. But that's no longer necessary.

And even if that was necessary, it'd improve the A2DP mode, not the HFP, which is the one with awful quality.

How to Fix the Sound Quality

The most important point is to avoid switching to the HFP. To do that, just prevent your Mac from selecting the headphone's microphone as audio input. If it only was that simple!

Prevent your mac from using the headphone's microphone

The truth is there's no way to configure this on your Mac. That's why I built Recadio, an app that remembers your input and output preferences for any combination of connected devices.

You can also change your audio input device manually when your Mac switches to the wrong microphone. I've covered the different ways you can do that in a different post, but here's a very quick summary of your options:

I've setup a discount for people coming from the blog. You can use BLOG20 at the store to get a 20% discount.

Enjoy 😊