URIs For Playlists
August 16, 2004

Kevin Marks posted something in his blog (“New model for music playlists”) about a playlist format which allowed you to share your playlists safely with friends. A necessary part of this would be a canonical naming scheme so that you and I can both make sure we’re talking about the same song, and our helpful mechanical friends can go find it on the net for us.

This is something I’ve been pondering for a while. The CDDB / MusicBrainz type idea is good, but it’s a bit limited because not all music starts its life (or gets published to the wider world) on a cd.

I’ve never got heavily into downloading music on the web, and I suspect that one of the reasons for this is the frustration I felt when trying to find not just single tracks but collections of tracks (back when I were a lad these were referred to as albums). At one point I decided to replace lots of my old (legally dubious) cassette tapes with equally dubious downloads from the web. The logic behind this exercise was mostly sophistry, something to do with it being less morally suspect for me to download music if I already owned an illegal copy of it! Anyway, I soon gave up, as I discovered that it was relatively easy to find the well known tracks from any of my tapes - but nigh on impossible to obtain the whole album, and especially the whole album, from the same cd, encoded in the same format at the same (hopefully acceptable) bit-rate. It wasn’t necessarily that the music isn’t out there, just that I couldn’t find the damn stuff because of people’s weird and inconsistent naming of the files. The frustration was almost enough to drive me to honesty!

This lead me to start thinking more generally about how useful it would be if the mp3 tag format could include some sort of unique identifier that software could use to label a track. I think a good start would be the cddb/MusicBrainz type approach - a combination of track number and cd identifier being a fairly good id which could be attached to an mp3 track and then used to look up the actual track name, and all the other associated data that one might want.

The problem is, what about tracks from one of my bands? Do I have to make a cd and register it with cddb just so that I can uniquely refer to it elsewhere? Seems a bit backwards to me. As online music distribution becomes the norm, I guess we’ll start seeing more and tracks out there which only exist as downloads, and it’ll become at once more important and harder to identify them reliably.

I wonder if the same basic trick that cddb et al use (based on the exact length of most cds being almost unique) could be applied to a single track in a reliable way that was relatively immune to things like bad editing and lossy compression. Something which could reliably distinguish between the same track compressed differently and a different rendition of the same song (I’m not suggesting that it would have to recognise the similarity, just that it wouldn’t get confused between them).

I suspect that it ought to be possible, although it wouldn’t be likely to work with anything so crude as the overall length of the data or number of samples. Perhaps some combined checksum produced from a bunch of signal processing trickery, and or some analysis of the harmonic or rhythmic aspects of a track.