When one sets out to rip a CD in Linux, he is confronted by many options. The user can use a graphical music player such as Rhythmbox, Banshee, or Amarok to rip said CD, along with many other dedicated ripping solutions. I recently purchased Rosetta Stone Hebrew Levels 1 – 3 which comes with 12 (read ‘em, TWELVE) discs of audio companion material. Let’s just say I needed a way to rip 12 discs fast, preferably in a terminal. Enter abcde.A Better CD Encoder, otherwise known as “abcde,” is a Linux program that can rip a CD as fast as is possible and allows the input of lots of custom options for how you want to rip the disc. It supports encoding to MP3 format using a couple of libraries (such as lame), encoding to Ogg Vorbis, remote fetching of album info using CDDB, tagging such as ID3, autogeneration of m3u playlists, remote distributed MP3 encoding, and automatic disc ejection after completion, to name only a few of its many features. Basically, if you can dream it, you can do it with abcde.
Let’s install it. Run
sudo apt-get install abcde id3 id3v2
to install abcde and ID3 for tagging files. Alternatively, you can click here to install abcde through your browser. Please note that you probably should install “lame” before trying to rip cds to MP3 files. To install lame, make sure you have Medibuntu in your sources list and run
sudo apt-get install lame
before ripping any discs. Alternatively, if you want to install “lame” through your browser and you already have the Medibuntu repository installed, you can click here.
Now that it’s all ready and installed, let’s try ripping a CD! Let’s pop open a terminal and create a new directory to rip our CD to.
mkdir -p "Desktop/Rips" cd ~/Desktop/Rips
As a good starting point, I recommend the following command line options to rip the CD to the current directory:
abcde -N -g -d /dev/cdrom -a read,encode,tag -o mp3 -x
This does a few clever things. Since, in my case, I had a TON of CDs to rip and really didn’t want to be bothered with anything until each encode is done, I passed the “-N” option which basically puts abcde in non-interactive mode. In addition, I passed the “-x” parameter, telling abcde to simply eject the disc after it has finished all of its operations. I also passed “-g” which tells lame to enable “gapless” encoding for songs. Few things bother me as much as unnecessary gaps between songs on an album, and this simple parameter eliminates that problem outright, providing you’re using lame as an encoder. I specified /dev/cdrom as my CD-ROM device, though this is usually unnecessary since abcde defaults to using /dev/cdrom anyway. I passed “-a read,encode,tag” to tell abcde to simply take the CD, rip the raw output from it, encode it, tag it using default values, and be done. I wanted a non-interactive rip, and I definitely got it! The last parameter I passed was “-o mp3″, informing abcde to encode the songs to MP3 files.
First, abcde uses a program called cdparanoia to rip the raw wave files from the CD to the local hard disk. Then, it passes those files to the encoder, in my case lame, and then it tags the files using some default values and puts them in a new directory under the current working directory. Fast. Painless. Noninteractive. Exactly what I needed.
This certainly isn’t the only way to configure abcde, either. abcde definitely feels like one of those swiss-army-knife-like programs I’ll use on a fairly regular basis to bring music from a CD into my music library. Combine it with a tool like EasyTAG, and you’re in business.