Home > Uncategorised > XML Music Library

XML Music Library

I’ve been thinking recently about an standard XML music library format (I’m probably thinking about reinventing the wheel here – some one shout if this kind of things exists already, which is probably does). I reckon it would be pretty easy to create one which would defeat a lot of the problems that I have discovered with other systems.

My main advantage would be tagging, and referencing. First I should explain that I am going to base the library around a “Song” (N.B. – This does not mean a file). I can then give the song a name, a main artist, year of release, etc. I can then employ tagging to tag a series of genres to the song (letting me classify it into a series of genres, not just one), tag a song into a series of albums (think compilation CDs and “greatest hits” albums), tag extra artists to the song (think “featuring xyz”).

I can then use referencing to do the clever bits. Imagine I make a hash of the song name and artist (the actual hash function wouldn’t matter – you could [again] tag the song with multiple hashes, each one specifying the algorithm name), and store that as a “reference”. I could then link a song to another song simply by specifying the original song reference, therefore I could take in to account things like live versions, cover versions, mixes, album versions, new versions by the same artist, etc.

And seeing as it is XML, you could take it anywhere – cross platform, simple file format (so can be editted by hand if needs be), can be interpretted (either SAX or DOM) by a lot of applications, easy to backup, and can be interpretted into/exported out from a database.

Agreed the file could get quite large, but I think the benefits outweigh the costs.

Anyone got any objections?

Categories: Uncategorised Tags: , ,
  1. Rich
    June 7th, 2005 at 08:20 | #1

    What’s wrong with RDF? Then you wouldn’t even need to hash anything.

    Draw out some example data on a whiteboard, limiting yourself to labelled lines, nodes, and text. If you can do that, it’s RDF.

  1. No trackbacks yet.