AirPods get stuck in low-quality 16 kHz audio mode when starting a VM
jeffgeerling.com
jeffgeerling.com
Guess what 5.0 finally allows as per spec? You can use any codec you want for telephony mode, including 44.1 stereo + 44.1 mono SBC.
Guess what Apple does not implement, and guess what every 5.0 headset I've seen so far also does not implement? Sigh. Bluetooth is 20 years old this year, and is still a fucking unmitigated trainwreck of unusabilty.
BT can die in a fire.
Apple products that implement AAC over A2DP only do so on iOS devices (and in only limited cases), and also do not implement anything else (such as any form of AptX, or LDAC).
You can check what codec is used by alt-clicking the bluetooth icon in your menu bar and hovering over your headphones. There will a an "Active Codec" entry that shows which one is used (during playback).
I have never gotten both the input, and the output half of a bluetooth headset to work on Windows 10. But that's understandable, since I'm sure Microsoft is strapped for resources, and has more important things to work on - like the bricking the data in My Documents in an OS update.
Even if you don't want the microphone to work, getting sound to come out of a BT headset on Windows 10 is a struggle in itself.
The main problem with AirPods seems to be that they don't make sound because of BT failure. Apple could have missed this detail.
My bluetooth headphones regularly disconnect from my laptop. Thankfully they have a mini stereo plug. (It's much higher quality audiothat way anyways.)
2: I still hate Bluetooth.
I have literally shifted my rating scale for crap technology completely to make room for Bluetooth to be far enough below everything else.
The nice part is a monkey brain interprets that as everything getting better, so I am generally more content with software and tech in general. So, thanks Bluetooth?
I mean, yea, it's more of a pairing headache but it solves this whole class of problems without requiring cooperation from the other half of the system.
I don't have a public source, but for some vehicles bluetooth problems are the number one complain OVERALL.
I get why car tech lags a few years in cars, but I'm constantly surprised by how terrible it is even in high price ranges. Since stereos are no longer swappable modules in the dash, the buttons have sprawled around the console. I was driving an in-law's Mercedes over Christmas and couldn't figure out how to turn on the stereo. When I did, I couldn't tell which buttons were for the stereo, climate control, or other, more core car functions.
Just as you describe, the entertainment system UI is god awful too.
“PortaPow 3rd Gen Data Blocker” https://www.amazon.com/dp/B00QRRZ2QM/ref=cm_sw_r_cp_api_i_X....
In addition to blocking the data lines, it should also provide faster charge speed.
Car makers don't really care. They want features on a list to check off and don't care how well they work. You can't return. The car easily after a month of frustration and realization that the car is the problem not you or your phone trying to interface with them.
* It's probably not anyone's job to make it better [1]
* They're probably just buying the IVI module from someone else and slapping some logos on it. [2]
1: I'm misremembering or can't find a talk by Seth Godin along the lines of "everything sucks because it's no one's specific job to make it better"
https://www.ted.com/talks/seth_godin_this_is_broken_1/up-nex...
I'm confident most people care a lot about the infotainment systems. Even 10 years ago, the Millennials cared about getting their iPods to work. I had modded so many friend's cars or upgraded their head units. Their parents, boomers, just assume it's too complicated (which it is) for audio and navigation. I feel like after literally a decade they've all just given up on everything except basic Bluetooth audio (when it works out of the box).
I've ended up renting, borrowing, and test-driving (and buying) a surprising number of cars over the past 5 years and it's pretty uniformly terrible. I remember being sheepish a couple years ago when the most important thing in a new car was phone compatibility. I would have happily preached and bought something that just worked well.
Volkswagen Jetta?
I would also have the mirror adjustment knob on the door snag on my clothes and snap off.
The album art and track progress I don't really care about (eyes on the road!) but via Bluetooth that's AVRCP and there's a stack of standards for people to butcher there, too.
Fortunately it seems like bridging the two data lines (essentially a 0 ohm resistor) is what’s needed to allow high-current charging (I think it’s 2 amps), so as long as your supply can withstand it (which pretty much every single device can, given that it’s tied to its own 5V rail which can supply many amps) you can just bridge the two pins together. Worst case scenario the overcurrent protection on the port will protect the source device.
For example, people want the experience of turning on their devices and auto-pairing with their other devices. But headphones, for example, don't have much of a UI to manage this.
There's the hellish scenario of everyone in your car hearing the conversation you thought you were having on your back patio in private just because you walked too close to the car (happened to me). But it's not obvious how to prevent that while offering the seamless phone-to-car handoff that people may also expect.
And there's also the case where I indeed do want my headphones to pair with my iPhone that's 15m away in another room instead of the Macbook in front of me. And not my car that my girlfriend just started on the driveway 10m away. And I want to manage this from my headphones which only has two buttons and some multi-tap gestures.
The trade-offs get complex. Also, your tether idea is still something implemented per device rather than something Bluetooth as a technology can solve with some simple tweak.
And then Bluetooth is just hot garbage in environments with lots of interference - I work at a games studio so we have loads of devkits with controllers lying around, and my pretty expensive Sony Bluetooth headphones stutter like crazy unless my phone is within a foot of them.
This is just terrible UX, the choice reality gave us was between auto-pairing that is frequently wrong or having to make one UI interaction. Guess which one they chose?
It is a valuable lesson, never let designers hand-wave away reality because they have a delusional vision of a magic device. Acknowledge reality and design around it instead or you will build crap.
There is still the design problem there however. You kind of have to guess which one 1, 2, or 3 is. And you need the recipient device to actually be on and maintain the connection when you make the switch. So it's not just 1 UI interaction. Depending on your situation, there can be at least 3 and they're spread across multiple devices.
Ideally we'd have a standardized overlay or display on any bluetooth device to indicate its connection status and what it's paired to. But that would be its own headache and would seriously constrain how devices can look or be shaped. How much UI can you really fit on a pair of headphones that are meant to be small?
VW issued a TSB for it and the radio firmware could be updated by the dealership but it was a 3 hour process. I did it, dealership went in thinking it was 1 hour billable and were pissed that I only agreed to pay 1 hour!
They did not get to charge me when the DPF cracked a few thousand miles out of federal emissions warranty because dieselgate scandal already broke and I said "If you can program it to cheat, you can program it to fail"
I don’t know if it was for the reason you mention (to mitigate complaints?) or just to upsell it being bundled with the satellite radio/ gps package, but I was surprised to find that Bluetooth on the infotainment console of the 2018 Camry had been completely disabled.
As in there, but all options grayed out.
An aux connection worked, but I was more frustrated by the idea of disabling basic functionality than anything.
Would they charge to use turn signals if they could?
I dislike bluetooth. It's so much problems. But atleast it has got better since it was introduced in the late 90s(?) when I first tried it with a Ericsson headset.
It's the same UI-less problem as I experience with Chromecast. When the magic box doesnt magically work, you are stranded with no clue what to do other then reseting stuff in random order.
Edit: removed incorrect stuff about the Note 9 - it's listed as Bluetooth v5.0 (LE up to 2 Mbps).
I have trouble processing audio, so it makes calls really difficult. I've started resorting to cheap earbuds to hear people for really critical calls like interviews.
This is in the year 2018, with a less than 2 year old HTC 10 phone.
hear hear!
this is just perfectly stated. but why is it thus? bluetooth had such promise as an idea; where did it go wrong?
[1] The BT5 core spec is freely downloadable. It is a 25MB PDF with over 2800 pages. That's just the core, there are other specifications that layer on top of it.
BT 4.0 was a chance to start over, and it will help a lot, in time... BT 5.1 will likely finally bring stereo audio over BT LE, with a cleaner spec than A2DP is. But once again, until all the EDR (classic) devices out there are trashed, BT classic remains a huge pain in everyone's rear and a mandatory thing to support. How soon is that? More than 10 years from now! Why? Cars are a major BT use case and many still ship with BT 2.1 car kits. People do not replace cars as easily as headphones.
source: i work on this currently
You have my deepest condolences. Thank you for your sacrifice.
USB doesn’t really care what you send over it after a few base class types, BT does.
BT Classic is really bad in the type of designed by committee way. BT Low Energy is alright imo, but intentionally limited (no SPP, 16bit SIG approved GATTS, a 5.0 feature doesn’t “need” to fully support 5.0 in order to be called a BTLE5 device). I think the BY SIG is too big to get out of its own way.
The Linux source for it is even less approachable.
Actual Bluetooth kernel code can be found here: https://github.com/torvalds/linux/tree/master/net/bluetooth
IMO it is quite well organised and readable.
https://c-command.com/toothfairy/
(Note that I neither know how they’re doing it nor have I tried to reverse engineer it. Works well for me in non-VMWare scenarios!)
I use an external microphone anyways, so on my Mac I never use the AirPods as an input. I do on the iPhone and iPad, but not on the Mac.
https://en.m.wikipedia.org/wiki/List_of_Bluetooth_profiles
It's likely switching from A2DP to HSP because the microphone is activated.
This is very common with Bluetooth headsets and it's what still makes me choose corded headsets to this day.
Newest Bluetooth reviews are supposed to have more bandwidth for high quality audio but I'm stuck with (not so) old speakers and car.
If you need wireless, it's better to go with one of those 2.4GHz receivers but they require a small USB adapter. Not really a solution for AirPods.
Note that this only started happening in this particular scenario after 10.14. It happens in other scenarios from time to time (that is, it stays in HSP even after the app requesting mic use is quit).
As soon as the headset is told to turn on the mic, quality drops significantly.
I figured it was by design, and using a better codec/more bandwidth whenever it could afford to, but dropping down to half that in order to run the mic channel side by side.
My issue stems from pulse audio saying that high quality mode is not available though. Common problem though. Not exclusive to AirPods.
If we were to really look at it as a pure bandwidth concept, Bluetooth has plenty of bandwidth to handle high-quality, low-latency, compressed audio streams between two devices. There just isn't a profile written into the spec to handle it, so there's no standard way of negotiating that between a headset and a device.
Thanks for this information. That explains why it is reasonable to drop the audio quality.
Honestly I just hate Bluetooth. I've had it work really well. Been completely pleased. But I've also seen a never-ending raft of this crap. I just don't want to bother. I'll take the wire thanks
I just do not expect much. If it pairs and does anything, cool. Get it done, ditch it quick. When it works well? Total fucking bonus!
I have that gear due to a couple well meant gifts. Like most things, it goes in my road bag. I have a very wide variety of bits in there accumulated over 20 some years. Can handle a ton of odd scenarios. Built it up one fucked scenario at a time. (Like a lot of us probably have)
Edit: New venture, and it is more service related. I am building up a new bag. Lots of new tools instead of bits of tech. Fun!
Every time I go to trim the fat, something comes up. Last time it was some poor tech, early in his career setting up the demo from hell for a trade show. They stuck the guy with some low grade monitor. The combination of the product graphics sub system, it's OS and that screen just would not play well with digital video, which he was equipped for.
Tech support told him analog VGA... the look on his face was hilarious! He thought he was doomed. I went to my room, got the cable and gave it to him.
"WTF?"
I said, "this is how it starts brother, good luck, and keep the cable."
(Yeah, I did replace that one. It is not over yet where analog video is concerned. Soon though. Soon, I keep saying...)
That road bag goes to shows and other engagements where who knows? Worth carrying it.
A lighter version exists in my back pack. Mostly adapters, other bits. Lean and mean. I am mobile enough to warrant some kit or other.
Blutooth has saved my ass a few times. Both kits have a couple basic Blutooth devices, and some USB ones too.
To me, it is like that VGA cable, or odd gender changer, or dongle, USB device, world power brick with tips, etc. An option, and sometimes a welcome one, but not a daily driver.
My dailies are super simple, very robust, ultra low hassle. I just do not have the time and energy. Save that for the tough gigs.
In terms of general use, digital is nice. Movies, my laptop and phone screens.
For games and other things I like to do, analog all the way! Ideally on a CRT, and I have a couple really nice ones.
In my embedded type fun mostly hobby activity, analog is just great. It uses fewer resources, is easier, takes as little as one pin to drive a monochrome HDTV display (use the Y component input), and is generally more tolerant and or can be reasonably abused.
Yeah, I will miss it. Won't die with me for a very long time yet.
Analog audio just is not the same sort of beast. Great gear from the 70's is still entirely relevant in ways that video gear mostly isn't.
This no headphone jack thing is a major annoyance. Going digital in video has advantages. No worries. I get that, and am happy to play along. Besides, I can still do a lot of analog for my own purposes, even if that means signalling into some adapter chip or other.
So far, and some smart people could change things, but so far, digital audio to replace analog out, basically invalidates otherwise relevant gear, and offers next to nothing besides no wire in return. Gott xharge it, dongle it, pair it, configure it, just fuck it.
(One could do no wire with analog means, even optical ones in some cases)
It is a real mess for something largely transparent my whole life. Ugh... hate it.
[1] https://www.jeffgeerling.com/blog/2017/how-i-discovered-my-l...
I find them passable as well — but frequently annoying - though I do like the design and fit a lot...
Also sound sonetimes go to super low volume and I have to reconnect to get volume up.
Not so much.
There's likely some fiddling with the VirtualBox VM settings to prevent it from occurring, but things like Test Kitchen in Chef destroy/create new VMs constantly so any changes get quickly lost.
This is the thing I don't get about Apple. They sell $1.1K phone and include these crappy $3 earbuds in the box. Can they do better? At their production volumes and profit margins, I have no doubt. Even Samsung includes a decent pair of AKGs.
Most of the time that doesn't happen, though—when I hang up the audio goes back to normal mode (48 kHz). So it seems to be a weird bug with the switching that I've only ever seen on the Mac (works perfect on iOS).
The issue appears when I use Rap Coach with Chrome on Android, but doesn't happen in Firefox on Android. It is very frustrating, getting better control over the audio hardware is one of the main reasons I'm going to end up building app store versions of this thing.
It’s Parallels 10 booting up a Windows 7 VM.
Unfortunately, this problem isn't _exclusive_ to AirPods though... it has happened with a few other Bluetooth headsets I've used too. I don't seem to have ever had this issue on my iPad or iPhone, though I can't run VMs on them either :)
https://sennheiseruk.happyfox.com/kb/article/175-different-b...
The real answer may be more subtle than that. Maybe there is just enough bandwidth, but using it would have an adverse effect on latency, which bidirectional use cases are more sensitive to.
Either way, the profiles were designed within constraints. They’re not arbitrary.