Linux Sound
- i3-volume – script to change volume and display OSD.
Music server
PulseAudio
- NoiseTorch – virtual microphone that suppresses noise
Pipewire
Next generation sound server, meant to succeed PulseAudio's janky architecture.
- PulseEffects – Effects GUI for Pipewire, older versions support PulseAudio as well.
- qpwgraph – graph manager for PipeWire, very similar to QjackCtl.
- pw-viz – visualise Pipewire inputs/outputs/routing.
Commands
# toggle mute mode pactl set-sink-mute 0 toggle # increase volume of default sink (=sound target) in 1% steps # warning: can exceed 100%. pactl set-sink-volume @DEFAULT_SINK@ +1%
ALSA
Commands
# lower volume and unmute amixer set Master 5%- unmute # raise volume and unmute amixer set Master 5%+ unmute
Scripts
- automute.sh
#!/bin/sh # check auto-mute state amixer -c 1 sget "Auto-Mute Mode" | grep "Item0: 'Disabled'" # $? is 0 if auto-mute is disabled # $? is 1 if auto-mute is enabled if [ "$?" -eq "0" ]; then amixer -c 1 sset "Auto-Mute Mode" Enabled else amixer -c 1 sset "Auto-Mute Mode" Disabled fi
Troubleshooting
suddenly no sound with USB sound card
$ alsamixer cannot open mixer: No such file or directory
- /etc/modprobe.d/alsa-base.conf
# Keep snd-usb-audio from beeing loaded as first soundcard options snd-usb-audio index=-2
-2 → 0
bad audio quality / crackling / lag
Crackling or popping in PipeWire usually comes from buffer underruns or resampling issues.
Causes
- Missing realtime scheduling (no rtkit)
- Wrong sample rate or small quantum
- CPU power-saving or load spikes
- Aggressive resampling between 44.1 kHz and 48 kHz
Fix: Install realtime support
sudo pacman -S rtkit
Fix: Edit PipeWire config
default.clock.rate = 48000 default.clock.allowed-rates = [ 44100 48000 ] default.clock.quantum = 1024 default.clock.min-quantum = 512 default.clock.max-quantum = 2048
Fix (Optional): Adjust WirePlumber ALSA settings
["api.alsa.period-size"] = 1024 ["api.alsa.headroom"] = 8192
Restart PipeWire
systemctl --user restart pipewire pipewire-pulse wireplumber
Testing
- Verify settings:
pw-metadata -n settings 0
- Play tone:
speaker-test -t sine -f 440
- Watch logs:
journalctl --user -u pipewire.service -f
- Monitor:
pw-top
If crackling persists, increase `quantum` or disable CPU power-saving.
audiophile settings for pulseaudio
Might cause crackling when CPU load is high!
- ~/.config/pulse/daemon.conf
resample-method = soxr-mq flat-volumes = no default-sample-format = s24le default-sample-rate = 96000