The idea was to create a console app that will normalize track or album of tracks. Written in Rust programming language, our application uses multithreaded support, to give users fast normalization.
Project was based on replay gain, modifying peak and gain difference tags in MP3 file.
Gain differencewas calculated by measuring effective power of the waveform (RMS) substracted by some loudness constant (our default is 89.0 dB)Peakwas calculated by measuring the amplitude of the track/album, divided by the maximum aplitude possible a track can have
Download the latest mp3_normalizer.zip from releases, and put mp3_normalizer file into /usr/local/bin.
Usage examples:
mp3_normalizer -i <INPUT_TRACKS_OR_FOLDER_PATHS>
mp3_normalizer -i <INPUT_TRACKS_OR_FOLDER_PATHS> -o <OUTPUT_FOLDER_PATH> -nt 4 -a
mp3_normalizer -i music_folder1 music_folder2 input.mp3 -o music_output_folder -nt 4 -a
- Normalize on preffered loudness
- Based on ReplayGain standard for normalization
- Multithreaded support for increased speed
- Additional command line argument support to further help user specify their use case
-iSpecify input folder-oSpecify output folder-ntNumber of threads-lSet loudness-stSet track replay gain-saSet album replay gain-rRemove tags-aAlbum replay gain-adDirectory replay gain-showOpen output directory-sdShut down PC after finishing-hiHibernate-slSleep after finishing
Whole application is written and developed in Rust
- walkdir = "2"
- system_shutdown = "4.0.1"
- id3 = "1.7.0"
- minimp3 = "0.5.1"
- rayon = "1.7.0"