Something relatively simple: pop in a CD and have information from the
track list come up, as attractively as possible, so that I know the
name of this song that sounds rather good but I haven't heard before
(and who's its author if it's on a compilation disk). That, and the
knowledge that the information that I submit will remain freely
available for use in the future.
To do this, my local store of information should be checked, and if an
entry is absent, then a remote store is checked. The remote should be
checked as quickly as possible with as little unnecessary information
tossed to me. A point here is that if someone disagrees with my entry
of the track names (they have alternate capitalisation or proper
spelling) and they resubmit that information, I won't (and shouldn't
have to) know about it. I'll only ever see my local copy. If two other
people hate my decision (and have the same view) then their submission
should probably become the default. Reasonably simple to implement
(though it would require holding an "alternate" which would consume a
bit more space).
Genres:
I hate the idea of genres. I put the disc in the drive. I have a
reasonably good idea of what kind of music I listen to. And almost
everything can be categorized under a multitude of genres. I don't see
where this bit of information would help, except perhaps if I'm
browsing for some new music to listen to and don't want to have to sift
through Country & Western. I'd rather do that at a record shop or
elsewhere online, anyway. I think most of the relational stuff being
discussed here is way beyond my needs, and unnecessarily complicates
what's trying to be accomplished.
Licensing:
As for the licensing of the data: we could do an opencontent-like
license (www.opencontent.org), but the main problem with that is that
I don't think that the people entering the data can be considered the
original author of it. It really rather belongs to the artist(s) who
created the music. The only claim that I have to the data is that I
spent 5 minutes typing nearly verbatim what I saw on some
liner-notes. So, are we justified in applying any license? Can we even
put this stuff (which we don't really own) into the public domain?
Should we worry about this?
Implementation (Code):
Ok, so I can't put any of my own code where my mouth is. I would,
however, like to put forward some existing (GPL'd) code; that of
WorkMan. Using this was mentioned on /. and I really like the idea of
using verbatim (or extending) the database format native to this
little (and fairly widely used) program. Most of the relevant
information is at:
http://www.midwinter.com/workman
There's also an existing database of cd's (which we've already
surpassed, btw) that has been built up by its users at:
ftp://ftp.midwinter.com/WorkMan/workmandb.gz
The file is about 560k and contains in the area of 1300 cd's. The
format deals relatively nicely with the problems of having several
tracks belonging to a single song, multiple artists on a single cd
(really slick, I think, is that it can display the artists' name in
place of the CD name), all with as little replication as possible. The
format isn't too very fancy... every field sits on its own line (and
no track numbers need be recorded!) but it's easy enough to
understand; eg:
tracks 16 150 16427 33497 49760 66770 89277 106955 125807 139210 \
164660 181840 2 06110 224357 245357 264180 280945 4191
cdname Come Dancing With The Kinks
artist The Kinks
track You Really Got Me
track Destroyer
track Superman
track Juke Box Music
track A Rock 'N' Roll Fantasy
track Come Dancing
track Do It Again
track Better Things
track Lola
track Low Budget
track Long Distance
track Heart Of Gold
track Don't Forget To Dance
track Living On a Thin Line
track Father Christmas
track Celluloid Heroes
There's operators such as "//", "+", and " nospam at " which aid in the
displaying of the information. The use is described pretty well in the
FAQ:
http://www.midwinter.com/workman/faq.html#combine
and as previously stated: all of the code is GPL'd and thus available
for us to use. Not sure how that would affect people who want to make
commercial players though... force them to release their source?
Wouldn't be bad, but I think that most would rather deal with CDDB's
licensing than do that <sigh>.
That's all I can think of for now. Hope there was enough signal in
amongst the noise here.
Kevin.