====== Linux Sound ======
* [[https://github.com/hastinbe/i3-volume|i3-volume]] – script to change volume and display OSD.
===== Music server =====
[[http://mopidy.com/|Mopidy]]: [[https://github.com/dirkgroenen/mopidy-mopify|Mopify (Spotify für Mopidy, Webinterface)]]
===== PulseAudio =====
* [[https://github.com/lawl/NoiseTorch|NoiseTorch]] – virtual microphone that suppresses noise
===== Pipewire =====
Next generation sound server, meant to succeed PulseAudio's janky architecture.
* [[https://github.com/wwmm/pulseeffects|PulseEffects]] – Effects GUI for Pipewire, older versions support PulseAudio as well.
* [[https://gitlab.freedesktop.org/ryuukyu/helvum|Helvum]] – GTK-based patchbay for pipewire, inspired by the JACK tool [[https://kx.studio/Applications:Catia|catia]].
* [[https://gitlab.freedesktop.org/rncbc/qpwgraph|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 ====
#!/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
# 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!
resample-method = soxr-mq
flat-volumes = no
default-sample-format = s24le
default-sample-rate = 96000