I think I’ve found the cause, and a workaround.
Confirming the issue
Had the same issue on Speakers, and SteelSeries Arctis 9 USB receiver in Playstation mode. But didn’t have the issue on Arctis 9 usb in PC mode, nor Bluetooth earbuds.
It sounds like a gradual volume change. Increasing gain during quiet parts, decreasing gain during loud parts. (In addition to other EQ effects when you force it off with my workaround.)
I’ve had the issue on Nothing OS 4.0 as well. However I did the deeper investigation and testing of workaround on Nothing OS 4.1. (Build: Metroid-B4.1-260814-1733-EEA)
Workaround
What you want to know, how to turn it off?
1. Get ADB access to your device (no root needed).
2. Force disable the “Audio effects” like so:
adb shell am stopservice -n com.nothing.audioeffect/.AudioEffectControlService
adb shell am startservice -n com.nothing.audioeffect/.AudioEffectControlService
sleep 1
adb shell pm disable-user --user 0 com.nothing.audioeffect
adb shell am stopservice -n com.nothing.audioeffect/.AudioEffectControlService
adb shell am crash --user 0 com.nothing.audioeffect
This should forcibly disable the hidden, privileged, system package com.nothing.audioeffect
The restart/crash shenanigans are necessary because it’s a system service that’s supposed to always run and restart automatically. This sequence reliably stopped it for me though.
You can run this while audio is playing (through speakers) and you should hear the change in real-time like it’s an EQ change.
Restoring to normal
If you applied the workaround, you can restore normal behavior easily.
1. Get ADB access to your device (no root needed).
2. Enable the package again with:
adb shell pm enable --user 0 com.nothing.audioeffect
adb shell am startservice -n com.nothing.audioeffect/.AudioEffectControlService
3. Pause/resume audio or restart your audio app for changes to take effect.
What’s happening (I think)
The Nothing Phone (3), and maybe other devices, uses a proprietary post-processing effect by AAC (not the codec, but AAC Technologies / Didac “Power Sound engine”).
It’s supposed to create an enhanced profile for the speakers. And in my opinion after comparing the before/after with this workaround, it does do that. If only it would stop messing with the gain like this I’d be happy with it and keep this on.
So I think there are two problems Nothing should fix:
- The gain control is annoying and should be turned off, or drastically reduced.
- Some USB devices are incorrectly applying the effect as well.
This is technology for boosting the speakers. So applying it to external USB speakers is a bug. In my case the SteelSeries Arctis 9 USB receiver is kind of unique because it has a “PC mode” and “Playstation mode” with a switch on it. Setting it to Playstation mode causes the bug (speaker boost effect on external audio). While the PC mode (and Bluetooth buds) is fine.
Apps to work around it
DuskoDutina
FWIW I did try several equalizer and “Bit-perfect audio” apps. But it looks like my workaround will only work with ADB right now. No nice user-friendly workaround. But by sharing what I found hopefully Nothing can get to fixing it properly this time.