LUFS Unifier v1.6

LUFS Normalization Tool with Linear Gain Adjustment Only
96kHz/32bit Hi-Res Audio Support

1. Development Background

When creating compilation albums or best-of collections from digital audio files collected from various sources, volume differences between tracks always become problematic. Inconsistent volume levels make listening uncomfortable and annoying. This tool was developed to solve that issue.

The key feature of this tool is that it is designed to preserve the musical dynamics as much as possible, which are often lost in typical normalization processes.

2. Overview

Simply drag and drop WAV files onto the EXE file (or its shortcut) to automatically perform volume normalization. The original files remain unchanged.

Processing Steps:

STEP1: Remove silence from beginning and end, save as separate file (automatically deleted after LUFS normalization)
STEP2: Save volume-normalized WAV files as separate files
STEP3: Convert to ALAC (Apple Lossless: lossless compression format) for playback on smartphones, etc.
OPTION: High-quality conversion to CD format (44.1kHz/16bit) - Optional

New Features in v1.6:

  • Hi-Res Support: Now supports 96kHz/32bit float high-resolution audio
  • CD Format Conversion: Create high-quality CD audio from hi-res sources
  • Memory Optimization: Implemented dynamic memory management for stable processing of large files

3. System Requirements

Required System

  • OS: Windows 10 or later
  • Other: FFmpeg installation required (easily installable with included installer)

This tool is created with the Python programming language. The EXE version integrates all Python components including the Python runtime into a single executable file.

4. Distribution Files

lufs_unifier.exe                EXE file (approx. 105MB)
lufs_unifier.yaml               Configuration file
ffmpeg_install.bat              FFmpeg automatic installer
ReadMe.html                     User manual (Japanese version)
ReadMe_en.html                  This file (User manual - English version)

Note: There is no installation process for this tool. Simply place all files in the same folder.

5. Preparation

FFmpeg must be properly installed. You can easily install it using ffmpeg_install.bat.

1. Double-click ffmpeg_install.bat
2. Follow the instructions to automatically install FFmpeg to C:\ffmpeg
3. Automatically registers to user environment variables (PATH is set) and completes Windows notification

6. How to Use LUFS Unifier

(1) Drag & Drop WAV Files

Drag and drop WAV files you want to normalize onto lufs_unifier.exe (or its shortcut).

✨ Folder Drop Also Supported:

  • Can drop individual files, folders, or a mix of both
  • Only WAV files in folders are processed (subfolders are excluded)

(2) Automatic Processing Starts

The following processes are automatically executed:

STEP1: Remove silence from beginning and end, save as separate file
STEP2: Save volume-normalized WAV files as separate files
STEP3: Convert to ALAC (Apple Lossless: lossless compression format) for playback on smartphones, etc.

(3) CD Format Conversion (Optional)

After automatic processing is complete, you can choose to convert to CD format (44.1kHz/16bit).

Conversion Method:

  • Resampling: librosa Kaiser window function (highest quality)
  • Dithering: TPDF triangular wave (for 16bit conversion)
  • Processing Target: Automatically identifies and converts only files other than 44.1kHz/16bit
  • Output Destination: output_unified/output_cd44/ folder

This conversion allows you to create high-quality CD production audio from hi-res sources.

(4) Output Folders

After processing, the following folders are newly created in the original WAV file folder, with respective files saved in them.

WAV file folder
 │
 └── output_unified folder         Volume-normalized files
       │
       ├── *_unified.wav             LUFS-normalized WAV files
       │
       ├── log file                  File recording processing details
       │
       ├── alac folder               ALAC compressed files (lossless)
       │    └── *.m4a
       │
       └── output_cd44 folder        CD format (optional only)
             └── *_unified_cd.wav    44.1kHz/16bit WAV files

Automatic Deletion of Intermediate Files:

  • trimmed folder: Intermediate file storage folder after silence removal. Automatically deleted after processing is complete

Complete Metadata Preservation: Tag information from the original WAV files (artist name, album name, track name, jacket image, etc.) is completely preserved in both the processed WAV files and ALAC files.

Before using this tool, we strongly recommend properly entering tag information (RIFF and ID3) for the original WAV files using tools like MP3TAG.

About Startup: After drag & drop, it may take several seconds before processing starts. This is due to initialization processing that extracts program components stored in the EXE file to a temporary folder (TEMP). After processing is complete, all extracted components are automatically deleted.

Note: The alac folder will use the album name directly as the folder name if all WAV files have the same tag information "album name".

7. Audio Terminology Explained

RMS (Root Mean Square)

An indicator representing the average strength of sound, also called effective value.

  • What it measures: The "actual power" of sound
  • Characteristics: Relatively close to the volume sensation perceived by human ears
  • Unit: dB (decibels)
  • Example: -12 dB RMS, etc.
  • Usage: Volume balance adjustment during mixing

LUFS (Loudness Units relative to Full Scale)

A loudness unit, currently the most important volume measurement standard.

  • What it measures: "Perceptual loudness" as actually felt by humans
  • Characteristics: Considers frequency characteristics, closest to human auditory perception
  • Unit: LUFS
  • Streaming Standards:
    • Spotify: -14 LUFS
    • YouTube: -14 LUFS
    • Apple Music: -16 LUFS
  • Usage: Mastering for streaming distribution
  • Measurement Method in This Tool: Uses FFmpeg's ebur128 filter (ITU-R BS.1770-4 compliant)

TP (True Peak)

The maximum volume that may occur during digital conversion.

  • What it measures: The actual maximum volume that can occur after DA conversion (digital to analog conversion)
  • Characteristics: Detects hidden peaks not detectable by normal peak meters
  • Unit: dBTP (decibel true peak)
  • Recommended Value: -1 dBTP or below (prevent clipping)
  • Usage: Final check during mastering
  • Measurement Method in This Tool: Speeds up processing (approximately 1.5 to 2 times) by simultaneously measuring LUFS using FFmpeg's ebur128 filter (ITU-R BS.1770-4 compliant)

LRA (Loudness Range)

Represents the range of volume variation throughout a track.

  • What it measures: The difference between quiet and loud parts in a track
  • Characteristics: Quantifies the dynamics (expressiveness) of music
  • Unit: LU (Loudness Units)
  • Guidelines:
    • 3-6 LU: Heavy compression (EDM, pop)
    • 10-15 LU: Moderate dynamics (rock)
    • 15+ LU: Rich dynamics (classical, jazz)

8. How This Tool Works

Basically, it aims to equalize LUFS, but does not perform normalization to a fixed LUFS value. The reason is that this method can significantly change the dynamics (LRA) of tracks in some cases.

Therefore, this tool unifies LUFS only through linear gain adjustment. The processing flow is as follows:

(1) Measure LUFS and TP for each file (ITU-R BS.1770-4 compliant)
(2) By default, limit TP to -0.5 dB, calculate the difference between each file's TP and -0.5, and calculate MAX LUFS for how much LUFS can be raised (or lowered) accordingly
(3) Consider the minimum value of MAX LUFS for each file as the Target LUFS for all files
(4) Adjust gain for each file by the difference between each file's LUFS and Target LUFS
(5) Re-analyze (4), and if maximum TP<=-0.5 is not achieved, adjust Target LUFS and adjust gain again
(6) By default, allow TP error of 0.01 dB to end gain adjustment (maximum 10 iterations of repeated gain adjustment)
(7) After processing is complete, automatically delete intermediate files (trimmed folder)

With this logic, unifying LUFS only through linear gain adjustment theoretically makes LRA variation zero.

Audio Quality Enhancement Features

The following audio quality enhancement features are automatically applied during linear gain adjustment processing:

DC Component Removal: Automatically removes DC components (DC offset) for accurate peak measurement
Float64 High-Precision Calculation: Executes internal processing in 64-bit floating point to minimize cumulative calculation errors
Triangular Wave Dithering: Reduces quantization noise during 16-bit output (automatically skipped for 24-bit or higher. Limiting is intentionally not implemented)

Memory Optimization Features

Memory optimization features are implemented for stable processing of large files:

  • Dynamic Worker Adjustment: Automatically adjusts parallel processing thread count according to file size
  • File Size Determination:
    • Small size (average less than 50MB): Full parallel processing
    • Medium size (average 50-100MB): Reduce parallelism to 75%
    • Large size (average 100-200MB): Reduce parallelism to 50%
    • Extra large size (maximum 200MB or more): Single-threaded processing
  • On-Demand Processing: Reads from the original file when needed without keeping audio data in memory

CD Format Conversion Feature (Optional)

After automatic processing is complete, you can choose to convert to CD production 44.1kHz/16bit format. This feature allows you to create high-quality CD audio from hi-res sources or sources with different sampling rates.

Conversion Characteristics:

  • High-Quality Resampling: Uses librosa Kaiser window function to minimize aliasing
  • TPDF Dithering: Reduces quantization noise during 16-bit conversion with triangular wave dithering
  • Automatic Determination: Files already in 44.1kHz/16bit are simply copied as-is (no re-conversion)
  • Original Data Preservation: Saved in a separate folder (output_cd44) from original LUFS-normalized files

Usage: CD production, writing to audio CDs, distribution in CD quality, etc.

9. About Configuration File lufs_unifier.yaml

Configuration Item Default Value Description
target_tp_db -0.5 TP limit value (dB)
max_iterations 10 Maximum gain adjustment iterations
max_workers 4 Parallel processing worker count (auto-adjusted)
tp_convergence_margin 0.01 TP convergence tolerance error (dB)
threshold_db -50.0 Silence detection level (dB)
min_silence_duration 0.05 Minimum silence duration to detect (seconds)
head_keep_duration 0.2 Head protection duration (seconds)
tail_keep_duration 1.0 Tail protection duration (seconds)
true_peak_timeout 30 TP analysis timeout (seconds)
alac_conversion_timeout 120 ALAC conversion timeout (seconds/file)

10. Troubleshooting

Startup takes time

Cause: Initialization processing to extract program components stored in the EXE file to a temporary folder (TEMP) may take several seconds.

Explanation:

  • It is normal behavior for processing to take about 3-5 seconds after drag & drop before processing starts
  • All extracted components are automatically deleted after processing is complete
  • Once processing starts, it operates at high speed thereafter
Processing stops midway

Cause: File size may be too large or memory may be insufficient.

Solution:

  1. Reduce max_workers to 1-2 in lufs_unifier.yaml
  2. Reduce the number of files to process at once
  3. Close other applications to secure memory

Supplementary: In v1.6, dynamic memory management automatically switches to single-threaded processing even for large files, improving stability.

Silence cutting doesn't work properly

Cause: The silence detection threshold setting may not be suitable for the track.

Solution:

  1. Adjust threshold_db in lufs_unifier.yaml
    • Classical music: -60.0 dB
    • Pop/Rock: -50.0 dB (default)
    • Electronic music: -45.0 dB
  2. Adjust protection duration with head_keep_duration / tail_keep_duration
FFmpeg not found error

Cause: FFmpeg is not properly installed or environment variables are not set.

Solution:

  1. Running the included ffmpeg_install.bat will install FFmpeg and automatically set user environment variables and notify Windows.
  2. You can check installation status by running ffmpeg -version in Command Prompt.

11. Security Information

VirusTotal Scan Results

This EXE file has been scanned by third-party VirusTotal:

  • Detection Status: 4/69 (false positives by some security software)
  • Scan Results URL: View on VirusTotal

About False Positives:

  • Only detected by: Avast, AVG, Jiangmin, Zillya (4 total)
  • Major security software (Windows Defender, Kaspersky, McAfee, Norton, etc.) do not detect it
  • Detection reason: False positive pattern for tools that convert Python scripts to EXE (PyInstaller, etc.)
  • Contains no malicious code whatsoever

⚠️ About Warnings During Download

Browsers may warn that it is a "dangerous file," but this is a false positive.

For Chrome:

  1. "Dangerous file" is displayed in the download bar
  2. Click the "^" to the right of the filename
  3. Click "Continue" or "Keep"

For Microsoft Edge:

  1. "This file can't be downloaded safely" is displayed
  2. Click "..." (details)
  3. Click "Keep"

⚠️ About Warnings on First Run

Windows Defender (SmartScreen) may display a warning, but this is a false positive:

  1. "Windows protected your PC" is displayed
  2. Click "More info"
  3. Click the "Run anyway" button

12. Disclaimer

Usage Precautions

  • Use of this tool is at your own risk.
  • The developer assumes no responsibility for any changes in sound quality or losses that occur due to audio file processing.
  • We strongly recommend backing up important files in advance.
  • For commercial use, please comply with relevant copyright laws and license agreements.
  • The developer assumes no responsibility for any damages that may occur due to the operation of this tool.
  • Due to Windows specification changes or FFmpeg updates, it may not work in the future.
  • Support is not provided as a general rule.

13. Version History

v1.6
October 2025
Feature Additions:
  • Automatic deletion of trimmed folder
  • 96kHz/32bit float support (hi-res audio support)
  • CD format conversion feature (Kaiser window resampling + TPDF dithering)
  • Stable processing of large files through dynamic memory management
  • Memory usage reduction through on-demand processing
  • Folder drop support (subfolders excluded)
v1.5
October 2025
EXE conversion support eliminates need for Python environment. Memory optimization, integrated installer addition, ALAC conversion feature enhancement, audio quality enhancement features (DC component removal, Float64 high-precision calculation, triangular wave dithering), LUFS/True Peak measurement speedup (approximately 1.5-2x) through FFmpeg integration
v1.4
August 2025
True Peak control improvement, parallel processing support
v1.3
July 2025
Silence trimming feature addition, metadata preservation feature

14. Developer Information

Developer Noriya
Email noriyahd28v@gmail.com
URL http://noriya.info/

This tool was developed with the aim of providing a better music experience for music lovers.
If you have any questions or feedback, please feel free to contact us at the above contact information.