Pure Rust Implementation
v1.0.1 introduces native MP3 global_gain manipulation. No mp3gain dependencyโjust install headroom and ffmpeg.
Rekordbox Auto Gain doesn't work on CDJs. headroom simulates Auto Gain and permanently applies it to your filesโso every track hits the same level on the booth.
Rekordbox's Auto Gain feature analyzes your tracks and calculates gain adjustments to normalize loudness. It works great with controllers.
But when you export to USB for CDJs, Auto Gain values are ignored.
headroom simulates what Rekordbox Auto Gain doesโbut instead of storing a metadata value, it permanently applies the gain to your audio files.
headroom uses the same approach as Rekordbox Auto Gain: it measures True Peak and calculates maximum safe gain without clipping.
headroom intelligently chooses the best method for each MP3 file based on available headroom, prioritizing quality preservation. v1.0.1 introduces pure Rust MP3 processingโno external tools required.
For files with โฅ1.5dB headroom to bitrate ceiling
For files needing precise gain (<1.5dB headroom)
For files already at optimal level
A common concern is quality loss when re-encoding MP3. However, for gain adjustment only at high bitrates (โฅ256 kbps), the degradation is completely inaudible.
Everything you need for consistent levels on CDJs.
v1.0.1 introduces native MP3 global_gain manipulation. No mp3gain dependencyโjust install headroom and ffmpeg.
Uses the same LUFS/True Peak analysis as Rekordbox. Calculates maximum safe gain to hit optimal ceiling without clipping.
Files are modified in-place, preserving the same path. All your cue points, hot cues, beat grids, and tags remain intact.
Original files are backed up before processing. Native MP3 lossless is truly bit-perfect. Your source collection stays safe.
First confirm lossless processing, then optionally enable MP3 re-encoding. You're always in control.
Based on AES TD1008: -0.5 dBTP for lossless, -2.0 dBTP for native MP3, bitrate-aware for re-encode.
All the formats Rekordbox DJs actually use.
| Format | Method | Precision | Quality |
|---|---|---|---|
| FLAC | ffmpeg volume filter | Arbitrary | Lossless |
| AIFF | ffmpeg volume filter | Arbitrary | Lossless |
| WAV | ffmpeg volume filter | Arbitrary | Lossless |
| MP3 | Native (Pure Rust) | 1.5dB steps | Lossless |
| MP3 | ffmpeg re-encode (opt-in) | Arbitrary | Inaudible at โฅ256kbps |
Get up and running in seconds.
brew tap M-Igashi/tap
brew install headroom
ffmpeg is installed automatically. No other dependencies needed.
sudo apt install ffmpeg
cargo install --git https://github.com/M-Igashi/headroom
Requires Rust toolchain
winget install ffmpeg
cargo build --release
Build from source with Rust
Run headroom before your next USB export and play with consistent levels.