Jason pointed out MusicBrainz to me recently, and now that I'm giving it a whirl, I have to say that I'm impressed. By taking "fingerprints" of mp3 files, it's able to compare files to a moderated database of files maintained on the site. This allows users to match existing files to the database and determine mp3 tags. This is really useful if your mp3 (acc, ogg, whatever) files weren't well tagged to start with. I ripped many of my own cds long before the online databases were as good as they are now and many of my files have bad tags.
The problem is that for such a program to work, it has to integrate well with how you listen to music. The OSX client is really quite nice, or at least, it seems like it would work well in a standard configuration. The problem is that I don't use iTunes. Generally, I use amarok to listen to music at home, but as of yet, amarok doesn't have have a direct plugin for musicbrainz- least one that I can figure out how to operate. My devious plan to work around this was to connect my laptop (OSX) to the samba server on my desktop (linux), grab my whole mp3 directory into iTunes, tag it via iEatBrainz, and then I'd be done with this mess.
Unfortunately, because the files don't reside on the mac, it doesn't seem to want to actually alter the tags. I was able to finally get good track and album data for some 300 or so tracks that I never bothered to label, but I haven't had any luck actually getting that data onto those files.
This aside, I did have some bad file matches that were somewhat obvious to me. Some of these errors I was able to quickly catch by looking at the file name. It seems like it would be good to parse the file name in addition to the fingerprint and do some comparative analysis that way. Often times the file names have artist or track names which can be good clues for getting the right complete tag. I'm not sure if iEatBrainz works this way or not, but either it doesn't or it does it poorly.
I also wish that it used a different interface. It seems like the most useful way to do this would be to have two different modes- one is to verify individual tracks, an other is to view a whole collection. From the collection standpoint, the program could recurse the whole collection and give % certainty on tracks, giving access to the list of potential suggestions if it found them. Simultaneously, it could take data that looks like it's pretty good (ie: complete tags, file exists in a artist/album hierarchy that matches, etc), and populate the online database.
Even though I haven't gotten it quite right yet, it's a remarkable piece of thinking. Particularly that the online database can be moderated by members and continually updated. It's a great idea, I just want it to work!


