[Bug]: Plexamp poor quality bluetooth audio on launch (macOS Big Sur)

After a recent Plexamp update (I’m on 3.5.0 now and I think that’s when it started) while using the AirPods Max as my audio output (on macOS 11.4 on a 2019 MacBook Pro), the audio input is forcefully changed to the AirPods Max when launching Plexamp. For those who don’t know, when the AirPods are selected as the input, macOS drops the AirPods output quality to bluetooth phone call profile (or in technical terms hot garbage) so while listening to music you have to leave the audio input set to the macbook’s built-in mic. I can switch it back to the built-in mic while Plexamp is running and it will stay put… until the next time I quit/relaunch Plexamp.

Edit: I no longer think it’s messing with the input based on others’ comments, but something is up.

1 Like

Hmm, that doesn’t make a lot of sense, we shouldn’t be doing anything at all with input :thinking:

It’s super weird but reliably reproducible. Let me know if there’s anything I can provide for debugging.

What do you have the output set to in Plexamp? If you set it to “Default” it should behave as before.

It’s set to “Default”. I’ll keep trying to find a pattern.

Hi. I’m pretty sure I have the same issue, but using a Sennheiser Bluetooth headset, not Apple AirPods.

I think what happens is that when PlexAmp starts it forces the headset into the BT headset (HFP) profile. I haven’t figured out how to confirm this because Apple have very unhelpfully removed the ability to check the device profile / codec in use in Big Sur. (In earlier versions you could alt-click the Bluetooth icon in the menubar to get this info.) Anyway…based on the quality of the audio, I’m pretty sure this is what happens.

The result is that audio sounds super tinny and basically just crap. I found I can force the headset into the desired A2DP profile by opening system preferences > sound, then clicking on the ‘input’ tab, then the ‘output’ tab. After a few seconds the sound cuts off then comes back at the quality expected.

More bizarrely I’ve found this doesn’t work once I’ve joined a Google Meet call, which I do several times a day. At the moment I have to remember to kill PlexAmp before joining a call otherwise the audio is terrible - upstream as well as down - i.e. people complain that my audio quality is terrible until I kill PlexAmp and rejoin the call.

This definitely started with the update to 3.5.0. I’ve been meaning to raise a bug here but since I think this is the same issue, adding my comments here.

If there’s any useful debugging I can try - happy to help.

You may be right. I may have incorrectly assumed Plexamp was fiddling with the input because of how much time I spent fighting with that when I first started using the AirPods Max. It may not be touching the input at all, but it definitely triggers a BT profile change somehow on launch (even before playback begins).

One additional detail: Yesterday I spent some “quality” time listening to the audio when it was messed up and I noticed that in addition to being low sample rate mono, it was also pitch-shifted downward by an octave or so. After I poked (fixed) it, I intentionally put it back to HFP and the pitch shifting was gone leaving only the expected crappy audio. It may just be an AirPods anomaly but I figure I’d mention it just in case.

I can confirm the same thing happens on my Mac mini (M1, 2020) using Bose QC35 via Bluetooth. Tried to select the headphones directly in the audio output settings, no change. Same behavior. Same with Default. It seems like the app makes the Bluetooth headset think it’s making a phone call.

Ok, so I restored the Bluetooth Explorer app that used to come with Apple Developer Tools from an old Time Machine backup. Some further observations below. (I am not technical enough to know how to interpret these btw!)

  • With BT headset connected to MBP and no audio in use, BT Explorer shows zero SCO (low quality headset) connections, 2 ACL connections and 0 Audio ACL connections.

  • Start Spotify app and start playing music and I see 0 SCO connections, 2 ACL connections and 1 Audio ACL connection. I can also see that the A2DP audio profile is being used with SBC codec.

  • Start Plexamp and start playing music and I see 2 SCO connections, 256!!! ACL connections and 0 Audio ACL connections. The BT profile in use is HFP with SCO codec, and the audio sounds sh*t.

  • Using the sys preferences trick explained in my earlier post to get back to good quality sound and the BT Explorer details match what I listed for Spotify above.

  • Here’s the weirdest thing. If I quit Plexamp without fixing the audio and re-open Spotify, it gets stuck in the poor audio mode, with 256 ACL connections - whatever that means. So the effect of opening Plexamp remains even after closing Plexamp.

I hope all this helps get to the bottom of the problem, because it is really darned annoying!

Well, the good news is you guys are technical :sweat_smile:

The bad news is, I’m not really sure what changed that might have the result. The only obvious thing is that we use AudioDeviceGetPropertyInfo and AudioDeviceGetProperty to get more details about the output device.

I connected my AirPods Max to Mac Pro and played something in a web browser, and then started Plexamp and played something.

Is there something I’m missing here?

I guess - but who knows what?!

This issue started happening immediately I updated to Plexamp 3.5.0. It was apparent from the first time I loaded it but I really am out of my depth trying to debug. If there are any logs or similar I could provide that might help, I’ll happily oblige! Just let me know.

Out of interest, is there any way to roll back to the version before 3.5.0? As far as I can tell, it’s not possible because the app auto-updates itself.

1 Like

Probably the best bet here is for me to make you a couple of builds with different things tweaked to see if we can narrow it down, given that I can’t reproduce over here?

Hi Elan - sounds like a plan. I’m happy to try those out if you explain how.

I’m experiencing the same issue with my Sony WH-1000XM3s. I am on MacOS Big Sur 11.4, running PlexAmp version 3.5.0. To my knowledge, MacOS 11 has had a lot of Bluetooth-related issues, so perhaps someone still running Catalina 10.15.7 or earlier could try to repro?

Experiencing the same issue on big sur. Noticed that every time I launch plexamp, the output of the Bluetooth device is set to 1 channel 16 bit int. Verified that by using the midi app on Mac. Changing that to 2 channel 32 bit float fixes the quality issue. But has to be done manually.
Also noticed that specific Bluetooth device doesn’t matter. I tried with Sony xm 2, xm3 and a beats studio. All have the same problem.
All the app settings are set to default.

I’ve been experiencing this same issue since the 3.5 update. AirPods Pro on a 16" intel Macbook Pro on Big Sur 11.4.

After I close Plexamp, poor audio persists in Spotify, etc. If I turn bluetooth off/on and reconnect Airpods Pro, quality goes back up.

1 Like

I can confirm this is also happening on macOS Catalina 10.15.7.

1 Like

Seeing similar with MacBookAir (M1) on Big Sur, starting plex (as in regular plex, not plexamp) after bluetooth headset is connected seems to change to handsfree profile and terrible sound quality.

1 Like

I was struggling with bluetooth audio on my M1 Macbook Air (Big Sur) yesterday. Sometimes it seemed like Plexsamp, sometimes not. But in the end i found that launching Plexamp screwed everything up so even if i close it, the system sound has been changed. It goes all filtered, quiet and no bass at all. Plexamp is definitely triggering something system wide.

After this issue has started… the only fix is to close Plexamp, turn off blueooth, then reconnect. And even then only after fiddling with the system volume does it snap back to normal.

EDIT: protip. If you’re on Apple Silicone, just install the ios app via the App store, it seems to work perfectly. Faster too. The interface is basically all the same anyway being that it was electron based standard UI between versions (I believe). Just missing a few deskop features/settings (and have to “touch-hold” for a few things).

I have a problem that might be related to this thread. I created a new one here, but I’ll also post in here in case this is related.

I’m using Plexamp 3.5.0 – macOS 11.4 – Macbook Pro mid-2015

Each time Plexamp is launched, it will change the sample rate of the audio device in use to its lowest supported rate. For example, when using the built-in output of the Macbook Pro, launching Plexamp will change the sample rate to 44100Hz, no matter what it was before.

I first noticed this bug when I had my Sony WH-1000XM3 Bluetooth headphones connected to the Macbook. After launching Plexamp, the headphones sample rate changed to their lowest supported rate, which is 16000Hz. As you can imagine, it was very noticeable…

But the problem isn’t just with my Bluetooth headphones, it seems to affect any audio device Plexamp is using at launch (like the built-in audio device of the Macbook, as mentioned above).

I’ve been experiencing this since the 3.5.0 update.
It wasn’t doing this before.

Edit:
Something occurred to me.

Is it possible that Plexamp isn’t actually changing the sample rate of the audio device to its lowest supported rate, but instead just tries at launch to always select 44100Hz (which would explain what I’m seeing with the built-in output of the Macbook)? And since the Sony WH-1000XM3 only two supported sample rates are 16000Hz and 48000Hz, Plexamp tries to set the headphones at 44100Hz, fails, and fallbacks to 16000Hz instead?

What is Plexamp trying to do with the audio device in use when it launches?

2 Likes