Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Enable High Quality mode on your headphones (Updated for macOS Catalina)

If you're using a high-end bluetooth headset on your Macbook Pro it's likely your mac is using an audio codec which favors battery efficiency over high quality. This results in a drastic degradation of sound, the SBC codec is the likely culprit, read more about it here.

Find out what codec you're using

  1. Play a song on your headphones
  2. Option (⌥) click the Bluetooth button at the top of your screen Inspect the Bluetooth Coded
  3. If you're using AAC or aptX, you can stop here—those are the highest quality codecs.

Change your codec to AAC or aptX

UPDATE: It looks like Apple has silently dropped support for aptX, leaving only AAC

You'll need to download Apple's Bluetooth Explorer in order to change codecs.

  1. Head over to Apple's Developer Downloads

  2. Search for additional tools and download Additional Tools for XCode 11.dmg Search for "additional tools"

  3. Open the dmg, and open Bluetooth Explorer Open Bluetooth Explorer

  4. Click on Tools > Audio Options and change your audio codec to the following settings:

    • Enable AAC
    • Force use of aptX
    Change your audio codec
  5. Disconnect your Bluetooth headset, reconnect it, and while some music is playing, inspect your codec. It should now show either AAC or aptX.

    Your codec should now show AAC/aptX

Squeezing the most out of AAC

You can increase the AAC bitrate in Audio Options but be sure to keep an eye on the graphs. The retransmission percentage is roughly equivalent to packet loss, and if you increase the bitrate too high your audio will start cutting out:

The retransmission rate is a function of distance and interference, and you'll need to disconnect/reconnect on each attempt before you find the sweet spot.

Copy link

markminnoye commented Feb 26, 2022

I can confirm this solution is working on Monterey for AAC. See attached screenshot of my -fantastic- hiby R3Pro. It was showing SBC until I enabled AAC using : sudo defaults write bluetoothaudiod "Enable AAC codec" -bool true
I can't get AptX working though :-(

Copy link

robinjhector commented Mar 9, 2022


Looks like it's totally impossible to know what codec is being used in Monterey?

Copy link

w0ngdg commented Mar 11, 2022

It doesn't work with Monterey MacOS 12. Seems Apple promotes their expensive headphones by banning aptx and aac on none apple's device. Yuk.

Copy link

S-n-d commented Mar 14, 2022

It doesn't work with Monterey MacOS 12. Seems Apple promotes their expensive headphones by banning aptx and aac on none apple's device. Yuk.

AAC is still used per default when the receiving device supports it. Which is as it should be because AAC is better than APT-X.

Copy link

Eugene-Y commented Mar 15, 2022

sudo defaults write bluetoothaudiod "Enable AAC codec" -bool true

but how do you know?

Copy link

forresthopkinsa commented Mar 31, 2022

And apple decisions not clear to me, I bought headphones with the aptX support because it's high quality, but apple force me to buy airpods

Sounds like their decisions are clear enough then

Copy link

varenc commented Apr 20, 2022


sudo defaults write bluetoothaudiod "Enable AAC codec" -bool true

but how do you know?

That's the setting that the Bluetooth Explorer util sets. Not sure about Monterey, but for everything else just setting those values enables AAC without the need for Bluetooth Explorer.

AAC is working fine for me on Monterey and my Sony WH-1000XM3 with all the default settings. (nothing in bluetoothaudiod). Haven't tried aptX.

Too bad about aptX going away, but it seems like it has. Though it was probably only ever used by a tiny number of people in the first place. Maybe it's extra tricky because aptX is proprietary and patented? Apple might be unable/unwilling to support it and have to hand over money to the patent holders.

Copy link

forresthopkinsa commented Apr 20, 2022

As long as Qualcomm remains the the second largest SoC manufacturer, aptX isn't going anywhere

Copy link

mpilgrim8 commented May 15, 2022


sudo defaults write bluetoothaudiod "Enable AAC codec" -bool true

but how do you know?

I can't speak for all MacOS versions, but I do this on Monterey:

  1. Disconnect your headphones.
  2. Open the "Console" app (Under "Applications/Utilities").
  3. In the "Search" field, in the upper-right corner, type "Codec", and hit "Enter".
  4. Hit the "Start" button.
  5. Re-connect your headphones while looking at the Console output.
  6. After a few seconds, you should see a bunch of lines appear, including one starting with "A2DP", like this:

00:48:15.750396-0400 bluetoothd A2DP configured at 44.1 KHz. Codec: AAC-LC, VBR max: 256 kbps. 1 frames * (12+744) bytes = 756 per RTP (max=879) every 23.22 ms

I also checked on my older work Mac, which is still on Catalina, and the "Console" app on Catalina doesn't have a "Start" button -- so for older systems like this, you can just skip that step above, since the log entries just start loading automatically. The output on Catalina wasn't as clear-cut with a single line like on Monterey, so people may need to try other search terms with older versions, like "aac" or "sbc", depending on what you're looking for. When I searched with "aac", I found a few lines like these:

02:41:48.587446-0400 bluetoothaudiod New AAC Bitrate:256000
02:41:48.586376-0400 bluetoothaudiod AAC encoder initialized. VBR maxBitSize:5152 minBitSize:256
02:41:48.772929-0400 bluetoothaudiod Set current codec (null)->AAC

Interestingly, the top of this site references a "SoundGuys" article as evidence for doing all this, and yet SoundGuys also published this other article just a couple days before the one above, stating that AAC isn't all that great, even compared to SBC -- at least tested within the mobile device realm. On Android, it's recommended to disable AAC altogether, and use SBC (if you don't have aptX). On iOS, AAC is definitely better than on Android, but not necessarily better than SBC. This is all for mobile, though, and is focused on sound quality, not other aspects like power/battery efficiency. Not sure how this all corresponds to MacOS, but just some food for thought.

One quote from the article, in which "any instance" included several Android phones, plus an iPhone:
AAC doesn't reach frequencies high enough to match CD quality or standard Bluetooth's SBC in any instance. That's concerning for anyone who prizes audio quality over convenience.


Too bad about aptX going away, but it seems like it has. Though it was probably only ever used by a tiny number of people in the first place. Maybe it's extra tricky because aptX is proprietary and patented? Apple might be unable/unwilling to support it and have to hand over money to the patent holders.

AAC is also patented, requiring licensing fees for manufacturers, although dropping aptX does decrease Apple's licensing burden from two to one. AAC is also patented by a larger consortium of companies, in which any perceived gains (more power than money) are diluted across multiple beneficiaries/competitors, whereas aptX's gains help a single beneficiary (Qualcomm), which Apple would see as a bigger threat.

Copy link

dabster3000 commented May 15, 2022

Looks licensing for AAC is costlier than AptX. But this document is old from 2014 here.
Screen Shot 2022-05-15 at 6 06 06 PM

So the reason maybe to stick it to Qualcomm as competitor sadly....

Just my Opinion for AptX devices MacOS previous than Monterey the output sound was Better, now it works on SBC.. Without doubt.
Sadly my device supports AptX but no AAC.

Copy link

jamesdh commented May 15, 2022

Just for reference, I'm on MacOS Monterrey on an M1 Max, I've never altered the bluetoothaudiod defaults value, and I get this in my console logs when connecting my Bose QC 35's:

A2DP configured at 44.1 KHz. Codec: AAC-LC, VBR max: 221 kbps. 1 frames * (12+644) bytes = 656 per RTP (max=656) every 23.22 ms

Copy link

jamesdh commented May 15, 2022

@mpilgrim8 any idea why you'd be getting 256 and I'd be getting 221kbps bitrate?

Copy link

mpilgrim8 commented May 15, 2022


@mpilgrim8 any idea why you'd be getting 256 and I'd be getting 221kbps bitrate?

Maybe a difference in headphones, but that's just a guess. It could be a bluetooth signal quality issue, since it is generally going to negotiate the connection based on the available bandwidth/signal quality it sees. Make sure the headphones are near the computer when connecting, and that there aren't a lot of electronics around causing interference. Otherwise, maybe the headphone's bluetooth just has a weaker signal.

The log entry that I cut-and-pasted before is from my M1 MacBook Air w/Monterey. My older (~4 y/o) work-issued MacBook Pro w/Catalina also connected at 256kbs. I have two sets of over-the-ear headphones, and both connect at 256kbs. One set are the Sennheiser HD350BT, and the other are a more obscure brand (FALWEDI S6) that I got on Amazon for $35 -- one of those budget-priced products on Amazon where you see the same product model under 10 different company names. But for the price, they are actually quite good, although too bass-heavy for my taste, which is why I eventually splurged a bit more on the more neutral Sennheisers (but got those on-sale, at least). The FALWEDI unit supports both aptX (first-gen only, not HD/LC) and AAC, which was a pleasant surprise, since it didn't even mention AAC in the product info -- it only mentioned aptX and SBC. The Sennheiser supports the same, plus aptX-LL (but not HD).

In any case, both of these units are over-the-ear headphones, and have a stronger bluetooth signal than any others that I've owned. Over the years, I've had many in-ear bluetooth headphones, and all of them cut-out when I leave the computer in the living room while walking into another room. But I've stopped using in-ear units, and these two over-the-ear units are the first to stay connected when I go into the other room -- so they do seem to have stronger signals, for what it's worth.

Copy link

eengl commented May 17, 2022

@dvf Thank you for providing this. I have an iMac Pro running macOS Monterey (12.4) and use Sennheiser PXC 550. Following the various instructions above, I am only getting SBC codec. Here is my console info from when the headphones are paired.

A2DP configured at 44.1 KHz. Codec: SBC, Bitpool: 53 (327 kbps). 7 frames * 119 bytes = 833 per RTP (max=879) every 20.32 ms

The audio quality was poor until I went into Preferences -> Sound -> Sound Effects and set "Play sounds effects through:" to "iMac Pro Speakers" instead of the headphones. Since then, the audio quality is significantly improved.

I also get this error message in Console when the headphones connect:

Length of AVDTP Codec Info is too short for Apple Vendor-Specific Codec

I wonder if this is a Sennheiser issue, not Apple.

Copy link

eEQK commented Jun 10, 2022

My wh-1000xm3 kept using SBC but after connecting them to an iPhone with Sony Headphones Connect app and going through the setup now they use AAC on my Monterey MacBook. I did it a while back with an Android but that didn't help, looks like you have to use an iPhone

A2DP configured at 44.1 KHz. Codec: AAC-LC, VBR max: 256 kbps. 1 frames * (12+744) bytes = 756 per RTP (max=879) every 23.22 ms

Copy link

umanghome commented Jun 20, 2022

Confirming that @eEQK's method works for me on Android (Galaxy S21, Android 12, Sony Headphones Connect v9.0.1) and WH-1000XM3 (XM3 that go over the ears).


  1. Connect the headphones to MacBook
  2. Follow this comment and verify that the codec is SBC
  3. Disconnect XM3 from MacBook
  4. Connect XM3 to Android
  5. Open the Sony Headphones Connect app
  6. Navigate to "Sound" and scroll down until you see "Sound Quality Mode"
  7. Update the "Sound Quality Mode" setting to "Priority on Sound Quality"
  8. Let the headphones reconnect to Android
  9. Disconnect from Android
  10. Connect to MacBook
  11. Follow this comment and verify that the codec is AAC-LC

Copy link

825i commented Jul 1, 2022

Bluetooth Explorer doesn't seem to work on my M1 Macbook 16" at all. Any other options?

Bluetooth Explorer just cannot detect or identify anything about my devices. I am trying to basically find the best use of AAC on my iFi Zen v2.

EDIT: I guess it's because of Monterey?

EDIT2: Running bluetoothd just instantly killed my Mac. It rebooted with:

panic(cpu 1 caller 0xfffffe0025e3c184): A kext releasing a(n) IOMemoryMap has corrupted the registry. @OSObject.cpp:224
Debugger message: panic
Memory ID: 0x1
OS release type: User
OS version: 21F79
Kernel version: Darwin Kernel Version 21.5.0: Tue Apr 26 21:08:37 PDT 2022; root:xnu-8020.121.3~4/RELEASE_ARM64_T6000
Fileset Kernelcache UUID: 77B58D4501F17D9FA036CFE982C6B773
Kernel UUID: C44613B0-01A6-3609-A18D-29AC6CE3DAAF
iBoot version: iBoot-7459.121.3
secure boot?: YES
Paniclog version: 13
KernelCache slide: 0x000000001decc000
KernelCache base:  0xfffffe0024ed0000
Kernel slide:      0x000000001e688000
Kernel text base:  0xfffffe002568c000
Kernel text exec slide: 0x000000001e770000
Kernel text exec base:  0xfffffe0025774000
mach_absolute_time: 0x631833ae9f
Epoch Time:        sec       usec
  Boot    : 0x62beafd4 0x000d79d2
  Sleep   : 0x62bee9d9 0x000b48f5
  Wake    : 0x62beecf9 0x000e3076
  Calendar: 0x62beff77 0x000aa81b

Zone info:
  Zone map: 0xfffffe1000178000 - 0xfffffe3000178000
  . VM    : 0xfffffe1000178000 - 0xfffffe14cce44000
  . RO    : 0xfffffe14cce44000 - 0xfffffe16667dc000
  . GEN0  : 0xfffffe16667dc000 - 0xfffffe1b334a8000
  . GEN1  : 0xfffffe1b334a8000 - 0xfffffe2000174000
  . GEN2  : 0xfffffe2000174000 - 0xfffffe24cce40000
  . GEN3  : 0xfffffe24cce40000 - 0xfffffe2999b0c000
  . DATA  : 0xfffffe2999b0c000 - 0xfffffe3000178000
  Metadata: 0xfffffe7522b2c000 - 0xfffffe752ab2c000
  Bitmaps : 0xfffffe752ab2c000 - 0xfffffe753068c000

CORE 0 PVH locks held: None
CORE 1 PVH locks held: None
CORE 2 PVH locks held: None
CORE 3 PVH locks held: None
CORE 4 PVH locks held: None
CORE 5 PVH locks held: None
CORE 6 PVH locks held: None
CORE 7 PVH locks held: None
CORE 8 PVH locks held: None
CORE 9 PVH locks held: None
CORE 0: PC=0x000000019e4f75d0, LR=0x0000000101004aa8, FP=0x000000016ef165f0
CORE 1 is the one that panicked. Check the full backtrace for details.
CORE 2: PC=0xfffffe0025802b14, LR=0xfffffe0025802b10, FP=0xfffffe7538bdbf00
CORE 3: PC=0xfffffe0025802b10, LR=0xfffffe0025802b10, FP=0xfffffe7536bcbf00
CORE 4: PC=0x00000001937c7560, LR=0x00000001937c7284, FP=0x000000016f1515e0
CORE 5: PC=0x00000001937c4d68, LR=0x00000001937c45d0, FP=0x000000016d2513a0
CORE 6: PC=0xfffffe0025802b10, LR=0xfffffe0025802b10, FP=0xfffffe753a04bf00
CORE 7: PC=0xfffffe0025802b14, LR=0xfffffe0025802b10, FP=0xfffffe7538a1bf00
CORE 8: PC=0xfffffe0025802b10, LR=0xfffffe0025802b10, FP=0xfffffe753956bf00
CORE 9: PC=0xfffffe0025802b10, LR=0xfffffe0025802b10, FP=0xfffffe7539c9bf00
Compressor Info: 3% of compressed pages limit (OK) and 4% of segments limit (OK) with 0 swapfiles and OK swap space
Panicked task 0xfffffe1ff4150cf0: 1848 pages, 3 threads: pid 22193: bluetoothd
Panicked thread: 0xfffffe2998351040, backtrace: 0xfffffe753a39b360, tid: 186847
		  lr: 0xfffffe00257cd124  fp: 0xfffffe753a39b3d0
		  lr: 0xfffffe00257ccdec  fp: 0xfffffe753a39b440
		  lr: 0xfffffe0025911f2c  fp: 0xfffffe753a39b460
		  lr: 0xfffffe0025903d00  fp: 0xfffffe753a39b4d0
		  lr: 0xfffffe00259019ac  fp: 0xfffffe753a39b590
		  lr: 0xfffffe002577b7f8  fp: 0xfffffe753a39b5a0
		  lr: 0xfffffe00257cca70  fp: 0xfffffe753a39b940
		  lr: 0xfffffe00257cca70  fp: 0xfffffe753a39b9b0
		  lr: 0xfffffe0025ff3120  fp: 0xfffffe753a39b9d0
		  lr: 0xfffffe0025e3c184  fp: 0xfffffe753a39ba00
		  lr: 0xfffffe0025f18014  fp: 0xfffffe753a39ba40
		  lr: 0xfffffe0025e3defc  fp: 0xfffffe753a39ba80
		  lr: 0xfffffe0025e3e30c  fp: 0xfffffe753a39bac0
		  lr: 0xfffffe0025e766cc  fp: 0xfffffe753a39baf0
		  lr: 0xfffffe00258ce088  fp: 0xfffffe753a39bb30
		  lr: 0xfffffe00257d46c8  fp: 0xfffffe753a39bb70
		  lr: 0xfffffe00257b4bf4  fp: 0xfffffe753a39bc00
		  lr: 0xfffffe00257b8dfc  fp: 0xfffffe753a39bcd0
		  lr: 0xfffffe002580b35c  fp: 0xfffffe753a39bd10
		  lr: 0xfffffe0025d0722c  fp: 0xfffffe753a39bda0
		  lr: 0xfffffe0025d07038  fp: 0xfffffe753a39bdb0
		  lr: 0xfffffe0025e340a0  fp: 0xfffffe753a39be50
		  lr: 0xfffffe0025901a80  fp: 0xfffffe753a39bf10
		  lr: 0xfffffe002577b7f8  fp: 0xfffffe753a39bf20

last started kext at 1759729849:	6.0.0 (addr 0xfffffe0025564650, size 3416)
loaded kexts:	3.0	1	5450.8	1	1	1	1	493.0.0	493.0.0	493.0.0	493.0.0	5.0.0	4.0.3	3.0.1	1.9	1	1	1934.121.2	1.0.0	583.100.10	1	40	1.0.0	1.0.0d1	550.3	1	1	1	550.3	1	1	161.0.0	1.0.0d1	140.1	1	1	1	1	1	1.0.0d1	1	3.2.1	550.16.0	564	190.20	4.8.1	176.6.0	140.0	1.0.1	1	1	1.0.0d1	1	1.0.0d1	1.0.0d1	1	1	1	1.0.0d1	150.1	1	1	1.0.0d2	1	1.0.1	1	1	1	126.100.13	2.0.0	402	1	1	6.0.0	1.0	1040.6	1040.3	1.1.0	228.2	5450.14	5450.14	5450.8	9.0.0	100.99	1	1.2	5.0.0	416.2	340.2	1.2.0	1	1	1.0.1	493.0.0	3	5.0.0	1.0.4	4.1.1	8.5.1	8.5.1	1.9	1	1	1	5450.4	5450.4	5450.4	3	1	1.0.1	550.3	1.0.0	1	1.0.0	3.0	150.2	550.3	140.2	190.20	190.20	1	2.1.0	1.0.0	1.0.0	1	1	35.29	1.0	1	343.0.0	1	1	343.0.0	1.0.1	1.0.1	1.0	1.0	2.0.0	1	1.2	1	1.2	1.2	1	1	3.4.4	1	1.0.0	1.0.0	1	7.2.81	1	9.3.3	1	1	1	1	1.0.0	1200.12.2b2	1.0.0	1	1.0.4	1	640.5	140.1	1	6.51.1	17.0.6	1.0.2	1	1	1040.3	493.0.0	597	9.0.0	9.0.0	9.0.0	9.0.0	9.0.0	9.0.0	68.16.0	9.0.0	9.0.0	1.0	2	533.120.2	210.120.3	2.9	456.121.3	456.121.3	1.0	28.30	1.0	1.0	1	1.2	1.2	1.0	3.1.9	1.0.0	1.0.0	1.0	1.0.0	1.0	1.0	1.0.1b8	3.4	11	1.0.1	1.0.2	1	2	2.0.0	1	5.65.2	5.65.2	1.0	1.0.0	1.0.0	1	1.0	140.1	140.1	265.0.0	302.14	1	4	300.0	1.0.0d1	1.0.5	4.2.0	1	1.0.1	1.0.2	2.1	1.0.0	47	1	1	12.0

** Stackshot Succeeded ** Bytes Traced 490594 (Uncompressed 1226416) **

Copy link

joe-brail commented Jul 30, 2022

Has anyone found a solution to this issue? AptX up and running on Monterey?

Copy link

naruto-chelsea commented Jul 30, 2022

SInce updating to Monterey, my beats studio buds stuttering so much and have found no solution for it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment