How (not) to rip a music CD

On 22 May 2016 I bought this CD from Amazon:

Beethoven: Symphonie No. 9 — Berliner Philharmoniker, Abbado

It’s a rather splendid performance of Beethoven’s Ninth Symphony (‘An die Freude’) performed by the Berliner Philharmoniker under their former principal conductor, Claudio Abbado, released in 2000 by the Deutsche Grammophon. It arrived on 25 May.

It is an Amazon ‘AutoRip’ CD, meaning that as well as physically sending me the CD by post they also made the music available to download as an MP3. I listened to these MP3s once on 24 May before the disc arrived, but since I have concerns about the long-term accessibility of lossy-compression music formats and how the sound quality might be audibly affected if I had to re-encode to a different format in the future, I prefer to rip myself from a CD and encode the music in a lossless format. I also have a silly placebo-like belief that lossless audio might possibly sound moderately better (especially for classical music), but I know that’s probably just voodoo magic that doesn’t really make any difference.

Last time I ripped a CD, I remembered Sean B. Palmer warning me about the weird shit some disc drives do while reading CDs and how that can affect rip quality. Since my music library does contain a few tracks ripped from CD with skips and jumps in them (usually where I knocked the laptop a bit accidentally as it was ripping), I decided to give cdparanoia a go, which was recommended to me by Kragen Sitaker.

cdparanoia has a very interesting progress bar design, which I believe many GUI applications could learn from. The symbols it prints as it works indicate what it’s doing. A space means there was no problem reading a particular bit of a track, a + means something was misread by the drive but cdparanoia corrected it perfectly, and a V means there was a serious read problem and there’ll be an audible fault in the track.

The first four tracks ripped okay, but with a large number of + icons in the progress bars which I chalked up to my CD drive being bad (having never used cdparanoia before, and knowing that checking for things like that was part of its entire purpose). The fifth one, containing the choral section of the last movement (for some reason it seems to be Deutsche Grammophon policy to make the introduction to the last movement a separate track from the choral section), showed ‘V’ errors right at the end of the track and took ages to finish. Indeed I left it running all night and it was still 30 seconds of play-time away from having ripped the whole track.

I took the CD out in the morning and noticed two large scratches around the edge. Realizing (with help from Ulises Cerviño Beresi) that CDs play from the inside of the disc to the outer edge, unlike vinyl which does the opposite, I realized this was the probable cause and sent the CD back to Amazon and ordered a replacement.

The new disc arrived on the 27th. I ripped it again with cdparanoia, which took about 5 or 10 minutes and this time reported not so much as a single + — a perfect rip.

There remained a slight problem because cdparanoia outputs WAV files (i.e. uncompressed audio) by default. While this is fine — WAV is lossless, and lossless audio was the whole point of this exercise — WAV files are rather large. The uncompressed ripped WAVs from the CD amounted to 660 MB.

My preferred music player is iTunes. While it’s not great — far from it — it is good enough for me. The only compressed lossless format it supports natively is ALAC. I vaguely recalled having used Max to convert to ALAC previously. I reinstalled it and ran the WAVs through it. 270 MB, and exactly the same waveforms as before. Perfect!

Except … not. Fortunately it occurred to me to check to make sure that this process had kept the correct gapless transition between tracks 4 and 5 so that the last movement was uninterrupted. It had not: there was an irritating tenth-of-a-second gap between the two. Googling for ‘cdparanoia gapless’, I was directed to the following disheartening FAQ entry:

Can cdparanoia detect pregaps? Can it remove the two second gaps between tracks
Not yet. This feature is slated to appear in Paranoia IV.

Since Paranoia IV is effectively abandoned, I thought this meant the problem was unfixable. But I looked at the waveforms at the end of track 4 and the start of track 5 in Sound Studio and there was no silence: they looked like they should stick together perfectly.

Eventually it occurred to me that this might be a metadata problem: iTunes could play the files back-to-back gaplessly, but the ALAC files don’t contain the tags telling it to do that. On a whim I imported the original WAV files and seeked to the end of track 4 to see if it would have a gap when it moved on to track 5. It didn’t. Hmm, so I need an ALAC converter that can preserve that then …

Oh … wait … doesn’t iTunes have an ALAC converter built in? Yes it does, you just set your Import settings in Preferences to Apple Lossless, then do File → Create New Version → Create Apple Lossless Version. I did that, relistened at the end of track 4, and hoorah! It went seamlessly on to track 5 like the original WAV version did.

Morals of the story: