2

I followed this post to normalize the loudness of a clip. I first measure the loudness:

$ ffmpeg -i "Take109 000-012.wav" -filter:a loudnorm=I=-24:TP=-9:LRA=5:print_format=summary -f null -
...
[Parsed_loudnorm_0 @ 0x7fbfc542c440] 
Input Integrated:    -16.5 LUFS
Input True Peak:      +0.0 dBTP
Input LRA:            18.0 LU
Input Threshold:     -27.5 LUFS

Output Integrated:   -20.2 LUFS
Output True Peak:     -9.0 dBTP
Output LRA:           12.9 LU
Output Threshold:    -31.0 LUFS

Normalization Type:   Dynamic
Target Offset:        -3.8 LU

I then feed those values into the linear normalization command:

$ ffmpeg -i "Take109 000-012.wav" -filter:a loudnorm=I=-24:TP=-9:LRA=5:measured_I=-16.5:measured_TP=+0.0:measured_LRA=18.0:measured_thresh=-27.5:offset=-3.8:linear=true -ar 48000 "Take109 000-012-norm.wav"

The problem is that the result has dynamic normalization with the second part of the sentence significantly quieter than the first, probably due to a spike at the very end of the sentence.

Here are the samples: input and output, with voice starting at 00:05.

How can I use linear loudness normalization, in FFMPEG or other, with a target loudness of -24 LUFS for example?

3
  • 1
    I don't know a thing about ffmpeg [& frankly would never use a command-line solution to this type of audio problem] but the manual says "Normalize by linearly scaling the source audio. measured_I, measured_LRA, measured_TP, and measured_thresh must all be specified. Target LRA shouldn’t be lower than source LRA and the change in integrated loudness shouldn’t result in a true peak which exceeds the target TP. If any of these conditions aren’t met, normalization mode will revert to dynamic. "
    – Tetsujin
    Nov 2, 2020 at 12:12
  • Yes, you're right, I forgot about that condition; I had a peak that would exceed the target peak and so it reverted to dynamic. Can you write an answer? And what tool do you use for this type of audio editing? Nov 2, 2020 at 16:07
  • 1
    I'm glad that helped. TBH, as you understand ffmpeg better than me, you could probably write a better answer then me. It's the kind of task I'd me doing as part of a full mix or stem, so I'd be doing it in Logic, Cubase etc with dedicated multiband compressors. I did an answer previously; not necessarily related to this, but it has pretty pictures of my two main vox control plugins - sound.stackexchange.com/a/48859/9601
    – Tetsujin
    Nov 2, 2020 at 16:18

1 Answer 1

3

As mentioned in a comment, FFMPEG will revert to dynamic in the conditions specified in the manual:

linear

Normalize by linearly scaling the source audio. measured_I, measured_LRA, measured_TP, and measured_thresh must all be specified. Target LRA shouldn’t be lower than source LRA and the change in integrated loudness shouldn’t result in a true peak which exceeds the target TP. If any of these conditions aren’t met, normalization mode will revert to dynamic.

In my case, a linear normalization with those settings would result in a soundwave going above 0 dB, so the normalization became dynamic.

I found this in an experiment of not using a limiter in sound pre-processing. I learned from the experiment and re-enabled the limiter.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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