Fast Audio CD Ripping on Linux (2015)
Table of Contents
I’m running Fedora 20 on an Ultra-book, meaning I am using an external (USB) CD drive. Wanting to reclaim my Mozart, I stuck it in and soon found the K3B tool for burning and ripping (as a KDE user, it was readily available); but to my horror, it was ripping at 0.5 speed. Having 20 minutes of music take over 40 minutes to rip and encode is certainly not viable, so I began looking around and tried a host of different tools. At length I settled on Grip, which isn’t the prettiest but has all the features I needed (while being less opaque than command line tools like RipRight). After choosing grip, the following unlocked my rip speeds:
Use Grip
Grip is a feature-rich ripping GUI tool that automates much of the ripping process. It should be available in your repo.
sudo yum install grip
Enable DMA on the CD Drive
This was the biggest boost. I had to install hdparm from my package manager first, as it was not already on my machine.
sudo yum install hdparm
Once installed, use hdparm to enable DMA on the drive:
hdparm -d1 /dev/cdrom
Disable CDParanoid safety checks (e.g. in Grip)
[[]]]] CDParanoid seems to be designed for people who want to rip from scratched, faulty CDs, where it can cleanup and interpolate missing data. But my CDs are all clean; as such, disabling Paranoid also gave a speed increase. Note that the “-Z” (capital Z, not z) disables Paranoid checking. This is why I used Grip: in other programs I couldn’t figure out how to modify the Paranoid settings.
I specified cdparanoia as my ripper (instead of Grip paranoia, which didn’t allow me as many options), and added the -Z to the command line arg.
Delay encoding
In order to keep my spin speeds as high as possible for as long as possible, I set “Delay encoding until disc is ripped” in Config -> Rip -> Options.
Conclusion
After these fixes I was successfully getting 8x to 16x ripping speeds, although certain Hollywood-locked CDs were still cut down to 1.5x. Most audio CDs, however, are going quickly.
Note that in Grip I needed to disable “Auto rip”, as I would continually loop and re-read (possibly as a result of encoding delay).