indexing music

I have a lot of music. Getting it all organized is not easy, especially since I have my own preferred way of doing things. I’m slowly getting things pretty well cleaned up though (mostly thanks to tellico, which I’ll go into much more detail on some other post).

The way I used to do things was pretty simple, though I would butcher a lot of stuff to cram it into my little realm of preferences. Most of my collection is made up of soundtracks and scores, and very few albums by individual artists / bands, so instead of sorting everything by artist / album, I would change all the CDDB entries locally (using grip, when I ripped the CDs) of the artist to whatever I was cramming it into. That worked well for a while, until my collection grew beyond the classics. It got harder and harder to “find” the stuff I listened to the most because I’d have to look through so many items. Simplicity for me means not having to look far.

Also, how I listen to my music has a lot to do with this. 95% of it is on my computer while I’m working, either at home or work. I have a lot of loaded onto my ipod nano, but I usually only use that either when I’m travelling or lying in bed and can’t sleep. When I’m driving I’m listening to XM. So to access it quickly on my computer, I setup a simple web script that is my homepage that would search my ~/music/mp3s/ and display the albums in order of artist, then titles. The page had links to the playlists in another directory, and I setup Mozilla to parse those and open them with my MP3 player (audacious). The incredible thing about this is I wrote that script years ago, when I was first looking at PHP, and nothing has changed on that thing for about three or four years.

Well, as I said, since my music collection is growing, its making it more difficult to find things quickly. The “classics” as I like to call them, which are really the ones I have listened to the most, are on equal footing with the new and weird ones. I wanted to get them all organized much better, but couldn’t really think of a good way to do it with my limited structuring. Then tellico came into the picture.

It’s a great little application that basically indexes your collections of any kind, be it movies, music, books, video games, whatever. One great feature that it comes with is that you can create your own custom tag description and values. This comes in handy, because I’ve found that I will mentally group my albums anyway. For instance, if I’m in a tense mood, I’ll pick from a handful of movie scores that are equally tense and jittery to help me calm my nerves. Tagging has already changed everything, and it provides the way to restore my indexing to a normal standard and at the same time organize and browse it however I would like to.

So that’s where I’m at right now — mostly indexing, categorizing and tagging everything with tellico. Once I’m all done with that, then I’ll use tellico to export my collection and its details to an XML file. I’ll parse that with PHP instead, and sort and browse the collection by the tag I want to use, be it artist, genre, mood, keywords, etc. I think it’s gonna work out pretty nicely, especially since there’s a lot of music I don’t get to listen to often only because I haven’t fully indexed everything.

I’ll go into more details as I clean things up, but one little tool I wanted to make mention of was fapg, a playlist generator. If you’re using Gentoo, then it’s already in portage, and I just bumped it in CVS to the latest version on their homepage. It’s a nice little app to do pretty much what I’m too lazy to write my own script to do, make simple playlists. Before I forget, that brings up another point I wanted to mention, which is directory structure.

My ipod has this cool feature that will display the album art if you have a JPEG of the album. Well, to make things simple, you can save it as “folder.jpg” in the directory of the album. That way, when you transfer your music using gtkpod, it will copy the album cover image along with your MP3s, and you’ll get to see it when you play the music. Another thing I added to that is, using fapg, I just dump the playlist in that directory now as well, instead of in a separate folder. I still like the idea of having a folder just for playlists, but for now I’m trying to keep things simple. Here’s how I generate them with fapg:

for x in `find /home/steve/music/mp3s/ -type d`; do fapg -f m3u -o “$x/playlist.m3u” “$x”; done;

If you read the man page for fapg, you’ll see what I’m doing. Basically I’m finding all the directories in my mp3s folder, and creating a playlist for each one and dumping it back in that same folder. Runs pretty fast, too.

That’s it for now, I’ll post more details as I continue to get things cleaned up. This is going to be the solution that will probably work for me for another few years, so I’m kind of excited about it. It’ll be nice to finally be able to quickly get to what I’m looking for. Plus, it will be good to sharpen my PHP and XML skills, which are pretty lacking. I’ll make a script to parse it and recreate my collection page. I’ll have to do one for the movies, too.

One last thing, I’ve been listening to the score to TRON while writing this. Great stuff. Pick it up if you like interesting ambient stuff.

Leave a Reply