pulseaudio user notes

2020-08-14 • 2020-08-12

When in doubt, pavucontrol can save you/check all mic and speaker sources.

1 interfaces

interface program
cli ponymix
gui pavucontrol
tray pasystray

2 mute noise from a stream

EXTREMELY useful for video calling. Relies on nix and tazjin's monorepo:

nix-build -E '(import (builtins.fetchGit "https://cl.tvl.fyi/depot") {}).tools.nsfv-setup'

Then, in pavucontrol, your audio sinks will have a "LAPSPA Plugin Noise Detector on <sink name>" option added – just point your application output to it and voila! Remove background noise from video calls and other things.

tazjin notes there may be an issue with this out of the box though:

I have this issue on one machine and simply run a shell loop that re-runs the script every ~5 minutes or so, which is unnoticeable and keeps it from drifting

3 TODO Split an audio source so it can go to a stream and your local speakers

Some leftover notes from when I was last messing with this with OBS.

pactl list short sinks

# add a null sync
pactl load-module module-null-sink
# => 25

pactl load-module module-combine-sink slaves=<number>,<name>

 2      alsa_output.pci-0000_00_1f.3.analog-stereo      module-alsa-card.c      s16le 2ch 44100Hz       RUNNING

pactl load-module module-combine-sink slaves=25,alsa_output.pci-0000_00_1f.3.analog-stereo
pactl load-module module-combine-sink slaves=25,null
pactl load-module module-combine-sink slaves=25,analog-stereo

# number is the output of the above
# name is the internal name of the output you want to use on obs?