Unwanted dynamic range compression/ducking of audio on Android
I've talked trash about Bluetooth for years (and rightfully so, often) but I finally did some detailed testing and determined that it appears to be my Android phone causing this particular effect. Android 10, Sonim XP8.
The best track I found to replicate the effect was Griz - Wicked due to the massive bass hits that come in around 1:00 really exaggerating it.
When the bass hits on Android, some sort of compressor kicks in and vocals and everything else get crushed FLAT, resulting in an awful effect where the volume fluctuates, the bass is weak, everything is garbage. This has resulted in crap audio in my vehicles for a couple years now unless I'm listening to the FM radio.
I paired several BT devices that I had blamed for the effect to my PC, and they sound fine playing this track. Both PC and Android are using the same codec, "High Fidelity" A2DP with SBC.
It doesn't matter which player I use on the phone, Ultrasonic and BubbleUPNP playing local copies or Youtube Music Vanced streaming, the compression is present on all of them.
Anyone know what's going on here or want to try to replicate it?
Update: confirmed this effect doesn't occur on an ancient Android 4.0.2 device, once I finally managed to get an audio player running on it. It sounds fantastic.
So whatever causes the compression is either hidden in Android 10 or the Sonim ROM.
Nothing extra I'm running on top, this has been a problem since day one. No idea if it could be something installed in the base image or why that would be the case. Unfortunately there are no ROMs for this industrial phone and no root method.
I tried some aftermarket equalizer type apps and they also didn't help, uninstalled them all. The only thing I have running is "Bluetooth Codec Changer" which I installed for the testing.