2007-01-25

Ripping the world, part 2

Now that I'd chosen a format, I was ready to begin. I quickly realized, however, that my customary techniques needed some refining for large-scale ripping. I use the following tools for ripping CDs to mp3:
  • Exact Audio Copy: For creating digitally exact copies, I haven't found anything better. The interface is (to put it kindly) somewhat dated, and configuration is somewhat involved, but once you get it set up it's great. There was a good configuration guide online at one point, but it's only available via the Wayback Machine now.
  • LAME: Again, not the most user-friendly of tools (although there are front ends) but very powerful and high quality. I use -V0 --new-vbr for my encodings.
My typical usage scenario had been ripping an individual CD, so I had set up EAC to invoke LAME in the background after extracting each track. EAC retrieves artist/album information from freedb and passes it to LAME for use in the ID3 block in the mp3s. With the setup I had at the time, I could rip in secure mode at about 8x, and convert to mp3 at around 10x, so a typical CD took about 10 minutes to convert to mp3. However, since mp3 encoding is very CPU-intensive, I couldn't do a whole lot with my computer during the encoding process, and I was looking for a "batch mode" type of process that I could do while doing email, surfing the web, etc.

The obvious solution was to rip to WAV and put off doing the mp3 encoding until idle time - i.e. overnight. Ripping to WAV can easily be done in the background while using the computer for other activities, and with EAC set to eject the CD when finished, it's very convenient to swap out the disc, alt-tab back to EAC, hit return twice to dismiss the dialogs, and then Ctrl+A, F5, enter to start the next rip. However, WAV files can't store ID3 information so I had to figure out another way to get that information from EAC to LAME.

I had been using a great metadata editor called MP3Tag, and it has a feature where you can search freedb based on a set of files. (For those who aren't aware, CD information databases such as freedb are indexed via a disc ID that is calculated based upon the number of tracks and the length of each track, so MP3Tag is calculating a disc ID from a virtual CD representing the set of files you select. Pretty clever feature, if you ask me! This is also one reason why using a high-quality ripping program is so crucial - if your track lengths are wrong, then the freedb lookup will fail...)

So, one option would have been to rip to WAV, encode to mp3 sans ID3 information, and then use MP3Tag's virtual disc ID feature to download the ID3 information. However, I found this to be quite tedious, since it had to be done disc-by-disc. Another MP3Tag feature came to the rescue, however! I'd often used MP3Tag to rename files based on their tag information - i.e. to add track numbers to "Leper Messiah.mp3", "Master Of Puppets.mp3", etc., or to clean up ridiculous scene naming conventions like "01-Slayer-Reign_In_Blood-Angel_Of_Death-Release-NuHS.mp3". MP3Tag can do the reverse as well, though - namely extract ID3 information from the filename. I guess I have to credit those wacky scene kids - I realized that I could configure EAC to put all of the relevant metadata into the filename, convert to mp3, and then use MP3Tag to pull the metadata out of the filenames, insert it into the ID3 blocks, and then change back to short filenames like "01 - Reign In Blood.mp3". Best of all, each step could be done in batch mode.

That's the method I've been using so far. I started off strong, and got about three or four hundred discs ripped over the course of a few weeks before getting sidetracked. I can pretty easily do twenty or thirty discs in one sitting, while surfing the web or watching TV, so I'm slowly working my way through the rest of my collection.

By the way, if anybody sees a way to improve my process, I'm all ears! Thanks.

No comments: