Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In different audio sources the level of sounds are different. It's very annoying to set the level of sound on almost every media content. Sometimes, when before you had something quiet, you had to adjust it more louder and after some time you want to play another media - bang! it unexpectedly breaks your headphones, the sound is so loud!

So, is there some plugin/feature which can automatically adjust the level of sound on every media content?

share|improve this question
up vote 22 down vote accepted

Adjusting sound level with a LADSPA plugin

To obtain a fairly normalized sound output level independent of the input level we may use an LADSPA-pugin to filter the sound output through pulseaudio.

As a minimum we need a compressor plugin such as the dysonCompressor from the swh-plugins Install swh-plugins which need to be installed if not yet present.

After having found out the name of our default sink with

pacmd list-sinks

and the exact name of the plugin as it is stored in /usr/lib/ladspa/ (with my system here dyson_compress_1403) we can issue the following command

pacmd load-module module-ladspa-sink sink_name=ladspa_sink master=<alsa_output> plugin=dyson_compress_1403 label=dysonCompress control=0,1,0.5,0.99

Replace <alsa_output> with the exact name of the output sink (in my system this was alsa_output.pci-0000_00_14.2.analog-stereo).

The compressed output can now be listened on the newly created output sink ladspa_sink accessible from the Sound Settings menu.

enter image description here

Control settings for the compressor plugin are as follows: peak limit, release time, fast ratio, ratio. See in the plugin documentation for more details, defaults and minimal resp maximal values for these controls.

To avoid clipping of playback we may also combine this plugin with a limiter after compression. We may use the fast_lookahead_limiter for this with the master sink being now our just created lasdpa_sink from above:

pacmd load-module module-ladspa-sink sink_name=ladspa_normalized master=ladspa_sink plugin=fast_lookahead_limiter_1913 label=fastLookaheadLimiter control=10,0,0.8

Source: settings above were adapted to pulseaudio from brien's blog on miscfits

share|improve this answer
    
very cool! by selecting the output entry above we can promptly hear the difference! btw, cmd to remove them just for tests pacmd unload-module module-ladspa-sink, and to select the normalized sink pacmd set-default-sink ladspa_normalized – Aquarius Power Feb 8 at 20:33
    
I am experiencing a glitch, the volume suddenly gets too quiet, like it have been modified to prevent loudness, and then I have to up the volume one step to hear what ppl are speaking, but then it gets a bit loud.. I wonder if we could have some kind of "equalizer normalizer", where all the frequencies are dynamically managed to let us hear music, sound effects and people speech all properly normalized and never very loud. Any tip/idea? – Aquarius Power Feb 13 at 22:01
1  
@AquariusPower I guess it is because the plugin tries to guess in advance what the volume might be... this appears to be hard coded for 5 ms. You can try with another limiter e.g. from the TAP set: tap-plugins.sourceforge.net/ladspa/limiter.html that has a 12.5 ms latency or another compressor (e.g. MLT mltframework.org/bin/view/MLT/FilterLadspa-1072)... haven't tried that however. – Takkat Feb 13 at 23:32
    
mmm... I must add that, the problem I experienced seems to have happened only on a single youtube video that by luck I was playing just after applying ladspa; this is working great for everything else, including games! thx on these other tips also, I will check them! – Aquarius Power Feb 22 at 2:39
    
Solution is correct but could be improved. It is no longer necessary to specify the exact, system dependent name of the output sink (in the above example, "alsa_output.pci-0000_00_14.2.analog-stereo"). Simply leaving out the "master=<alsa_output>" parameter works fine. – hackerb9 May 13 at 3:59

Volume normalization is present in SMPlayer. Goto software center and download this awesome player, then enable volume normalization under audio options :)

share|improve this answer

Takkat's solution is good, but here's a variation which is simpler and permanent.

There are only two steps:

  1. apt-get install swh-plugins
  2. Cut and paste the following into a file called ~/.config/pulse/default.pa:

    .nofail
    .include /etc/pulse/default.pa
    load-module module-ladspa-sink  sink_name=ladspa_sink  plugin=dyson_compress_1403  label=dysonCompress  control=0,1,0.5,0.99
    load-module module-ladspa-sink  sink_name=ladspa_normalized  master=ladspa_sink  plugin=fast_lookahead_limiter_1913  label=fastLookaheadLimiter  control=10,0,0.8
    set-default-sink ladspa_normalized
    

The next time you log in (or run pulseaudio -k), you will automatically have normalization turned on by default.

share|improve this answer

Earlier I was also having audio normalization issues while playing movies on my VLC media player but few searches over Internet I was able to find a perfect solution for this and I have shared it below so that you can also benefit from it....

Audio Normalization VLC Fix / Audio Out of Sync VLC Fix

share|improve this answer
    
Welcome to Ask Ubuntu! Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. – Kevin Bowen Jan 25 at 23:32

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.