Bring many audio files to the same volume: LUFS for podcasts, Spotify and radio

One episode is quieter than the next, the phone interview is barely audible, the theme music blasts your ears. The fix is normalizing loudness in LUFS, and it can be done on every file at once. Here are the right values and how to do it properly.

· 3 min read · Enrico Fanucchi

In short: to bring many files to the same perceived volume you don't raise the "volume" or the peak, you normalize the integrated loudness in LUFS: -16 LUFS for podcasts, -14 LUFS for Spotify and YouTube, -23 LUFS for radio and TV, with true peak below -1 dBTP. You can do it for free with FFmpeg (the two-pass loudnorm filter, one file at a time) or with AudioSTAX on the whole folder at once.

Why peak normalization is not enough

"Classic" normalization brings the highest sample of each file to 0 dB or -1 dB. But two files with the same peak can sound very different: speech with one cough stays quiet, compressed music sounds very loud. Our ears hear loudness, the average energy over time, and that is what the ITU-R BS.1770 / EBU R128 standard measures in LUFS (Loudness Units relative to Full Scale).

If every file has the same integrated LUFS, episodes, interviews and songs play at the same volume one after another, and listeners no longer have to reach for the knob.

How many LUFS to choose

UseIntegrated loudnessTrue peak
Podcasts and speech-16 LUFS (stereo), -19 LUFS if mono-1 dBTP
Spotify, YouTube, Tidal-14 LUFS-1 dBTP
Apple Music-16 LUFS-1 dBTP
Radio and TV (EBU R128)-23 LUFS-1 dBTP
Audiobooksbetween -18 and -23 LUFS (depends on the platform)-3 dBTP

True peak is the peak estimated between samples too: keeping it at -1 dBTP leaves headroom for MP3 and AAC encoders, which slightly raise peaks and could otherwise distort.

One pass or two?

A single "by ear" pass corrects the volume while it listens to the file, so it keeps raising and lowering it and squashes the dynamics. The right method is two-pass: first the whole file is measured, then one precise gain correction is applied. Voices stay natural and only the peaks that would exceed the ceiling are held back by a limiter.

With FFmpeg, for free (one file at a time)

First pass, measurement only:

ffmpeg -i episode.wav -af loudnorm=I=-16:TP=-1:LRA=11:print_format=json -f null -

FFmpeg prints the measured values (input_i, input_tp, input_lra, input_thresh, target_offset). In the second pass you feed them back to the filter:

ffmpeg -i episode.wav -af loudnorm=I=-16:TP=-1:LRA=11:measured_I=-23.4:measured_TP=-6.1:measured_LRA=7.2:measured_thresh=-33.8:offset=0.3:linear=true -ar 48000 episode-16lufs.wav

It works, but for a whole folder you need a script that reads each file's JSON, care with the sample rate (loudnorm works at 192 kHz, hence the -ar) and a final check. That's where the time goes.

Mistakes to avoid

  • Normalizing very short clips: under about 3 seconds the measurement is not reliable. Leave jingles and stingers as they are or treat them separately.
  • Raising a very quiet file to the target without a true-peak ceiling: peaks go over 0 dB and distort.
  • Overwriting the originals: always work on copies, normalizing again takes a moment if you change your mind about the target.
  • Mixing speech and music without a plan: for a podcast, normalize the finished episodes, not the individual pieces.

With AudioSTAX: the whole folder, in one go

AudioSTAX does all of this on hundreds of files at once, free on Mac, Windows and Linux and without uploading anything. Drag in the folder, choose Podcast (-16 LUFS), Streaming (-14), EBU R128 (-23) or your own values, and before converting you see each file's measured loudness and the gain it needs. Normalization is two-pass with a true-peak ceiling, originals are never touched and in the same batch you can convert the format (MP3, AAC, FLAC, WAV, Opus), clean up voices with AI and create subtitles.

For mastering a single track, with EQ, compressor and listening "as on Spotify", there is ForgeWave.

Frequently asked questions

How many LUFS for a podcast?

-16 LUFS integrated for a stereo podcast (-19 if mono), with true peak at -1 dBTP. It is the reference for Apple Podcasts and most platforms for speech.

Does LUFS normalization ruin the dynamics?

Not when it is two-pass: the file is measured and then raised or lowered as a whole, like turning a knob. Dynamics change only if a limiter is needed to respect the true-peak ceiling.

Can I normalize many files at once for free?

Yes: with FFmpeg and a script that runs two-pass loudnorm on each file, or with AudioSTAX, which does it on the whole folder in one click.

What is the difference between peak and loudness normalization?

Peak looks only at the highest sample; loudness measures how loud the file sounds over time. Two files with the same peak can have very different loudness.