====== 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