Open-source audio normalization powered by FFmpeg, LUFS and True Peak processing. Built for music production, podcasts, gaming audio and large batch workflows - without requiring command-line knowledge.
To use melcom's FFmpeg Audio Normalizer, the complete FFmpeg suite is required:
ffmpeg.exe - Audio analysis, normalization, and metadata writingffplay.exe - Audio preview playback and player operationsffprobe.exe - Reading technical audio information and column detectionffmpeg-master-latest-win64-gpl.zip
After extracting FFmpeg, configure the path to the FFmpeg folder inside the application's options menu.
AudioNormalizer.exe.File -> Optionsffmpeg.exe, ffplay.exe and ffprobe.exeThe application can check GitHub Releases for a newer public version when it starts. This option can be enabled or disabled under File -> Options. Pre-release updates can be included with a separate option; they are excluded by default.
The automatic check stays silent when the installed version is current or GitHub cannot be reached. Use Info -> Check for Updates... to run a manual check and always receive a result.
Drag the horizontal divider above the process log to change its height. Drag the vertical divider between the files and settings to change their widths. Settings can be scrolled when there is less space. Processing controls remain visible below the work areas.
Window size, divider positions, and maximized state are saved automatically in the Layout section of options.ini and restored at the next start. File - Reset Window Layout restores the built-in layout. Layout is independent of audio profiles and is preserved when changing output format, language, or theme.
Use Analyze Only to measure the files in the queue without changing or encoding the audio. The report opens automatically when the batch finishes and can be reopened with "Analysis results...". It lists loudness, True Peak, loudness range and PLR, with additional signal measurements for each file. The targets selected at analysis start are used only for comparison; signed differences are not a prediction of normalized output. Copy one result or all results, or export the complete report as CSV. Analysis and normalization reports are kept separately for the session; a new run replaces only the report of the same kind. Unmeasurable, failed and canceled files are labeled explicitly. If a file fails, analysis continues with the remaining files. Canceling keeps results already collected.
Normalization Results offers the same individual and complete clipboard reports and CSV export, including original, target and measured output values, status, processing mode and encoding details.
Both result windows open automatically after a completed analysis or normalization run. Hover over either result button for an explanation, including when it is disabled. After cancellation, collected results remain accessible through the corresponding button.
MP3 and M4A now default explicitly to 320 kbps CBR, independently of the source bitrate. MP3 uses LAME algorithm quality 0. VBR is enabled only by choosing a VBR quality preset; M4A offers q2 and q1. OGG/Vorbis defaults to 320 kbps ABR, which is an average-rate target, not strict CBR. Its VBR quality presets remain explicit alternatives. Older lossy profiles with Original / Default load the new format default; the old Vorbis option labeled 320 kbps (CBR) maps to 320 kbps (ABR). Profiles store the explicit quality selection. Format guidance below Specs explains encoder headroom; the text wraps with the panel. Results and clipboard export include the encoding selection.
"Encoder Headroom (dB)" reserves 0 to 3 dB before MP3, M4A, or OGG encoding to allow for peaks introduced during lossy encoding. It lowers the internal True Peak limit by the specified value, down to FFmpeg's minimum of -9 dBTP. The selected loudness and final True Peak targets remain unchanged. A value of 0 disables the additional margin. The setting is available under Output Format and is stored in profiles. Older profiles default to 0. WAV and FLAC ignore this setting. Results and clipboard export show the requested and applied margin. Output verification measures the encoded file against the selected targets without changing it.
Enable "Verify output files" before starting normalization to measure the finished encoded files. This option is off by default and adds analysis time. File - Options saves the default; profiles can store the selection. Older profiles load with verification disabled.
After processing, open "Results..." to compare original, target, and measured output. Results belong to the most recent normalization batch and stay in memory until another normalization batch starts or the application closes. Copy the selected result for your records.
File creation and verification have separate outcomes. A failed or canceled verification does not discard a successfully created file. Loudness is checked within +/- 0.2 LU; True Peak may exceed the selected limit by at most 0.1 dB for a passing check. LRA is displayed as information without a target test. These are application tolerances, not a certification.
Measures first and requests a fixed gain. FFmpeg can switch to dynamic processing if True Peak or loudness-range limits prevent linear processing. The mastering preset processes the audio before normalization and can change dynamics even when FFmpeg reports Linear. When analysis cannot establish loudness, the two-pass loudness adjustment is skipped and verification cannot pass. Silence and very short files are examples.
Valid targets are -70 to -5 LUFS and -9 to 0 dBTP. Original / Default preserves supported WAV bit depths, including 64-bit float. Standard lossy encoder settings are used when the source bitrate is incompatible with the output codec. Conflicting output paths are rejected before processing.
Measures first and requests a fixed gain. FFmpeg can switch to dynamic processing if True Peak or loudness-range limits prevent linear processing. Pass counts refer to normalization. Output verification adds a measurement of the encoded file; mastering may also require a separate original-file measurement.
Adjusts gain over time and limits peaks. This can reduce the difference between loud and quiet sections. Pass counts refer to normalization. Output verification adds a measurement of the encoded file; mastering may also require a separate original-file measurement.
The Herbstklang Edition offers total control over your output format:
192000 Hz (192 kHz).Specs: line shows the current output settings. Changing the format resets the sample rate to "Original / Default" and quality to that format's default. MP3 and M4A default to 320 kbps CBR; OGG/Vorbis defaults to 320 kbps ABR.The built-in player and queue have been highly optimized for a seamless workflow:
NtSuspendProcess), consuming exactly 0% CPU power while paused.Loudness Range (LRA) describes variations in loudness over time. Sample Peak is the highest digital sample level; True Peak also accounts for estimated peaks between samples. DC Offset is the signal's DC component.
Loudness in the result tables means integrated loudness over the file, measured in LUFS. Relative Gate Threshold is the relative measurement gate reported by FFmpeg; it is not a compressor threshold or an audio noise gate. Min / Max Sample Value shows signed sample values, not levels in dBFS. Crest Factor compares Sample Peak with RMS; PLR compares True Peak with integrated loudness. LRA describes loudness variation and is not interchangeable with either ratio. The measured bit depth describes the decoded samples, not the bit depth of the file format.
PLR (Peak-to-Loudness Ratio): PLR is the difference between the maximum True Peak and integrated loudness of the same file. It is shown in LU and complements LRA and crest factor. It is derived from the existing analysis without another measurement pass. Missing or nonfinite measurements are shown as N/A; PLR alone does not rate sound quality.
The integrated Audio Properties Inspector allows you to view comprehensive details about your audio files, edit metadata (ID3 tags), manage cover artwork, and review detailed loudness statistics.
Select a file in the list and click the [ i ] button, or simply right-click the desired file.
N/A.Click on the images to enlarge them.
The mastering preset processes the audio before normalization and can change dynamics even when FFmpeg reports Linear.
These names describe the intended sound character, not standardized measurements. The audible result depends on the source material. Compression and soft clipping are applied before loudness normalization; they can reduce peaks as well as change attack and density.
Loudness normalization without additional mastering filters. Dynamic normalization can still change dynamics.
Gentle compression and soft clipping for a more cohesive mix. Can reduce dynamics even in Linear mode.
Compression and soft clipping aimed at a punchier sound. Can change transients and dynamics even in Linear mode.
Stronger compression and soft clipping for a denser sound. Can reduce dynamics even in Linear mode.
When exporting to WAV or FLAC, original sample rates and bit depths are preserved automatically, unless a custom configuration has been manually selected.
Artist, album, title, year and additional metadata are copied automatically to the normalized output file.
MP3 files automatically use the ID3v2.3 standard for maximum compatibility with Windows Explorer and hardware players.
The Herbstklang Edition features a flexible configuration profile system that allows you to save, load, and manage your preferred parameter settings. This is highly useful for rapidly switching between different workflows (e.g., podcast normalization vs. high-fidelity music mastering).
/profile/ directory. You can specify a custom file name./profile/ directory to instantly restore your workspace state.The profile system saves the complete set of Loudness settings (target LUFS, True Peak, Mastering Character), the chosen Normalization Mode, and the Output Format details (including target Sample Rate and Quality/Bit Depth selections).
readline() instead of reading byte-by-byte. This significantly cuts CPU overhead and entirely prevents GUI stutter during active processing..temp) are automatically removed.This project was created by melcom and released under the MIT License.
Project website:
melcom-creations.github.io/melcom-music