A command-line tool that normalizes audio files to a consistent loudness level of -13 LUFS using FFmpeg. This tool processes audio files to professional broadcast standards, ensuring consistent volume levels across your audio collection.
- Normalizes audio files to -13 LUFS (Loudness Units Full Scale)
- Supports multiple audio formats (MP3, WAV, FLAC)
- Preserves audio quality while adjusting loudness
- Provides detailed processing feedback and debugging information
- Includes loudness verification after processing
- Maintains original sample rate (44.1kHz)
- macOS with Homebrew installed
- FFmpeg installed via Homebrew (
brew install ffmpeg) - Node.js installed on your system
- Clone this repository:
git clone https://github.com/renderghost/normal.git
cd normal- Make sure you have FFmpeg installed:
brew install ffmpegRun the script and follow the interactive prompt:
node normal.jsWhen prompted, enter the path to your audio file. The tool will:
- Analyze the current loudness of the file
- Process the audio to achieve -13 LUFS
- Verify the resulting loudness
- Replace the original file if the normalization was successful
- Target Loudness: -13 LUFS
- Loudness Range (LRA): 7
- True Peak: -1 dBTP
- Sample Rate: 44.1kHz
- Supported Formats: MP3, WAV, FLAC
-
Input Validation: The tool first checks if the input file exists and is in a supported format.
-
FFmpeg Processing: Uses FFmpeg's
loudnormfilter with these parameters:
- Input Loudness (I): -13 LUFS
- Loudness Range (LRA): 7
- True Peak (TP): -1 dBTP
- Verification: After processing, the tool:
- Creates a temporary normalized file
- Measures its loudness using EBU R128 standards
- Verifies the result is within ±1 LUFS of the target
- Only replaces the original if verification passes
- Cleanup: Removes temporary files and provides detailed feedback about the process.
The tool includes extensive error handling and debugging information to help troubleshoot any issues that may arise during processing.