I always love when I find a really dumb solution that works reliably to fix a problem that should never really be a problem in the first place. But having worked with audio devices before—though nothing nearly as complex as the AirPods—I am willing to cut Apple some slack in building a seamless aural experience with using AirPods across phone calls, VOIP, iOS devices, Macs, music, and Apple TVs... it's hard to execute perfectly, and as I said in my review of the AirPods two years ago, these little earbuds are as close to perfection when it comes to a wireless sound solution for someone like me.
Anyways, here's the problem:
Sometimes (maybe 10% of the time) when I run vagrant up
to build a local development environment for one of my software projects, and I'm listening to music, my AirPods suddenly switch into super-low-quality audio mode. It sounds like you're listening to a song played through a long subway tunnel or something.
What's happening behind the scenes is something in Vagrant or VirtualBox's boot sequence is making a change on the computer to assume some control over USB and/or audio IO, and that seems to—sometimes—affect the audio mode used by the AirPods.
This happens sometimes in other situations too; sometimes the AirPods switch to 'old POTS voice call quality mode' (as I call it) and stay there even after you hang up on a phone call. It often happens when you're using the AirPods' microphone with VOIP apps too.
Apple has some pretty awesome little utilities, though, which can help in these situations. As with last year's post, How I discovered my left AirPod was bad, in which I discovered a handy Bluetooth device diagnostics tool called Bluetooth Explorer, I have long known about an essential built-in audio app on the Mac which has been around for years: Audio MIDI Setup.
By the name of the app (not to mention the icon—a music keyboard!), you wouldn't know that it's kind of a jack-of-all-trades when it comes to diagnosing and configuring almost any audio I/O aspect of your Mac, including surround sound inputs and outputs, microphone levels, output levels, and other specialized configuration. MIDI is really only a tiny part of what this app does!
This app can quickly highlight the problem that occurs when the AirPods get stuck in low-quality-output mode:
Basically, the AirPods get stuck playing the Bluetooth audio stream at 16 kHz, which is okay(ish) for voice calls, but sounds terrible if you're listening to movies or music. Or anything, really, besides terrible quality audio streams or AM radio.
So after having this happen three times, I've found one solution which doesn't require a reboot, which works every time, restoring a pure, 48.0 kHz audio stream to the AirPods:
- Have some audio playing (e.g. play a song in iTunes)
- Open Audio MIDI Setup
- Select your Airpods in the list of devices (the one with 1 out or 2 outs)
- Toggle the 'Format' menu from "1 ch 16-bit..." to "2 ch 32-bit..." (Note that this will blip the audio for a few ms, but it will switch back)
- Keep Audio MIDI Setup open
- Disconnect your AirPods to your Mac using the Bluetooth menu
- Re-connect your AirPods to your Mac using the Bluetooth menu
- Wait for some playing audio to return to your AirPods—it will still be tinny and yucky sounding.
- Quit Audio MIDI Setup.
After Audio MIDI Setup quits, the audio should switch over to 32-bit/48 kHz mode again. No idea why, but hey, it works, and I don't have to reboot my entire Mac just to listen to audio again!
I originally posted the above fix as an answer to the Stack Overflow question AirPods: Extremely poor mic quality on Mac, but I thought I'd post it here so I can more easily keep the post updated over time... and because I usually search my blog for quick fixes like this and this fix wasn't on my blog yet!
Comments
It's interesting you mention this, as I've experienced the same (or highly similar) issue with my Google Pixel Buds.
Yeah, I forgot to mention, but I have sometimes encountered the issue with my Bose QC20 headset too. It doesn't seem exclusive to the AirPods, it's just that I've only ever tested the fix with AirPods, so can't verify it works for all other Bluetooth headsets.
Hi,
we also use vagrant heavily in our company and i found that this problems seems to occur with almost every bluetooth headphones. My solution was, after running vagrant up, open VirtualBox, go to the Settings of the running vagrant VM, and go to audio and just check the "Enable Audio Output" checkmark. It will switch to normal audio again.
Other solutions are, disabling audio completely or change to "Null Audio Driver". All those works.
Cheers!
Will try next time; I wonder if there’s an easy way to set that option in the Vagrantfile.
According to the Vagrant docs [0] and the VBoxManage command help output[1], this could do the trick:
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--audio", "none"]
end
I'm unable to test it right now since I'm currently on a Windows machine with Docker Desktop, which requires Hyper-V. Running VirtualBox at the same time is not possible.
[0] https://www.vagrantup.com/docs/virtualbox/configuration.html
[1] http://manpages.org/vboxmanage
That does look like it will do the trick; it was also mentioned in this issue which I found out through the HN comment thread for this article: Disable audio on the VM
I noticed this happening as well and downgraded to VirtualBox 5.2.18 which seemed to fix it for me; it seems there is some change in 5.2.20+ that causes this behavior.
Simply change the input device to any device that not your AirPods will fix the issue. (From system preference - Sound)
Unfortunately that doesn't fix it when it gets stuck like this. Nor does disconnecting the AirPods entirely and reconnecting them. I often use the option key to select an independent input device using the sound menu bar widget (hold down option while clicking, and you can choose discrete input and output without having to dig into System Preferences), but that doesn't help when this problem occurs.
This worked for me.
Thanks. Works perfectly now.
Wow it worked! thank you!
The same thing happened to my cheap amazon SoundPeats headphones that were paired to a windows 7 machine when I fired up a virtual bo.
Better solution: Use proper headphones instead of shitty Bluetooth earbuds.
DUUHHHHHH
Thatis the best that you get the best Ipods in the market and then use that accordingly for your tests
The same with Bose QC35 II while running StarCraft II on macOS
you're wrong. it happens only with this version of virtualbox, it happens once in ten, it happens with many devices. title misleading, almost false. "The new version of virtualbox reduces the audio quality of bluetoot devices" would have aroused less attention. bad talking about apple is getting more and more a stir.
Yeah no this is still an issue that happens. Definitely worth bad talking apple about, considering they are nearly $200 for a pair of headphones with still no normal solution.
this really works like a charm!!!! saved me so much trouble, thank you !!!
I'm having the same issue at the moment with airpods connected to my iPhone would you have a solution for this, I don't have a mac .
Change the microphone input to Internal Mic instead of airpods in system preferences. This will return the audio to high quality.
https://audaciousfox.net/2017/airpods-macos-call-quality-fix
This is the fix that worked for me, thanks dude!
Worked brilliantly mate, thanks so much!
What if I want *only* high quality microphone audio (recording a class) and don't care about any headset/headphone audio? I read elsewhere that "Microsoft's Bluetooth stack presently supports only the "source" role of the A2DP profile, which lets it send audio. It does not support the "sink" role of the A2DP profile, which would let it receive audio." But, that "Each A2DP service, of possibly many, is designed to uni-directionally transfer an audio stream in up to 2 channel stereo, either to or from the Bluetooth host."
Which is true?
THANKS SO MUCH THIS IS DRIVING ME MAD!!!
Perfect solution! Thanks!
YESS!!!!!!!!!!! this is the REAL solution, thank you
Thanks for this - I figured it had something to do with the virtual box I'd just started - I ended up just disabling the audio in the VM. Doesn't interfere with the host audio any longer.
guys just make the macbook build in microphone is the default mic , so the airpods will works in ACC ( 2ch 32bit )
Hi,
I was having the exact same issue, and Google led me here. In my case, the culprit was Parallels Desktop (another virtualization software).
When you plug new hardware to your Mac, Parallels Desktop lets you decide wether you want to use it on the Mac side, or on the VM side. Even if you choose the Mac, Parallels seems to alter the way the device is recognized by macOS, leading to that awful 16-bit mono sound.
I could not stop my VM because of a (very important) ongoing update process, so I simply deactivated both input and output for audio in the VM settings (you can do it live). That did the trick.
dude, iv'e been having this problem with my beats and this helped!
Gotta say, I dealt with this for well over two months, and THIS is the one solution that took care of it, LEGEND!
If zoom is running, you just have to quit out of zoom.
Oh that why ive been in class while using these
Thank you!
It turns out that the iOS Simulator (which, after all, is a virtual machine) causes the exact same problem. I quit it and the Airpods instantly went back to glorious stereo. Thanks for putting me on the right track!
Fantastic post. This morning I was trying to listen to something on my spiffy new airpods pro via my mac and couldn't for the life of me figure out why it sounded so bad. Turns out, I did indeed have a Virtualbox VM up. Your MIDI solution didn't quite work for me, but at least I was able to reboot and have an understanding of why the problem was happening, as opposed to just rebooting and the problem gets "fixed".
Im sufferingf from the same issue, but this does not fix it. I have reset my airpods, re-paired them, restarted my mac... nothing works. :(
This was happening for me with Docker. Thank you very much for writing this post.
You are a hero
Same thing happens when there's any audio output from iOS Simulator for me. Thanks. This fix worked for me. Happens with AirPods and the other bluetooth headset I have.
I'm not sure how you can call that a solution. Apple just needs to remedy this, people want to use Airpods and switch from a VoIP call to music listening.
Whenever I click on 2 ch 32-bit it automatically switches back to the previous one, how can I fix this?
So I tried this, I think (I manually hit play on the music after step 8 because it doesn't auto-play after reconnecting, still yucky sounding), but it didn't work for me. It's sad that it hasn't been fixed yet.
Mine has not worked as well. Damn.
Doesn't seem to resume to 48kHz after MIDI quits. Seems to be a Mac exclusive issue - I have never encountered this issue on my iPhone when my AirPods are paired to that.
I was doing some critical listening between a couple different headphones comparing them and I decided to throw the AirPods in the mix. the problem is I was using Sound Studio and it use the default microphone even though I was only playing back the tracks in it upon switching audio sources to the AirPods it switched over and I think pokes the microphone as well and whenever the microphone has been active I've noticed that it switches in to the low quality phone mode as there's no high-quality microphone Bit-rate. so it must be internally switching the white droplets into the lower quality mode/Bluetooth Communication compatibility mode and it can only operate in the one state at a time. And this is why I don't like wireless audio + you have to recharge the darn things on top of everything else. A swap to the default microphone to a different device and that got me good quality audio back. I was doing some thing else and noticed this phenomenon as well which is really annoying as I was trying to determine the audio delay over Bluetooth but anytime I activated an audio input source it went in to the phone mode!
I ended up here after getting so sick of this problem that I Googled it.
This isn't Airpod specific - it has something to do with a microphone getting activated and not shutting it off. (For me, it's related to have multiple inputs and using Zoom.
The fix is to have multiple input devices and switch in Sound Preferences. Switch to the other device and give it a few seconds. Once you switch to the other device, audio will be fixed.
No clue why, but this just didn't work
Thanks so much for this weird workaround. I've been having the same issue with AirPods Max (poor Audio quality after a lot of Zoom meetings). And I've had the problem on both OSX Big Sur and Catalina, but this seemed to do the trick!
HOLY CRAP THANK YOU SO MUCH, saw this posted on a Reddit thread after hours of searching. You are a GOD send. Thank you thank you thank you
hey this worked for my bose qc35 nice one - thank you for sharing
System Preferences -> Sound -> Input
Change it from the earbuds to the computer's built-in microphone.
Then toggle the Output back to the earbuds, if still needed. That should reset the earbuds back to using the higher quality audio codec.
Just wanted to say I was stuck with poor quality with my AirPods Max after a call. Your solution is brilliant. Thx mate 👌🏻
You're a legend for this! Have dealt w this issue for years (swapping in/out of google meets) and never knew there was an inbuilt Apple app for this. Thanks so much!
Hi there,
I have this issue but exclusively in Logic Pro X, Apple's digital audio workstation. It seems that while Logic is open and connected to airpods, it can only play mono sound and not stereo (i.e. 1 channel and not 2 channel). I know this because it physically wont let me change the airpods from 1 to 2 channel in the audio MIDI settings, but DOES let me change it when I close Logic. Had the same mono issue with the first iteration of airpod pro, and the new second generation as well. Seems like a problem they nor I are able to fix. If anyone could help me out that would be fantastic.
kind regards,
Jai