You are not logged in.
Pages: 1
I have been experiencing load buzzing and pops for about 2-3 weeks. This is usually triggered by certain applications especially when multiple are running and producing sounds (Legcord, Soundux and wine games such as Uno and It Takes Two). I am using Pipewire.
I have tried changing:
default.clock.allowed-rates
default.clock.quantum
default.clock.min-quantum
default.clock.max-quantum
api.alsa.period-size
api.alsa.headroom
I have also tried changing the latency for some of these apps and games (PIPEWIRE_LATENCY=2048/48000) and I have session.suspend-timeout-seconds = 0 as I also had issues with suspended audio prior.
Only changing the quantum options to higher values helped, but they seem to big and I still get slight popping in some cases. Will these have consequences for my sistem's stability and responsiveness? Is there a better way of fixing this?
default.clock.quantum = 4096
default.clock.min-quantum = 512
default.clock.max-quantum = 32768
Update:
I still have the same issues. Quantum options did not help much.
Last edited by LogicalKarma (2025-03-16 18:47:57)
Offline
cd .config
rm -rf pipewire
cp -r /usr/share/pipewire/ .systemctl --user restart pipewire
Last edited by Halano (2025-03-24 13:17:25)
.:HalanoTheSmartMoth:.
Offline
I appreciate the reply, but could you care to explain the reasoning?
I did partially solve the issue in the meantime. It seems that either the echo cancellation or noise suppression(rnnoise) caused it. I had 2 config files for these which you can find bellow. I am now using noise suppression(still rnnoise) on easy effects and I think the buzzing is gone.
I still have popping when stopping or sometimes when starting playback, however I am beginning to suspect a hardware specific issue as it's either worse or only existent while listening though my usb microphone (AT2020USB-X) .
Legcord is another story, popping always occurs when starting a call or sometimes when ending it whatever I try.
context.modules = [
# Echo cancellation
{ name = libpipewire-module-echo-cancel
args = {
# Monitor mode: Instead of creating a virtual sink into which all
# applications must play, in PipeWire the echo cancellation module can read
# the audio that should be cancelled directly from the current fallback
# audio output
monitor.mode = true
# The audio source / microphone wherein the echo should be cancelled is not
# specified explicitly; the module follows the fallback audio source setting
source.props = {
# Name and description of the virtual source where you get the audio
# without echoed speaker output
node.name = "source_ec"
node.description = "Echo-cancelled source"
}
aec.args = {
# Settings for the WebRTC echo cancellation engine
webrtc.gain_control = true
webrtc.extended_filter = false
# Other WebRTC echo cancellation settings which may or may not exist
# Documentation for the WebRTC echo cancellation library is difficult
# to find
#webrtc.analog_gain_control = false
#webrtc.digital_gain_control = true
#webrtc.experimental_agc = true
#webrtc.noise_suppression = true
}
}
}
]context.modules = [
{ name = libpipewire-module-filter-chain
args = {
node.description = "Noise Canceling source"
media.name = "Noise Canceling source"
filter.graph = {
nodes = [
{
type = ladspa
name = rnnoise
plugin = /usr/lib/ladspa/librnnoise_ladspa.so
label = noise_suppressor_stereo
control = {
"VAD Threshold (%)" = 50.0
"VAD Grace Period (ms)" = 200
"Retroactive VAD Grace (ms)" = 0
}
}
]
}
capture.props = {
node.name = "capture.rnnoise_source"
node.passive = true
audio.rate = 48000
node.target = "source_ec"
}
playback.props = {
node.name = "rnnoise_source"
media.class = Audio/Source
audio.rate = 48000
}
}
}
]Last edited by LogicalKarma (2025-03-27 15:06:56)
Offline
Another update:
I have found an easy way to reproduce the stutters:
Play audio on VLC and hold space. This will pause and unpause rapidly causing stutters. (other media players will also probably work)
After obsessing over this for quite some time and constantly tinkering with the settings I have previously mentioned like a madman, I cleared an SSD and installed Windows 11 to confirm this is not a hardware level issue. Windows had one small stutter the first time I played audio on it after installing and then it worked perfectly fine.
After this, I started Ubuntu to check if this is a configuration specific issue for my installation. Surely enough, it is not. Ubuntu also seems to share the same audio issues.
So is this a driver issue? I am using a MSI PRO-B650-S-WIFI motherboard with a ALC897 audio chip. Where do I go from here?
Last edited by LogicalKarma (2025-03-31 07:08:23)
Offline
Testing with a DAC yields the same results.
Can this topic be moved to Multimedia and Games?
Offline
Popping explicitly when starting and stopping sounds like power saving kicking in, though rapidly paus-unpausing shouldn't trigger the few seconds delay that should have by default, a simple way to test that is creating /etc/modprobe.d/disableHDApowersave.conf
options snd_hda_intel power_save=0and rebooting
note that if you're using TLP or similar they might have their own config application for applying power save in which case you'll have to disable it there.
However that it's only for "two weeks" could also point at a regression with your HW and the pipewire update, but I'd assume Ubuntu to not have that yet.
Moving to Multimedia.
Offline
Thinking back this might have been happening for a while longer (possibly, but not probably, during a hardware change). The buzzing is recent however. Fortunately this seems to be gone. I really do not want to confirm definitively as I could not reproduce the exact same environment I had before.
The popping is now better. It happens just as the audio starts or stops, before it had a delay which made it horribly obvious.
Unfortunately, power_save does not seem to fix the issue. I did see a post of yours before and tried it. I also tried it now and I cannot see any difference.
I did also spot an error from Wireplumber related to my webcam, however I have used my PC without it many times so I did not think it was worth mentioning. I have dumped the logs bellow just in case:
apr 01 15:29:46 karmastation wireplumber[1619]: wp-internal-comp-loader: Loading profile 'main'
apr 01 15:29:47 karmastation wireplumber[1619]: spa.alsa: The decibel volume range for element 'PCM' (-4000 dB - -1200 dB) has negative maximum. Disabling the decibel range.
apr 01 15:29:47 karmastation wireplumber[1619]: spa.alsa: The decibel volume range for element 'PCM' (-4000 dB - -1200 dB) has negative maximum. Disabling the decibel range.
apr 01 15:29:47 karmastation wireplumber[1619]: spa.alsa: The decibel volume range for element 'PCM' (-4000 dB - -1200 dB) has negative maximum. Disabling the decibel range.
apr 01 15:29:47 karmastation wireplumber[1619]: spa.alsa: The decibel volume range for element 'PCM' (-4000 dB - -1200 dB) has negative maximum. Disabling the decibel range.
apr 01 15:29:47 karmastation wireplumber[1619]: spa.alsa: The decibel volume range for element 'PCM' (-4000 dB - -1200 dB) has negative maximum. Disabling the decibel range.
apr 01 15:29:47 karmastation wireplumber[1619]: wp-device: SPA handle 'api.libcamera.enum.manager' could not be loaded; is it installed?
apr 01 15:29:47 karmastation wireplumber[1619]: s-monitors-libcamera: PipeWire's libcamera SPA plugin is missing or broken. Some camera types may not be supported.
apr 01 15:30:36 karmastation wireplumber[1619]: wp-event-dispatcher: <WpAsyncEventHook:0x5ec48b592af0> failed: <WpSiStandardLink:0x5ec48b789ba0> link failed: some node was destroyed before the link was created
apr 01 15:39:14 karmastation wireplumber[1619]: wp-event-dispatcher: <WpAsyncEventHook:0x5ec48b59e5d0> failed: failed to activate item: Object activation aborted: proxy destroyedRelated to the regression idea, I did rollback my kernel at least 2 times. Even back to 2024.
Sorry for the vagueness of the details, it's quite hard to keep track of audio over a larger period of time.
Last edited by LogicalKarma (2025-04-01 12:56:56)
Offline
I also have this issue. I have tried:
- changing quantum values
- downgrading pipewire to 1.27
- switching wireplumber for pipewire-media-session
but nothing seems to make a difference. Neither pipewire nor wireplumber show any errors in their status. pw-top doesn't show any errors either. The poppings sound like xruns but there isn't any indication that they are. I attached the output of alsa-info.sh below.
Update:
I was beginning to suspect hardware issue.
I tried the zen kernel and the issue seems to be gone so far.
update2:
nvm was a fluke
had a 2 hour session with no popping but now its back. sigh.
Last edited by afrostmage (2025-05-07 14:24:49)
Offline
I have this same loud annoying clicking sound mostly whenever stopping and starting audio. Especially annoying when stopping YouTube videos. I have tried every fix under the sun but nothing works. I do not hear any such clicking noises when pausing videos on Windows.
Tried this:
https://wiki.archlinux.org/title/Advanc … g_playback
Tried this:
https://wiki.archlinux.org/title/PipeWi … g_playback
Power saving on my sound module is totally disabled
cat /sys/module/snd_hda_intel/parameters/power_save
cat /sys/module/snd_hda_intel/parameters/power_save_controller
0
N
What is causing this terrible sound?
Offline
In case anybody thought I silently found a fix and am keeping it for myself, that's not the case. I did start looking into it again, but no cigar so far.
Here is a list of situations that might be a link to the problem: Soundux, Legcord/Discord, Proton Games, playing Piped videos on Firefox/Ungoogled Chromium, Easy Effects and playing audio on VLC. When playing/ recording multiple audio sources/sinks it seems to vary from a slight crackle or pop to a louder crackle or pop to a hellish cry of audio pain that lasts 1-2 seconds(not sure how to describe this, the audio becomes a crackling distorted mess) depending on the number of them running side-by-side. I found that, generally, more audio applications cause the issues to be more noticeable. The combination that could reproduce up to and including the hellish cry was Discord with sharing screens, a proton game, Easy Effects and OBS in the background and Soundux.
At this point I have also tried most of the fixes I could find on any forum/wiki. If there any suggestions that fit this scenario please let me know in case I missed something.
There is one new development however. Looking through journalctl (journalctl -f | grep pipewire), I found the following logs:
env[571166]: 'loop->recurse > 0' failed at ../pipewire/src/pipewire/thread-loop.c:425 pw_thread_loop_wait()
env[571166]: 'loop->recurse > 0' failed at ../pipewire/src/pipewire/thread-loop.c:425 pw_thread_loop_wait()
env[571166]: 'loop->recurse > 0' failed at ../pipewire/src/pipewire/thread-loop.c:425 pw_thread_loop_wait()
env[571166]: 'loop->recurse > 0' failed at ../pipewire/src/pipewire/thread-loop.c:425 pw_thread_loop_wait()
env[571166]: 'loop->recurse > 0' failed at ../pipewire/src/pipewire/thread-loop.c:425 pw_thread_loop_wait()
pipewire-pulse[455362]: mod.protocol-pulse: server 0x55cca98627f0: too many client application connections: Connection refused
pipewire-pulse[455362]: mod.protocol-pulse: server 0x55cca98627f0: too many client application connections: Connection refused
pipewire-pulse[455362]: mod.protocol-pulse: server 0x55cca98627f0: too many client application connections: Connection refused
pipewire-pulse[455362]: mod.protocol-pulse: server 0x55cca98627f0: too many client application connections: Connection refused
pipewire-pulse[455362]: mod.protocol-pulse: server 0x55cca98627f0: too many client application connections: Connection refused
pipewire-pulse[455362]: mod.protocol-pulse: server 0x55cca98627f0: too many client application connections: Connection refused
pipewire-pulse[455362]: mod.protocol-pulse: server 0x55cca98627f0: too many client application connections: Connection refused
pipewire-pulse[455362]: mod.protocol-pulse: server 0x55cca98627f0: too many client application connections: Connection refused
pipewire-pulse[455362]: mod.protocol-pulse: 0x55ccaec804d0: [UnrealGame] overrun recover read:591498624 avail:9856 max:7680 skip:7936
pipewire-pulse[455362]: mod.protocol-pulse: 0x55ccaec804d0: [UnrealGame] overrun recover read:754835200 avail:7936 max:7680 skip:6016Offline
Is it pipewire or the rest of the system?
Do you get the same with pulseaudio?
What if you disable all sound daemons and use just alsa (which should™ get you dmix by default)?
Offline
I think I did try switching to pulseaudio at some point in the past to solve these issues. I would rather not switch my audio manager again, but I will see if I can get around to it. Either way, permanently moving away from pipewire or at least pulseaudio is not something I want to do.
I am starting to think this is just an issue with the applications themselves, pipewire-pulse or both, at least for the most severe issues. Here is a breakdown of what I tried today and what seems promising in at least mitigating these issues.
Disabled "Process all output streams" in Easy Effects. I hope this will remove the "hellish cry of audio pain" in my usual scenarios and so far it seems promising. DEFINITELY look into this if you are using Soundux and Easy Effects or even just Easy Effects. I have seen it cause periodic pops too. I doubt that this is the underlying issue as I still have popping when starting or stopping audio. Soundux currently presents no audible issues apart from mild popping when pausing and playing. It should be noted that Soundux uses pipewire for its backend.
Looked into moving VLC to a pipewire backend with vlc-plugin-pipewire on the AUR.
Here is the MP3 I use for testing this case: https://files.catbox.moe/d5or9v.mp3. I did check if there was any distortion present in the file itself and crackling/ distortions should be clearly audible when listening with VLC. Keep in mind that this does NOT always happen. Listen to the first 3 seconds 3-5 times and stop whenever it sounds off or crackles, preferably in quick succession by going back to the start of the song.
I am not sure if this was successful since the audio still crackles when starting playback for around the first 15 seconds (starting within the first 2 seconds of the MP3) in VLC with the Output module set to Pipewire audio output.
After looking further into this I found this site from the maker of the plugin https://www.remlab.net/vlc-plugin-pipewire. Here is a quote:
"Occasional glitches at start-up
This is a known issue in VLC version 3 (and earlier) and more or less affects all audio outputs though ALSA, JACK and Pipewire outputs seem more prone to it than PulseAudio. This should be fixed in VLC version 4."
I could not find an issue on the VLC repo, nor did I spend too much time on it. If anyone else wants to look through it, feel free. At this point I was not quite sure how to handle VLC so I looked for a music player with a pipewire audio backend. I tried Lollypop from the official repositories and it behaves similarly to Soundux. Same results for Strawberry, Clementine and MPV Media Player which all seem to use Pipewire. Then I tried Elisa and the exact same distortion was audible. As far as I know Elisa uses pulseaudio.
Please try testing with VLC and let me know if the distortion happens for everyone, no one or just some users. Same for the popping, but preferably also in another audio player. I am still quite unhappy with how pipewire-pulse is behaving and even when applications use pipewire it still seems to have some popping.
Last edited by LogicalKarma (Yesterday 17:23:09)
Offline
The hellish cry is back
Offline
Either way, permanently moving away from pipewire or at least pulseaudio is not something I want to do.
That's not the plan at all, pulseaudio is now bitrot.
The plan is to answer
I am starting to think this is just an issue with the applications themselves
As a cross-test, do you get this w/ mpv?
You can also
mpv --ao=pipewire thunderstruck.mp3
mpv --ao=pulse thunderstruck.mp3
mpv --ao=alsa thunderstruck.mp3Offline
Pages: 1