Is there a simple solution for batch audio normalization? I used to rely on Adobe Audition. It's a really good start for beginners, but it has some problematic aspects. This piece of software hangs up your computer trying to process several dozens of tracks, not to mention several hundreds of them. But what's more annoying is that it can't produce identic results with the matching checksums. Most significantly, Audition is inaccurate in detecting true peaks.

Is there a reliable solution? Of course, ffmpeg and its amazing audio filters. Let me introduce NormaWave, my way of automating up to 9 passes of normalization routines with a single click. You'll need Microsoft Excel 2016 or later. There are built-in setup instructions and links to the latest editions of ffmpeg and FLAC. Remember to close other workbooks before opening this file.

This script has been thoroughly tested on numerous VA compilations, primarily on majors' 101 hits series. 14 dB abyss between the loudest and the quietest track is an absolutely common thing there. What do you want from those breezy fellas? They listed Martha Reeves' "Heat Wave" twice on "101 Motown Anthems (UMC10106)". But the biggest set of track was 1293 youtube music videos. The difference between the integrated loudness values was equal to 22,2 dB (-26,49 dB / -4,29 dB). Can you guess the amount of tracks with their true peak values above zero? More than a half, 678 to be precise. It took 18 hours to normalize them. Meanwhile the PC was available for other tasks.

Here's a screenshot after the first pass (reading stats). The files were renamed to prevent executable files failures. Most tracks have the maximum true peak above zero. As you can see, the script detected that -13,5 dB is the ideal integrated loudness value for this disc, thanks to the weakest 15th track. But to obtain -13,5 dB you have to proceed with the "Volume" filter.

I chose to continue with the "Loudnorm" filter to show you how to squeeze LRA values. 14 minutes later after several batch processes the normalization was over. The files got their names back. I changed the sample rate just for fun, to show you such opportunity. Usually every track needs two passes, but changing LRA is not a trivial task. So in this case the 12th track required 9 passes, the 7th felt like 8 passes, and the 15th fit in only 3 passes.

Trust me, after "ffmpeg -af volume" normalization and without off-the-scale true peaks your listening experience will become something new.