How to improve your Mac's Bluetooth music quality

May 11, 2020

Now that Bluetooth headphone and speakers are ubiquitous and headphones jacks are dying out like flies, it's important that our devices' software gives the best wireless experience possible.

One of the most important factors to your wireless experience will be your choice of audio codec.

There are tonnes of audio codecs with different tradeoffs

There are a bunch of audio codecs out there (like SBC, AAC, AptX, LDAC, the list goes on) for streaming audio over Bluetooth.

They all come with different tradeoffs to:

  • Audio quality
  • Latency (the delay between the sounds being received by your laptop and played by the Bluetooth device)
  • Battery life (especially on mobile devices)
  • Device compatibility (both your laptop and Bluetooth device need to support the same codec)

macOS doesn't always use the best audio codec

While there is some debate, it seems to be generally agreed that AAC and AptX are preferred over SBC (but this certainly does vary by device).

Apparently AAC has better quality, while AptX has lower latency, but I don't know enough on the topic to comment on it.

Anywho, that's enough background. Let's get to the problem:

Mac OS sometimes defaults to using SBC, even if your Bluetooth device supports AAC or AptX. Consequently, your audio quality and latency will suffer.

Let's change that.

Check what Bluetooth codec your Mac is using

First, open up your Mac's Bluetooth settings in System Preferences.

Make sure that Show Bluetooth in menu bar is enabled:

Check that 'Show Bluetooth in menu bar' is enabled in System Preferences
Check that 'Show Bluetooth in menu bar' is enabled in System Preferences

Next:

  1. Connect your Bluetooth headphones / speaker to your Mac
  1. Start playing music (or any kind of audio)
  1. Find the Bluetooth icon at the top of your Mac
  1. CLICK on the bluetooth icon while holding the OPTION and SHIFT keys (all at the same time)
  1. Hover over your connected Bluetooth device (for me, that's my WH-1000XM3 headphones)
  1. Look for the Active Codec box, shown here on the left:
    1. My Active Codec is currently AAC
      My Active Codec is currently AAC

If you want to change your codec to AAC or AptX, then follow the steps below.

Changing your Mac's Bluetooth codec

Let's enable AAC or AptX on your Mac.

You can even enable both if you're feeling adventurous (I've found that Mac OS uses AptX if both AAC and AptX are enabled & supported by the device, but YMMV).

 
💡
Don't forget to enter your Mac user's password when if Terminal asks for it. You won't be able to see your passworld while typing it!
 
  1. Open up Terminal (by searching for it in Spotlight using CMD + SPACE)
  1. Run this command to enable AptX:
    1. sudo defaults write bluetoothaudiod "Enable AptX codec" -bool true

      Or, run this command to enable AAC:

      sudo defaults write bluetoothaudiod "Enable AAC codec" -bool true
 
  1. If you enabled AAC, you can now change AAC's quality (known as bitrate) with one more command:
sudo defaults write bluetoothaudiod "AAC Bitrate" 256

You can set the bitrate as high as 320 (kbps), but I use 256 (kbps) because the connection should be more stable (and I can't tell the difference from 320 kbps anyway).

 

This is roughly what those commands should look like in your Terminal:

Entering all three commands in Terminal
Entering all three commands in Terminal
 

Finally, let's restart the bluetooth module:

  1. Once again, OPTION + SHIFT + CLICK on the Bluetooth icon at the top right of your Mac
  1. Move your mouse down to Debug
  1. Then click Reset the Bluetooth module
  1. Wait a moment for it to reset
  1. Then re-connect your headphones / speakers
Resetting my Mac's Bluetooth module
Resetting my Mac's Bluetooth module
 

Now if you check your Bluetooth codec again, you should find that it's set to AptX or AAC!

My Bluetooth codec is now AptX
My Bluetooth codec is now AptX

Enjoy! 🎧