CD Ripping: abcde is the best

Here I thought I was going to be stuck using Exact Audio Copy on Windows, which never stood up to my odd needs for CD ripping along with poor stability.

What I wanted was a program that would look at the disc and tag accordingly with CDDB, then rip the files securely once with cdparanoia or some other secure ripping tool, and then encode the files to multiple formats as I dictated. Little did I know that the tool existed for Linux as a command line program called abcde.

Thanks to a website known as Andrew's Corner, configuring the program was a small matter of copying and modifying the syntax to my needs into a .abcde.conf file in the home directory.

Now when I want to rip a CD, I pop it in, run the command "abcde," make sure the CD it found was correct, and then walk away. (Quick tip: if the program brings up a list of multiple album options, press q to go back to abcde)

This is amazing. It's like someone went into my brain, found what CD ripper I wanted to exist, and then said, "I made it for you, there it is in Debian." Well, to be fair, I did configure the thing, but still.

Also, having never used CDParanoia before, I was pleasantly surprised to find it has real time smiley faces to tell you the status of the rip, which is the best thing I've ever seen and is far more useful than Exact Audio Copy's red bars indicating something I initially assumed was "how much fun you're not having right now."

Here is my modified version of the code if anyone's interested.

# -----------------$HOME/.abcde.conf----------------- #
#
# A sample configuration file to convert music cds to
# MP3, Ogg Vorbis, FLAC
# using abcde version 2.4.2
#
# http://andrews-corner.org/abcde.html
# minor mods by http://minimalinux.blogspot.com
# -------------------------------------------------- #

OGGENCODERSYNTAX=oggenc # Specify encoder for Ogg Vorbis
MP3ENCODERSYNTAX=lame # Specify encoder for MP3
FLACENCODERSYNTAX=flac # Specify encoder for FLAC

OGGENC=oggenc # Path to Ogg Vorbis encoder
LAME=lame # Path to MP3 encoder
FLAC=flac # Path to FLAC encoder

OGGENCOPTS='-q 3' # Options for Ogg Vorbis
LAMEOPTS='--preset standard' # Options for MP3
FLACOPTS='--verify --best' # Options for FLAC

OUTPUTTYPE="ogg,mp3,flac" # Encode to all 3 formats!

CDROMREADERSYNTAX=cdparanoia
CDPARANOIA=cdparanoia
CDPARANOIAOPTS="--never-skip=40"

# Give the location of the CD identification program:
CDDISCID=cd-discid

OUTPUTDIR="$HOME/Music/abcde/"
ACTIONS=cddb,playlist,read,encode,tag,move,clean
OUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}'
VAOUTPUTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${TRACKNUM}.${ARTISTFILE}-${TRACKFILE}'
ONETRACKOUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${ALBUMFILE}'
VAONETRACKOUTPUTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${ALBUMFILE}'

# Create playlists for single and various-artist encodes. I would suggest
# commenting these out for single-track encoding.
PLAYLISTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${ALBUMFILE}.m3u'
VAPLAYLISTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${ALBUMFILE}.m3u'

mungefilename ()
{
echo "$@" | sed s,:,-,g | tr / _ | tr -d \'\"\?\[:cntrl:\]
}
MAXPROCS=1 # Run a few encoders simultaneously
PADTRACKS=y # Makes tracks 01 02 not 1 2
EXTRAVERBOSE=n # Useful for debugging
EJECTCD=n # Please eject cd when finished :-)


My changes:
-It doesn't eject the CD
-The program is not extra verbose
-It only rips FLAC, OGG and MP3
-I left FLAC at high quality
-MP3 is at V2 (about 256kbps)
-OGG is at Q3 (about 112kbps)

The program needs more programs than is required by apt-get, so snap those up. I ended up having to install id3v2, but abcde was rather nice about telling me I needed it. Also, the program supports more codecs than this, and even can do Speex for audiobooks (though for optimal Speex you need to downsample to 8 or 16 mHz).

One more thing I don't need Windows for. Heck, this is far and above so much better than what I used before. When I came up with that great nugget quote "Minimalism is finding our tools and stripping them down in our own way to meet our own needs," this was exactly what I was talking about.

No comments: