melcom's FFmpeg Audio Normalizer v4.1.2

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.

Table of Contents

Requirements

To use melcom's FFmpeg Audio Normalizer, the complete FFmpeg suite is required:

Recommended download:

github.com/BtbN/FFmpeg-Builds/releases

Recommended package:
ffmpeg-master-latest-win64-gpl.zip

After extracting FFmpeg, configure the path to the FFmpeg folder inside the application's options menu.

Getting Started

  1. Launch AudioNormalizer.exe.
  2. Open:
    File -> Options
  3. Select the folder containing:
    ffmpeg.exe, ffplay.exe and ffprobe.exe
  4. Use "Add Files", "Add Folder", or drag your files directly into the queue.
  5. Select your desired LUFS preset, True Peak limit and output format.
  6. Choose an audio character preset. Transparent is the default and applies no additional coloration.
  7. Click:
    "Start Normalization"
During processing, the log window displays the current status, FFmpeg output and processing progress in real time.

Update Checks

The 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.

The application only displays a notification and a link to the matching GitHub release. It never downloads or installs updates automatically.

Window Layout

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.

Analysis Results

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.

Output Verification and Results

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.

Normalization Modes & Export Options

Linear (2 Passes)

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.

Dynamic (1 Pass)

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.

Advanced Export Options & Real-Time Specs

The Herbstklang Edition offers total control over your output format:

Playback Controls & Queue

The built-in player and queue have been highly optimized for a seamless workflow:

Audio Properties Inspector

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.

How to access the Inspector:

Select a file in the list and click the [ i ] button, or simply right-click the desired file.

Features by Tab:

Inside the Inspector:

Click on the images to enlarge them.

Presets & Audio Character

LUFS & True Peak Presets

Mastering Character

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.

Transparent

Loudness normalization without additional mastering filters. Dynamic normalization can still change dynamics.

Cohesive

Gentle compression and soft clipping for a more cohesive mix. Can reduce dynamics even in Linear mode.

Punchy

Compression and soft clipping aimed at a punchier sound. Can change transients and dynamics even in Linear mode.

Aggressive

Stronger compression and soft clipping for a denser sound. Can reduce dynamics even in Linear mode.

Quality & Metadata

Audio Quality Preservation

When exporting to WAV or FLAC, original sample rates and bit depths are preserved automatically, unless a custom configuration has been manually selected.

Metadata & Tags

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.

Profile Management

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).

Available Actions:

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).

Additional Notes

Execution Smoothing: Subprocess reading now executes via readline() instead of reading byte-by-byte. This significantly cuts CPU overhead and entirely prevents GUI stutter during active processing.
Robustness Guards: The application proactively prevents queue additions if the configured FFmpeg path is missing or invalid to avoid runtime issues.
If a process is interrupted or an error occurs, temporary working files (.temp) are automatically removed.

About This Help File

This project was created by melcom and released under the MIT License.

Project website:
melcom-creations.github.io/melcom-music