Converting CDs to MP3

I’m using the following packages:

I added code to abcde to support batch mode normalization (in abcde-2.0.3nb3).

Key settings in my ~/.abcde.conf:

    LAMEOPTS="-k -h -ms -b192"
    NORMALIZEOPTS="-a -12dbFS"


Important: The BATCHNORM=y setting enables batch mode (-b) with normalize so that the relative song volumes are preserved within each album. The NOGAP=y setting enables gapless (--nogap) encoding with lame so that songs can flow from one track to the next uninterrupted.

Note: Older versions of abcde used a single BATCH=y setting to enable both batch normalization and nogap encoding.

Notice that you must give the files to lame in the correct order. If you use shell globbing, be careful — if your files are named trackN.wav without zero padding (as would be the case when using abcde), you must use this:

    lame -k -h -ms -b192 --nogap track?.wav track??.wav

The code in abcde takes care of this correctly. It uses the track order you specify on the command line, or when grabbing all tracks, the correct numerical order.

I have fallen into this pattern:

  • run abcde -a read for a bunch of CDs, stack the CDs
  • take the stack of CDs to the living room, watch TV and simultaneously run abcde -a cddb -C discid repeatedly, where discid is for the various discs read earlier
  • run a foreach loop in my shell to run abcde -C $id, and go to sleep (this encodes, tags, moves and cleans all the pending discs prepared in earlier steps)

After abcde is done, my mp3 files are in /proj/audio/new. This is a temporary holding spot where they wait for tag fixing. I use ID3-TagIt for fixing ID3 tags.

The tags that I have to add at this stage are year and genre.

  • lookup the CD on All Music Guide to find the initial release year and the genre (things like alternative and rock have very shady borders …)
  • CTRL-A to select all tracks
  • click on M-II (the Multiple ID3v2 edit) button
  • enter the year in its box
  • select a genre from the drop-down (you can also type, but I only use the pre-defined ID3v2 genres, matching All Music Guide as close as possible)
  • click on the + button to add the genre to the genre list in the tag (you could have multiple genres, but I only use one)
  • click OK
  • click on the 1↔2 button and transfer all ID3v2 values to the ID3v1 tag (this is a radio-box you select at the top — all of the check boxes should be selected by default)
  • click on OK
  • click on the save icon to write out the changes
  • exit the program

There are some defaults that are nice to enable in ID3-TagIt:

  • recurse into subdiretories
  • double click action is ID3v2 edit

I run ID3-TagIt from the context menu (right click) on a directory. With recursion enabled it nicely gives you an album (or artist) with the naming I use.

The key differences between ID3v1 and ID3v2 are:

  • ID3v2 is prepended to the mp3 data (ID3v1 is appended)
  • ID3v2 has no length limits (or at least they are much bigger)

You can get ID3-TagIt from