Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Normalize volume level with PulseAudio

Normalize volume level with PulseAudio

This should work conceptually on any Linux OS with PulseAudio but these particular instructions are for Ubuntu.

  1. Install LADSPA plugins containing the compressor and limiter we'll use:
sudo apt install swh-plugins
  1. Install PulseAudio Preferences paprefs:
sudo apt install paprefs
  1. Open PulseAudio Preferences:
paprefs
  1. Go to the Simultaneous Output tab.
  2. Check Add virtual output ... all sound cards and Close.
  3. Copy default.pa from this gist to ~/.config/pulse/.
  4. 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.

Credit

https://askubuntu.com/questions/95716/automatically-adjust-the-volume-based-on-content

.nofail
.include /etc/pulse/default.pa
# Create compressed sink that outpus to the simultaneous output device
load-module module-ladspa-sink sink_name=ladspa_sink master=combined plugin=dyson_compress_1403 label=dysonCompress control=0,1,0.5,0.99
# Create normalized sink that outputs to the compressed sink
load-module module-ladspa-sink sink_name=ladspa_normalized master=ladspa_sink plugin=fast_lookahead_limiter_1913 label=fastLookaheadLimiter control=10,0,0.8
# Comment out the line below to disable setting the normalized output by default:
set-default-sink ladspa_normalized
@dhalucario

This comment has been minimized.

Copy link

@dhalucario dhalucario commented Aug 18, 2020

This is alright but the problem is when you have multiple audio devices (like a HDMI monitor) it just plays it on all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.