Wednesday, December 8, 2010

Issues When Working With MP3s

I recently spent some time trying to put my collection of .mp3 audio files in better shape; this has been an ongoing project for years.  There really aren't any good tools to do it, which, given the popularity of that file format, is somewhat surprising.  I usually find myself doing one task in one app, then a different task in a different app.  Part of the reason I thought to write this post is to see if others have had similar experiences, or found solutions to some of the problems.

My ultimate, ideal goal is to have each .mp3 file be 'complete', with music, lyrics, album art, and credits for everyone who worked on that particular piece.  This would actually be useful - for example, one might want to listen to every piece of music Alan Parsons worked on (beyond the Alan Parsons Project).  One might trace careers of writers, producers, etc. if the tags were complete.

Another goal I've had is to attach years to each piece of music.  The goal would be to let me select music that I might hear on a radio station in a given year, say, 1977.  Of course radio stations play older music, so players really should have some algorithms for picking music from earlier times to add to the playlist.  But attaching years is a necessary first step.

This is harder than it might seem, because work is republished.  If one takes a CD issued recently, the dates attached to the album and the music will be recent, even if the CD is a re-issue of an older album.  The problem is worse with compilations - the dates are often determined by the ISBN of the CD, not the original issue dates of the music.

I've found attaching dates to be an interesting but laborious process - looking up a given song one might find much earlier versions, live versions, long versions, short versions for AM radio play, etc.  I try to use a date that reflects when I might first have heard it on the radio.  In part its interesting because some of the older versions show the evolution of the song.  For instance, while trying to date Taco's "Puttin' On the Ritz" I found that the song had been written by Irving Berlin in 1929, with several notable versions (Clark Gable 1939, Fred Astaire 1946) before Taco's version in 1983.  See for instance'_on_the_Ritz.  A surprising number of rock songs go back to early Blues songs of the 1910-1920 period, with likely earlier, but undocumented, roots.

Just managing the MP3s isn't trivial - take 'artist name', a category in pretty much every player or library app.  Now, should The Beatles be listed as "The Beatles" (which will sort with the "T"s), "Beatles" (which will sort well, but isn't the real band name), or "Beatles, The" (which kind of gets at both the real name and the right sort order).  Ideally player and library software should let you specify the name as "The Beatles", which is the correct artist name, but then show this in an alphabetical list under the "B"s, not the "T"s.   Almost inevitably one will have some songs in both categories, and the separation of B and T is such that it may be quite hard to notice this.

Some band names are listed inconsistently, e.g. Pinkard & Bowden or Pinkard and Bowden.  Some music pieces are by a particular band, but feature a guest artist - one would like this piece listed for both the band and the artist.  Then there are case issues, e.g. John McCutcheon vs. John Mccutcheon - these kinds of spelling variants creep in for a variety of reasons.  And, would one like to find the music of Carlos Santana in the "C"s or in the "S"s?  Add to this foreign names with accent marks (sometimes); bands which stay the same but make small changes to their names (e.g. John Cougar, John Cougar Mellencamp, etc.).  Semantically these should be grouped together, but they won't be.

For classical music I describe the composer as last name first, then first and middle names.  It's just how I think of classical music.  There may be other genres with other common guidelines as well.  And, while on the topic of classical music, I often tell my player to play in random order - but I really would never want to mix classical and, say, rock.  This isn't trivial to achieve; of course one may construct playlists of all classical or all rock, but then when one adds new music one must update these playlists.  The player foobar 2000 does some dynamic list assembly, which is a start.  It is a good player, but I have yet to fully tame it, and don't really have the time to dedicate to figuring it out.

Then there is 'genre': one player of mine has hundred of genres, many I just don't understand.  I don't know what "Trip Hop" is, nor how "Electronic" differs from "Electronica".  What I'd like is a smaller subset that isn't too ambiguous, and a way to constrain any new entries in the library to use one of the existing genres that I've found acceptable.  In the absence of this, I've taken to using a kind of 'path' approach, so that similar genres appear next to each other when sorted - so I'll have "guitar" (meaning guitar instrumentals), then "guitar: Spanish", "guitar: electric", etc. 

Then there is 'album': many of the songs I've got have appeared on multiple albums, e.g. the original release album and perhaps a 'greatest hits' album later on, or a different kind of compilation, perhaps one containing many artists (e.g., a Christmas album).  I would really like to link the song to all of those albums, but there is usually no way of doing this (short of keeping duplicate songs around).

'Rating': many players and managers keep ratings for songs in a separate database, not in the mp3 file itself.  I'm not sure why - perhaps because the ratings are personal, and the songs are assumed to be shared, though that makes little sense.  Every once in a while I'd have to rebuild the database for an app, and all of that information would be lost.  I find it to be very useful when putting together playlists, so I adopted a somewhat radical approach: I have subdirectories named "5", "4", "3", etc., and I move all the songs rated 5 into the "5" subdirectory.  If I have to reestablish the ratings in a given player I sort the songs by file path, then select all of those in the "5" subdir and set their rating to 5.  It takes a few minutes, but is far better than losing that information.

So - that's a quick list of issues I've had when trying to manage my mp3 library.  With all of the money and time that's been poured into the production and sale of these, I'm surprised no one has done a player or library manager that can handle all of these issues.  Foobar 2000 seems to come closest, but it's always doing something a bit strange, and I just haven't had the time to master its idiosyncracies.  I would very much like feedback on how others have dealt with these problems.

No comments: