To batch normalize audio files to EBU R128, measure each file’s integrated loudness per ITU-R BS.1770, apply gain to reach -23 LUFS, and keep true peak at or below -1 dBTP. The free ffmpeg-normalize command line and the free LUFScale app both do this well. WavSpec, a Windows 11 app, adds re-measurement from disk, the verified values written into the Broadcast Wave header, and a PDF report to send with the files.
Most people asking this have a folder of mixes, episodes, or stems and a delivery sheet that says R 128. The honest answer is that you may not need to pay anything. This guide shows the free routes first, then where a paid tool earns its keep.
Normalize a batch to R 128, verify every file, and keep the report.
Get it from Microsoft
What does EBU R128 ask for?
EBU R 128 sets programme loudness at -23 LUFS and a maximum true peak of -1 dBTP, measured per ITU-R BS.1770. Broadcasters often layer their own sheets on top: UK DPP AS-11 tightens the window to plus or minus 0.5 LU and recommends -3 dBTP, and promos follow R 128 s1, which adds a maximum short-term loudness of -18 LUFS. Check the sheet your client sends, not just the headline number. For the terms, see LUFS, LKFS, dBTP and LRA explained.
What are the ways to batch normalize to R128?
Facts about other tools come from their own sites, checked on 17 October 2026.
| Tool | Price | Interface | Platform | R 128 two-pass | True peak control | Re-measures output | Report |
|---|---|---|---|---|---|---|---|
| ffmpeg-normalize | Free, open source | Command line (Python 3.10+, needs ffmpeg) | Anywhere Python and ffmpeg run, plus Docker | Yes, by default | Yes, through ffmpeg’s loudnorm | Per-file status and a before and after summary | --print-summary table, --print-stats |
| normy | Free (Unlicense) | Bash script wrapping ffmpeg | Where bash and ffmpeg run | Yes, with a single-pass fallback | Through loudnorm | Per-file result lines | Console summary |
| LUFScale | Free, GPL-3.0 | Desktop app | Windows 10 and 11, macOS 12+ | Normalizes toward a LUFS target | Yes, a True Peak limit | Yes, every output is measured again | CSV |
| WavSpec | One-time purchase in the Microsoft Store, 15-day free trial | Desktop app, watch folder, command line | Windows 11 version 22H2 or later, x64 | Yes, per BS.1770-5 | Look-ahead true-peak limiting | Yes, from disk, up to three passes | PDF, HTML, CSV, JSON with SHA-256 |
Sources: ffmpeg-normalize, ffmpeg-normalize on GitHub, normy, LUFScale.
ffmpeg-normalize (free command line)
ffmpeg-normalize is the tool most guides point to, and for good reason. It batch-normalizes media files with the EBU R128 procedure, two-pass by default, and also does RMS or peak normalization. It can skip files already within a threshold of the target, prints a before and after table with --print-summary, reports a per-file status with exit codes for scripting, handles video files while keeping the video stream, and offers album mode to keep relative loudness across a set. Install ffmpeg and Python 3.10 or later, then run:
pip3 install ffmpeg-normalize
ffmpeg-normalize *.wav -nt ebu -t -23 -tp -1 -of normalized -ext wav
Check the ffmpeg-normalize documentation for the exact options for your version. If you are comfortable in a terminal, this is free and very capable.
normy (free script)
normy is a small bash script built for big MP3 archives such as old radio shows and podcasts. It wraps ffmpeg’s two-pass loudnorm with a single-pass fallback, keeps each file’s bitrate and sample rate, and resumes safely after Ctrl+C. Its example targets -16 LUFS, so set the R 128 target yourself.
LUFScale (free app)
LUFScale is a free, GPL-licensed desktop app for Windows 10 and 11 and macOS 12 or later. It reads MP3, FLAC, WAV, AIFF, M4A, OGG, and Opus, normalizes toward a LUFS target under a True Peak limit, measures every output again to verify it, flags deviations, and writes a CSV report. It also offers a ReplayGain mode that writes gain tags without re-encoding, and an analyze-only mode. If you want a free graphical tool on Windows, start here.
WavSpec (paid, with a delivery report)
WavSpec checks a batch of audio files against a named delivery spec, corrects loudness, true peak, sample rate, bit depth, and file names, re-measures every delivered file from disk, and writes a delivery report as PDF, HTML, CSV, and JSON. Choose the EBU R 128 broadcast preset, run the batch, and every file lands at -23 LUFS within tolerance, under -1 dBTP, at 48 kHz.
Try the EBU R 128 preset on a batch you already delivered.
Get it from Microsoft
When is a free tool enough, and when is WavSpec worth paying for?
Free tools are enough when:
- You only need the loudness number right, and nobody asks for proof.
- You are comfortable with a command line, or LUFScale’s CSV is report enough.
- You work on macOS or Linux as well as Windows.
WavSpec is worth a look when:
- The client wants a report. The PDF lists every file with before and after values, a pass, fail, or advisory per criterion, a loudness timeline, the spec and its reference document, your client and project details, and a SHA-256 digest of every delivered file.
- The delivery has more than loudness. One run also fixes sample rate (windowed-sinc resampling), bit depth (TPDF dither), and file names, and checks short-term loudness for R 128 s1 promos.
- Broadcast Wave headers matter. WavSpec carries bext, iXML, LIST, and cue chunks into the delivered file and writes the verified loudness values into bext (EBU Tech 3285 version 2), so stale values do not travel with the master.
- You deliver to several specs. Ten built-in presets, including EBU R 128, R 128 s1, UK DPP AS-11, ARD/ZDF/ORF, ATSC A/85, Apple Podcasts, and ACX, plus specs you build and share.
The metering follows ITU-R BS.1770-5 and is checked against the EBU Tech 3341 and 3342 test signals.
How do I batch normalize to EBU R128 in WavSpec?
- Add the files. Drag files or folders into the window, or choose Add folder (Ctrl+Shift+O). WavSpec reads WAV, BWF, RF64, AIFF, FLAC, MP3, AAC, M4A, and WMA.
- Pick the spec. Choose EBU R 128 broadcast, or UK DPP AS-11 or R 128 s1 if that is what the sheet says, and set the Delivery folder.
- Check only (F6). Every file is measured and marked Pass or Fail with the reason, with nothing written.
- Check and correct batch (F5). WavSpec corrects each file, writes it to the delivery folder, re-measures it from disk, and saves the report beside the files.
- Send the report with the masters.
For repeat work, the watch folder (Ctrl+W) handles new files as they arrive, and the command line takes --spec, --out, and --check-only. See batch normalizing WAV files to a LUFS target and our audio delivery QC checklist.
What are WavSpec’s limits?
- Windows 11 only, version 22H2 or later on x64. No Mac, no Windows 10.
- Not free. It is a one-time purchase after the 15-day trial. ffmpeg-normalize and LUFScale cost nothing.
- No noise reduction or restoration. It measures and corrects levels and format.
Frequently asked questions
How do I batch normalize audio files to EBU R128 loudness?
Measure each file per ITU-R BS.1770, apply gain to reach -23 LUFS, and keep true peak at or below -1 dBTP. ffmpeg-normalize does this from the command line, LUFScale in a free app, and WavSpec in a Windows 11 app with re-measurement and a report.
Is ffmpeg-normalize good enough for broadcast delivery?
For hitting the loudness target, often yes. It does two-pass R 128 normalization and prints a before and after summary. What it does not do is write the verified values into bext or produce a client-facing PDF report; WavSpec does both.
Is there a free GUI to normalize audio to EBU R128 on Windows?
Yes. LUFScale is free and open source for Windows 10 and 11, normalizes toward a LUFS target with a True Peak limit, re-measures outputs, and writes a CSV.
What is the difference between -23 LUFS and -16 LUFS?
-23 LUFS is the EBU R 128 broadcast target. -16 LUFS is a common podcast and streaming level. Use the number on your delivery sheet.
Does WavSpec overwrite my original files?
No. Originals are opened read-only. Corrected files and reports go to the delivery folder.
Does WavSpec upload my audio?
No. It runs on your PC and opens no network connections.
Try WavSpec
WavSpec is a one-time purchase in the Microsoft Store, and the Store runs a 15-day free trial. Run a batch you have already delivered through the EBU R 128 preset and compare the report with what you sent. See normalize audio to EBU R 128 in a batch, or go to the WavSpec product page.
Verify every file and send the report with the masters.
Get it from Microsoft
EBU is a trademark of the European Broadcasting Union. Microsoft and Windows are trademarks of the Microsoft group of companies. Other product names are trademarks of their owners. WavSpec is not affiliated with or endorsed by any of them.
Last updated 17 October 2026. Published by Automata Labs, a software company in Canada.