A Ripping Good Time
For anyone who is unaware, my dayjob is in the R&D section of a high-end home entertainment systems manufacturer… Let’s call them RhymesWithNose. Since starting last December at RhymesWithNose, I’ve come to re-love my music collection. Spending so much time dealing with technology to make music-listening more enjoyable made me realise how little of my ridiculously large music collection I listened to. (Although in fairness, some of it is stunningly crap. Why do I own both of Betty Boo‘s albums?)
I have a huge amount of bedroom wallspace taken up by poorly-constructed and wobbly CD racks, which barely get touched because I have been listening almost exclusively to music on my iPod for the last four years. Buy a CD, rip it, chuck it in the shelves, play it a couple of times, then delete all the tracks except the singles because I’m running out of space again.
But those times are over. Hard disks are cheap and CD ROM drives are fast, so I’ve embarked on a journey, ripping my entire CD collection in shiny lossless FLAC.
Of course, being a musicgeek, I couldn’t just use some off-the-shelf ripping software. I want this to be the last time these CDs will ever see a red laser, and have very exacting standards for my metadata. So I pulled out Python and rolled my own. Once I’ve given the software a bit more of a workout, I’ll GPL it and shove it up here.
A doff of my metaphorical cap, then, to two open-source projects which made writing my own ripper the proverbial piece of piss.
First up, the glorious free and open land of metadata that is MusicBrainz. Like FreeDB, if it were not full of typos and duplicates. Like AMG, but free, editable, open and not limited to the US. Like CDDB, except not run by evil thieving fucks. I’m able to identify discs, manipulate the data, and tag my files with barely any effort on my part. And any data I have which is missing there, I’m happy to contribute back.
The other project I’ve fallen helplessly head-over-heels for is GStreamer. This is a Linux multimedia project which is designed to abstract away all complexity from dealing with multimedia files. You just pick a source, pass it through encoders or decoders, then send it to a destination.
Ripping is a few lines of code to set up the source (CDParanoia), the encoder (FLAC) and the destination (a file). Transcoding to something suitable for my iPod becomes a batch script going “file -> FLAC decoder -> MP3 encoder -> file”. It’s almost brain-dead, leaving me more time to worry about more pressing issues.
Such as why the hell I have four B*Witched singles and their debut album.
About 6 years, 6 months ago, Alison commented:
Get a loife.