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:
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.
ffmpeg_install.bat6. 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:
(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:
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:
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:
- Reduce max_workers to 1-2 in
lufs_unifier.yaml - Reduce the number of files to process at once
- 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:
- Adjust threshold_db in
lufs_unifier.yaml- Classical music: -60.0 dB
- Pop/Rock: -50.0 dB (default)
- Electronic music: -45.0 dB
- 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:
- Running the included
ffmpeg_install.batwill install FFmpeg and automatically set user environment variables and notify Windows. - You can check installation status by running
ffmpeg -versionin 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:
- "Dangerous file" is displayed in the download bar
- Click the "^" to the right of the filename
- Click "Continue" or "Keep"
For Microsoft Edge:
- "This file can't be downloaded safely" is displayed
- Click "..." (details)
- Click "Keep"
⚠️ About Warnings on First Run
Windows Defender (SmartScreen) may display a warning, but this is a false positive:
- "Windows protected your PC" is displayed
- Click "More info"
- 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
- 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)
14. Developer Information
| Developer | Noriya |
| 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.