Volume control constantly fluctuating

Weird problem that surfaced recently, and I’m hoping someone can help figure it out!

Sometimes—haven’t figured out what triggers it, but it happens a lot—I’ll start hearing a faint “pop!” sound frequently. Either about a second apart or constantly, like four times a second. Finally, I figured out this is the sound KDE makes when the volume slider changes.

Looking at the Audio Volume control, I can see it going back and forth rapidly, changing by a couple of % in each direction. Each time the slider moves, it triggers the pop. Sometimes it even starts a video in Firefox if I have it paused—even in a tab that isn’t active! It also causes scrollbars and text entry fields to flicker, and makes menus close, so navigating in the browser can be challenging when this is happening.

It doesn’t seem related to the headset’s volume controls (Poly Voyager, connected with a USB wireless dongle), though it does seem suspiciously like a phantom keypress or something. It does seem related to the headset, though, because if I unplug the dongle I don’t see this behavior.

Opening the Audio Volume control will trigger this, fairly reliably. The only sure-fire way I’ve found to stop it is to hit Ctrl+Esc to open System Activity.

Has anyone run into this issue before? If so, how did you fix it?

To stop audio level changing in Firefox, disable Automatic Gain Control (AGC) in Firefox configuration page about:config

Disable WebRTC audio post processing - Firefox/Tweaks - ArchWiki

  • media.getusermedia.aec_enabled (Acoustic Echo Cancellation)
  • media.getusermedia.agc_enabled (Automatic Gain Control)
  • media.getusermedia.noise_enabled (Noise suppression)
  • media.getusermedia.hpf_enabled (High-pass filter)

If audio levels are still moving, check any other browser or VOIP packages for AGC or similar audio processing

Hi, and thanks for responding, but Firefox is not the cause of this problem; its behavior is just a symptom. Considering that it happens whether or not Firefox is running, I think that’s looking in the wrong direction.

I was looking at bug reports in Archlinux on another matter and noticed this bug report describing similar symptoms
FS#71652 : [pulseaudio] Dancing volume slider after 15.0 upgrade
Upstream report is still open
Bluetooth AVRCP: dancing volume sliders after 15.0 upgrade (#1242) · Issues · PulseAudio / pulseaudio · GitLab

If the USB headset is using Bluetooth AVRCP connection, this command will disable Absolute Volume feature

sudo sed -i 's/load-module module-bluetooth-discover/load-module module-bluetooth-discover avrcp_absolute_volume=false/g' /etc/pulse/default.pa

Support for Bluetooth A2DP AVRCP Absolute Volume - freedesktop.org/wiki/Software/PulseAudio/Notes/15.0

Wow, thank you for that! I had searched for a variety of terms, but “dancing” wasn’t one of them! :roll_eyes:

I’m fairly certain it’s not using Bluetooth—though I technically have a Bluetooth card in this system, I’ve never gotten it working. The headset has its own dongle, which provides a wireless connection.

I’ll look into these bug reports and see if I can contribute anything useful.

Manufacturer’s website shows:

Most other wireless headsets mentioned on here support A2DP; HSP and HFP but do not support AVRCP
Archwiki does not have information about AVRCP yet, but a search for 'avrcp absolute volume`
led to a forum post and the bug reports

Mine is a Poly Voyager 4320 UC, which does seem to support AVRCP. I tried the fix you posted and it had no effect, possibly because it’s not using Bluetooth. I don’t even have Bluez installed.

Looking at pactl list output, it’s detecting the BT700 USB dongle, and the headset is seen as a USB device, specifically the BT700. In case it’s useful to you or someone in the future, you can see the whole output on this paste:

Pastebin: pactl list

Command suggested in post#4 would not change default.pa if module-bluetooth-discover is not found

Linux hardware scan for BT700 device shows only 2 level controls in ALSA
HW probe of Lenovo ThinkPad X390 Yoga 2... #f76e2b6c0f: amixer
‘PCM’ for headphone output and ‘Headset’ for microphone input

Changing the wireless connection within the USB device might only be possible with Plantronics/Poly software on a proprietary OS

Not exactly sure what you mean by “Changing the wireless connection within the USB device.” Could you explain?

I wouldn’t even consider this more than an annoyance, but now I’ve found that Wine games running through Lutris crash when this starts happening. Because I haven’t found how to prevent it yet (though I know how to trigger it, it still also happens at random) I can’t game reliably unless I’m using the headset as a wired device.

I should probably take this issue to a Pulse discussion area…

I am confident that this hardware is using a Bluetooth wireless connection because the manufacturer’s website specifications state headset is using Bluetooth v5.2:

• Bluetooth v5.2
• Class 1
• Multipoint connectivity, headset - connect to two devices at the same time, remembers up to 8 devices
• Supported Bluetooth profiles - A2DP, AVRCP, HSP, HFP

And specifications for the BT700 High-fidelity Bluetooth USB Adapter advise that device uses Bluetooth v5.1

Information also suggests that configuration of advanced Bluetooth features requires proprietary software (not available on Linux) or use of online service - Poly Lens
If the headset can be reconfigured to not share audio connection with another device and is only paired with the BT dongle, the other Bluetooth device would not be able to interrupt audio stream

Sorry for the long delay; been busy with work stuff and this is a low priority lately!

I understand where you’re coming from: The headset may, technically, be using Bluetooth to communicate with the USB dongle. That would make sense, as the BT700 is intended for devices that don’t have Bluetooth, so they can connect to the headset.

However, as far as Linux is concerned the headset is a USB device. I don’t have a working Bluetooth card in this machine; Bluez is not running, Pulse does not detect any Bluetooth devices and is using it over USB.

Are you thinking the volume fluctuation may be due to a conflict between this adapter and some other device the headset is attached to, having a disagreement as to which one gets to set the volume? That is an interesting idea and I will look into it!

your popping of the sound seems to me as a problem that occures if the power-management frequently turns off and on. i hope your soundchip also uses the snd_hda_intel driver.

can you check the output of cat /sys/module/snd_hda_intel/parameters/power_save if it exist and what the output is. in this case i would give a tip how to test if it’s the problem and how to solve it.

Hi, Olli!

The output of that is 1.

Just so you know, I think the “pop” sound is KDE’s notification sound for when the volume is adjusted. (I can’t confirm right now because KDE isn’t playing any sounds for me.) So, in this case because the volume is being changed rapidly, up-down-up-down-etc., I get a lot of fast pops.

well in this case you can try temporarily this at runtime and check if the popping disappeares

sudo echo 0 | sudo tee /sys/module/snd_hda_intel/parameters/power_save

sudo echo N | sudo tee /sys/module/snd_hda_intel/parameters/power_save_controller

if so you can make the changes constant with:
echo “options snd-hda-intel power_save=0 power_save_controller=N” | sudo tee /etc/modprobe.d/hda.conf

be aware that there could already a existing “/etc/modprobe.d/alsa-base.conf” that had to be edited in this case (but i think it is not needed).