Jan 07, '10 07:30:00AM • Contributed by: midget2000x
Another solution is iVolume, which I've never tried. I read good things about it...but it costs money. Another is what I am going to focus on here: MacMP3Gain, which is a port of the open source command-line program mp3gain for OS X (they also added a GUI).
mp3gain does more than just normalization; it does analysis to determine how quiet or loud an MP3 will sound to the human ear. If you really want to get technical, mp3gain does its analysis based on the Replay Gain algorithm.
mp3gain applies lossless adjustments -- it does not re-encode the MP3. However, MacMP3Gain offers this caveat about mp3gain: "MacMP3Gain modifies MP3 and unprotected AAC files with no provision provided to undo the changes." I haven't had any trouble after using extensively, however.
The MacMP3Gain application does have a GUI, which allows you to process by folder or by iTunes playlist. However, in the spirit of efficiency, I wanted a way to be able to normalize playlists right from iTunes. So I wrote this AppleScript, which can be run right from the iTunes script menu: (For possible code updates, as well as a number of screenshots and more detail on the entire process, please see my original blog post.)
The other advantages of this script vs. the MacMP3Gain GUI is that it gives you a proper progress bar (important because it can take a long time to process), and it shows you the output when it's done (so you can see exactly what changes were made to each file).
Prerequisites:
- MacMP3Gain: Install MacMP3Gain on your Mac. To use this AppleScript, you'll need to create a symlink from the command-line binary to somewhere in your path. This can be done with this command:
sudo ln -s /Applications/MacMP3Gain.app/Contents/Resources/aacgain /usr/bin/mp3gain
You can now use mp3gain on the command line. For a complete list of commands, open up Terminal and type mp3gain -?. - BP Progress Bar: mp3gain takes roughly 30 seconds to process each MP3. Therefore, it can take a while to process an entire playlist. So, I've configured this script with a handy progress indicator. Applescript has no "native" progress indicator method, but you can access an external app to do this for you.
Download BP Progress Bar (download link), unzip it, and mount the disk image. Then, copy the app BP Progress Bar to your Applications folder, and the BP Progress Bar Controller.scpt file to your user's Library/Scripts folder, and you're all good to go!
Upon launch, you're prompted to enter a playlist to normalize. As long as you enter a good one, you should see a progress bar come up. Upon completion, you can view the log, which is written to /tmp/mp3gain_output.log.
Enjoy!
