1

I am moving from software engineering to audio production. I read a good deal about audio editing (mostly from Transom.org) and I want to produce audio for both radio at -24 LUFS and podcasts at -16 LUFS. The problem is that the loudness range of my recordings is too large: with loudness normalization of -16 LUFS, the peaks go close to 0dB. At the same time, I'm not sure how to use a compressor, as the FFMPEG help page mentions:

The right compression is the key to reach a professional sound and is the high art of mixing and mastering. Because of its complex settings it may take a long time to get the right feeling for this kind of effect.

My recordings are a superposition of background noise at -66 dB with either a performance voice at -20 dB and peaks at -11 dB or background talking while I direct the voice actor. I used FFMPEG's linear loudness normalization:

ffmpeg -i /path/to/input.wav -af loudnorm=I=-16:TP=-1:LRA=11:measured_I=-27.2:measured_TP=-14.4:measured_LRA=0.1:measured_thresh=-37.7:offset=-0.7:linear=true:print_format=summary output.wav

where the measured values come from a first pass (see here). I want a linear normalization to avoid increasing the loudness of background talk.

I tried to set I=-16:TP=-9 (loudness of -16, peaks below -9) and the voice sounds saturated.

I believe that I need some affine transformation: any linear transformation will boil down to a different loudness normalization. And I understand from the graph in Audacity that the compressor is exactly an affine transformation.

All in all, I am looking for entry-level compressor settings of FFMPEG's acompressor filter that will squash the range of the voice actor and produce sound at -16 LUFS that sounds natural and peaks away from 0 dB. I would like to apply these settings to around 1 hour of recordings and think that this will help me in mastering this high art of mastering and mixing.

Is that reasonable? Or is the only way to use compressor trial-and-error and much listening to the audio?

2
  • 1
    There is no one-setting-fits-all unless your recording/mixing engineers have already done a significant part of the task, by ear; or you are prepared to accept whatever-fits-the-numbers, which as you've already discovered usually sounds bad. There is a considerable amount of 'craft' to sound engineering & mastering, long before you ever reach the 'art' part.
    – Tetsujin
    Sep 7 '20 at 16:14
  • Thank you @Tetsujin. Could you write it as an answer? Sep 8 '20 at 10:12
0

@Tetsujin mentioned in a comment that sound engineering requires significant craft:

There is no one-setting-fits-all unless your recording/mixing engineers have already done a significant part of the task, by ear; or you are prepared to accept whatever-fits-the-numbers, which as you've already discovered usually sounds bad. There is a considerable amount of 'craft' to sound engineering & mastering, long before you ever reach the 'art' part.

That being said, you have to start somewhere, and after editing 9 podcast episodes, I found the settings below worked well for me. I had voice at around -32 dB and background noise at around -75 dB. Then:

  • for each track with voice, I gave Audacity a selection of audio with only background noise to learn the noise profile
  • I reduced noise by 24 dB (aggressive because the compressor is going to raise it), with sensitivity 6 and 3 frequency smoothing bands (default)
  • a limiter with a soft limit of -10 dB, a hold of 10 ms, no input gain, and no make-up gain
  • a compressor with threshold of -40 dB (below the voice average) and a noise floor of -50 dB (above the noise average), a ratio of 6:1 (4:1 could work, more than 6:1 increases the volume of background noise), an attack of 1.81 seconds and a release time of 11.1 seconds, compression based on peaks and make-up gain to 0 dB
  • loudness normalization in FFMPEG to -24 LUFS (following this post)

When I ran the limiter after compression, I found that background noise would become noticeable. Since a soft limiter attenuates peaks a lot more than background signals, it's better to do it before compression, when peaks are at -20 dB for example, than after compression, when peaks are at 0 dB and the difference between the new peak and the background noise is smaller, and the loudness normalization then raises the background noise to noticeable levels.

You can gauge the mean and max volume of your sound with:

$ ffmpeg -i input.wav -af "volumedetect" -f null /dev/null
...
mean_volume: -75.1 dB
max_volume: -62.4 dB

For automatic pre-processing of noise reduction, limiting, and compressing, see Automate pre-processing of sound (noise reduction, compressor, limiter) . If the automatic loudness normalization is interesting, I can add the Python code I used for to automate that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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