This should work conceptually on any Linux OS with PulseAudio but these particular instructions are for Ubuntu.
- Install LADSPA plugins containing the compressor and limiter we'll use:
sudo apt install swh-plugins
- Install PulseAudio Preferences
paprefs
:
sudo apt install paprefs
- Open PulseAudio Preferences:
paprefs
- Go to the Simultaneous Output tab.
- Check Add virtual output ... all sound cards and Close.
- Copy
default.pa
from this gist to~/.config/pulse/
. - Restart PulseAudio:
pulseaudio -k
The normalized output is selected by default. If you want to change this behaviour you can comment out or delete the set-default-sink ladspa_normalized
line in the ~/.config/pulse/default.pa
file. You can also select any other output from the PulseAudio settings when you need unmodified output. This approach can be modified to instead normalize the volume of a particular sound device instead of normalizing the simultaneous virtual device.
https://askubuntu.com/questions/95716/automatically-adjust-the-volume-based-on-content