So was recently getting some random crackling/popping in pipewire and having trouble reproducing it. Doing some digging i found out that pipewire has two buffers. Long story short I fixed my crackling issue by adjusting my quantum levels. So if you’re having any issues here’s something to try.
Check pw-top
that will show you a realtime view of device and node stats.
Then, if you haven’t already, create a global (/etc) or profile (/home) config file. Examples commands using profile config:
cp /usr/share/pipewire/pipewire.conf ~/.config/pipewire/
then edit your pipewire.conf:
nano ~/.config/pipewire/pipewire.conf
These are the changes I made, adjust based on your system resources:
default.clock.quantum = 32
default.clock.min-quantum = 16
default.clock.max-quantum = 768
Finally restart pipewire. I’m not sure exactly if you need to restart all these services but, I did and it worked fine.
systemctl --user restart pipewire pipewire-pulse wireplumber pipewire-socket
You can check that they back up and running with this:
systemctl --user status pipewire pipewire-pulse wireplumber pipewire-socket
I also ran across this Manjaro post that might be helpful as well.