‘Fixing’ Suspended Bluetooth Audio Starting Quiet in Linux
During a sale I bought an Anker Soundcore Motion+. The idea was to use it as a computer speaker. I wasn’t sure when I ordered it if I would use it via Bluetooth or AUX. Once it arrived I found that when plugged in to charge the speaker had horrible noise when AUX was used. If you disconnected the USB cable it had a very low hiss but that nothing out of the ordinary. I tried a better shielded audio cable but it still occurred. After a bunch of testing I found that if I used a high quality Thunderbolt 3 (USB-C) cable and plugged it into the Dell D6000 USB dock I have (for extra monitors) then the noise was low enough to be usable. Why didn’t I use Bluetooth? I found that after 30’ish seconds the audio would not be generated for a second or so. Not a delay but as if the volume was low. I suspected it was going into a low power mode and it was extremely annoying. Especially given the audio was much clearer compared to the powered AUX mode. But it was “good enough” so I left it. However, after changing machines the hiss got worse so I’ve revisited the problem.
Turns out I was right. The speaker was being put to sleep and the low volume was it being woken back up and that took a second or two. It appears this can be managed on Linux (when using PulseAudio) by disabling the suspend on idle module. After doing so I have no delays when playing audio after a while of silence. Perhaps there is a more elegant way to do this (like per device disabling)?
To disable across the board:
- Open “/etc/pulse/default.pa”
- Comment out “load-module module-suspend-on-idle”
- sudo pkill pulseaudio
I imagine there is some way to do similar on Windows but I’m not sure how to do so.