Measure Loudness in LUFS

Hello,

I would like to post here a macro Loudness Measurement. It measures loudness in LUFS. This was developed thanks to the great help from Steve.
Loudness Measurement.txt (953 Bytes)
History:

  • The concept was originally posted on the Nyquist plugins forum: Measure Loudness in LUFS
  • It was necessary to convert the concept into macro, so it can run two scripts in row. If used as a plugin, it would be still necessary to have one macro that runs the plugin.

Some clarifications to the code:

(cond ((< (linear-to-db pkA1) -30)
(AUD-DO “Amplify:Ratio=31.622776”)))


This part is a small trick. It allows to measure LUFS below -60 LUFS. If you remove that piece of code, you will not be able to measure anything that has value below -60 LUFS. This limitation is part of build-in plugin Loudness Normalization.
* ```text
(AUD-DO \"LoudnessNormalization:LUFSLevel=-35...
(setf lufs (- (- original-peak new-peak) 35))

Maybe you ask why not to normalize to 0 LUFS, but to -35 LUFS??. It is true that 0 LUFS also works. But, only for 32-bit… If someone would use 16-bit or 24-bit, the audio will be heavily clipped at zero level and the measured loudness will have the same value as the peak value. So again this is a simple trick to avoid this. I selected -35 LUFS as a safe level for a standard voice recording, but obviously there can be some very extreme cases when the loudness will be not absolutely precise. This can happened if the recording is extremely low volume but there are some short parts that are extremely loud.

I hope that someone finds this useful.

I’ve just tested the following way:

  1. Generate 30 seconds Brownian noise (mono)
  2. Apply “Loudness Normalization” with default settings (-23 LUFS)
  3. Apply the macro “Loudness Measurement”

Result:

Loudness = > -26.0103 LUFS
Peak = -9.43288 dB

Yes, this is a dilemma for me… I do not use Loudness Measurement with the default settings. It means that I always disable Treat mono as dual mono.
Why? A simple user story goes like this: “For the same piece of audio, I want to see always the same LUFS value, no matter which measurement tool I would use.”
With enabled option Treat mono as dual mono, I do not get the same loudness value. I have compared with multiple measurement tools. For example, if I measure with Insight directly in the Audacity, it looks like this:
Audacity Normalize vs. Insight.png
But if I disable dual mono option, then my measured value is the same, no matter what tool I use:
Audacity Normalize vs. Insight OK.png
I really do not want to say this is good and this is not, I understand that there must be a good reason why the dual mono option is recommended in Audacity. But what can I do, if I want to provide to the users a uniform experience if they would compare with other loudness measurement tools?

Please, I am still learning and there is a lot of stuff that I still do not understand, so I am open to any new knowledge and I appreciate any help to make the tool that would be helpful for other users.

There is. It’s because it is correct :slight_smile:
Turning it off is provided as an option only so that it is compatible with the (many) LUFS meters that handle mono incorrectly.

The whole point of LUFS measurements is to represent “subjective loudness” rather than just “amplitude”. When you play mono audio through a stereo system, the same sound plays through both speakers. If you take a pair of wire cutters and cut the cable to one of the speakers, then you will get half the sound (3 LU lower).

Unfortunately, the official EBU specification (https://tech.ebu.ch/docs/tech/tech3341.pdf) fails to mention mono at all, so it’s unlikely that this issue will be resolved any time soon.

Perhaps as a workaround, your output could show both options when analyzing a mono track?

1 Like

What would you suggest to say in the message, so it is clear for everybody which value is what? I am not sure if all users understand “dual-mono”.

BTW, thank you for explanation. And I am also sorry that there is this confusion…

Tricky. Perhaps something like:

“As played through 1 speaker: xx LUFS”
“As played through 2 speakera: yy LUFS”

@jozefh

Please be aware that when using VST/AU/LADSPA plugins in Audacity, there is an error, has been present for many years
and is still present.

The error is that the audio levels sent to the plugin from Audacity are wrong, they are too high by up to 6dB, and it varies.
This means that any plugin that measures Peak, RMS, LUFS, will report the wrong values.

Also note that this error does not affect built-in effects such as Nyquist ones and the built-in Normalize effect.

I wrote about it here:

Others have reported it too:

The problem/error is present on Windows, Mac and Linux (if not using Jackd).
Under Linux, if the plugin is applied in the Jackd chain (i.e. on the main output of Audacity output, then it’s fine).

Thank you Paul, this is good to know!

Just for the sake of paranoia, I have checked again some audio samples. It goes like:

  • I create 10 mins brownian noise. (or I take any other sample recording)
  • Normalize to -23 LUFS (not as dual mono).
  • Measure with my plugin inside AVV and result is -23 LUFS.
  • Export as WAV mono file.
  • Import into iZotope RX Advanced. Loudness = -23 LUFS
  • Import into Pro Tools. Measure with Insight = -23 LUFS
  • Measuring with Pro Tools Pro Limiter Loudness Analyzer = -23 LUFS

I have also tried some other tools to measure loudness, but always I get the same result.

So it seems that my Nyquist plugin works as expected.

There is an update. Because it is now Nyquist plugin, it is posted on a different forum: click

For the best performance, I recommend to continue to use the macro version.
If you want to study ITU-R BS.1770-4 algorithm translated to Nyquist language or you want to implement lufs measurement into your own Nyquist plugin, see the code of the my plugin.

Hi Steve, Paul and Jozefh

I have been scouring threads on this forum looking for help with my problem and whilst I haven’t found the answers, I feel you are all very knowledgeable and may be able to help me :pray: :pray:

BACKGROUND: I am editing a podcast and would like to achieve -16LUFS for it to be at the right level for Spotify, apple etc.

I am setting ‘Loudness Normalization’ on each individual track containing dialogue to -16 LUFS

THE ISSUE: However, once all tracks are mixed down to one, the Youlean meter is showing different LUFS levels under the ‘INTEGRATED’ heading as either much lower (-28 to -22 LUFS) or slightly higher (-13LUFS).

NOTE: only one person speaks at a time, except for the occasional agreeance with the speaker e.g. ‘yes’ or ‘ahhhh’

However, I do have intro and outro music (I use auto-duck to reduce the music when someone is speaking.

QUESTIONS:

  1. Could the fact that multiple tracks are creating sound at the same time this be what is affecting my LUFS levels when mixed and rendered down to one track?

  2. I am told that all of the popular streaming services will apply their own loudness normalization, so if that is the case, is it still worth applying ‘loudness normalization’ (to -16LUFS) on each separate track bfore doing the mix and export and doing it again?

  3. Is it better to ONLY apply ‘loudness normalization’ once all tracks are mixed and rendered OR, is it still okay to apply ‘loudness normalization’ to each separate track - AND then again once mixed together?

Here is my original thread with all of my questions: LUFS levels change when mixed down to one track

Thank you so much in advance for any advice or tips!

Yes, absolutely. Imagine if there are 30 people that individually talk with a loudness of -16 LUFS, if the 30 people all talk at the same time, the noise that they make collectively will be louder than any one individual.

To set the loudness of the mix, you must mix the tracks first, then normalize the mix.

I don’t think that is the case. Some streaming services “may” apply their own loudness normalization, but I doubt that they all do. I don’t know if YouTube ever normalizes the loudness but I’m sure that they don’t always, because some YouTube videos are very much louder than others.

Yes.
Mix the tracks so that it sounds balanced when you listen to it. Adjust the track “Gain” sliders if necessary so that no single track is too loud or too quiet. Then mix down to a single track, then apply “Loudness Normalization”.

Hi Steve,
Thank you so much for getting back to me so quickly.

Makes perfect sense! thank you for clarifying this! :slightly_smiling_face:

Is it still worth applying the standard ‘normalization’ and ‘compression’ effects to each track before using Gain?

Also, is it better to use Gain slider than to manually ‘Amplify’ the track?

For the projects where I have already used ‘Loudness Normalization’ to -16LUFS for each separate track- and also then mixed them down - and saved the project, is there any way I can amend the LUFS level for the final mixed down project?

If that’s the case, what is the risk of sending in audio which is above or below the recommended LUFS for each service (for example, if Spotify recommend, say, -16 LUFS and I send a project which occasionally hits -13 LUFS, or hangs around -32 LUFS for a while when playing)?

I guess my concern is that it may cause distortion / clipping or sound weird in some way.

Thanks again!!!
Anna

Compression (or Limiting) is used on speech to even out the level. In particular, it is used to push down any peaks that are substantially higher than the rest. It is usually beneficial to have a little bit of compression / limiting on voice recordings. I usually use Audacity’s “Limiter” effect with default settings after Normalizing to 0dB.

This should be done before mixing.

When mixing, you can adjust the track levels either with the sliders, or with the Amplify effect, whichever is more convenient.

I would generally get the tracks “about right” using the Amplify effect, and then tweak the levels using the “Mixer Board” (In the “View” menu). The “Mixer Board” does exactly the same as the track Gain controls, but with longer sliders that are easier to use.

Once the track has been mixed down, it is not possible to adjust the levels of individual voices - you need the voices on separate tracks for that.

You can still adjust the overall level, either with Loudness Normalization, Amplify, Normalize or any other method.

The short answer: Yes you can import the mix track, apply Loudness Normalization, and export.

(A little tip: Avoid overwriting files, just in case you mess up. Export files with a new name, and be organised about how you name things. Example: “FinalMix01.wav”, “FinalMix02.wav”, …)

  1. It can be annoying to listeners when one track is significantly louder or quieter than other tracks on the service.
  2. Some services may reject your work if it does not meet their requirements (Amazon / ACX is know to do this) .
1 Like

Hi Steve,

Just wanted to say thank you for your help and advice. It’s taken me a while to read through it and understand it enough to follow it but I completely get it now so thank you very much!

Have a great weekend!
Cheers,
Anna

In this topic, the original author posted a macro in text file format. Having no experience with this type of stuff, I’m wondering how do you go about installing so that it runs.
Thx.

“Import” the file into the Macro Manager. See: Macros - Audacity Manual

1 Like

To measure LUFS, you need a loudness meter that supports the ITU-R BS. 1770 standard , which defines the algorithm and parameters for calculating LUFS. There are many options available, from standalone software to plugins for your DAW.

Regards

Ankit Adhikari