Thanks Shazback. One reason that we’ve had to stick to alphabetizing books is that, in most collections, there’s only one copy of each of them. So if you were to want to sort by “genre,” you would have to make very subjective choices in organization. What’s great about digital collections is that they lend themselves to what’s called a “flat hierarchy” — something I talk about with regards to music elsewhere here and here. Items can be duplicated with aliases and placed under multiple categories. Kind of like if you’re looking in the new releases section at Blockbuster and somebody has taken the extra step of making a shelf of old classics by the same director of a new release, or with the same lead actor. It’s those rich cross-sections that are missing from our music libraries.

Ideally under a system like this you will find The Beatles next to The Beach Boys and next to Oasis. Or, if we want to get really tricky, all three of those bands will have the same X and Y values, but Oasis may have a different Z value as a result of their being influenced by ’60s pop, and not a part of it themselves. A 3D mapping like this makes things a little more complicated than is practical, but it’s worth thinking about.

Last.fm may be recommending bands to you that you don’t like, but if the Last.fm similarity data were applied to your own library, then you would only be presented with things you presumably like (since you own them). And, although Last.fm may not be perfect, it’s probably the most thorough and available dataset out there — and, in my opinion, it’s pretty damn good.

If you prefer to listen on a song-by-song basis, then yes, I admit that this becomes a more difficult problem to handle. AllMusic and Pandora do possess mood-centric metadata at the song level, but don’t make it publicly available. Without their cooperation, personal tools might be the only way to attack this problem, such as Moody for iTunes or (the now defunct) MoodLogic.

On the album level we only have mood-centric metadata from AllMusic. This is subjective, of course, and even dealing with full albums on a mood-based level is methodologically questionable, since many albums are all over the place in terms of mood. So we either (a) just accept that this is a fundamental problem with describing albums by mood, or (b) devise some algorithm to apply the moods of every song on an album to the album as a whole, which would make an album’s inclusion under a particular mood not binary — i.e., either it is or is not “sad” — but on a gradient — i.e., it is 80% “sad.”

Personally, with my hack-ish implementation of these moods on the album level in foobar2000, I find that I get very good results. And though there are albums that are emotionally all over the map, there are also many that are emotionally pretty stable; think about Loveless or Slanted and Enchanted. Furthermore, even if every song on an album is not perfectly described by the moods used to describe the album, I would argue that in most cases, albums as a whole, even if they vary in mood, either do or do not complement the mood of a situation. AllMusic will often describe albums that are emotionally erratic as “cerebral” or something, rather than strictly “bleak.” Check out the full list of AllMusic’s mood descriptors and you’ll see that it’s actually an admirably nuanced system.

On the artist level, this is where mood breaks down. Although summing up an album by mood is a dodgy but viable endeavor, the same can’t be said for artists. Browsing artists by mood would be fruitless, so I don’t really propose it. This is why a 2D genre/style map is in my opinion the best way to organize artists. Last.fm already does this with their “Islands of Music” experiment, which, as an interface to a desktop music application, would be bliss.

Grandmaster Flash is described by AllMusic as being: Boisterous, Brash, Party/Celebratory, Confident, Bravado, Playful, Visceral, Freewheeling, Energetic, Gritty, Intense, Exuberant, Ominous, Provocative, Aggressive, Rousing, Somber, Confrontational, Cathartic, Dramatic, Searching.

Louis Armstrong is described by AllMusic as being: Warm, Lively, Freewheeling, Carefree, Amiable/Good-Natured, Earthy, Cheerful, Joyous, Playful, Boisterous, Earnest, Romantic, Gleeful, Rousing, Energetic, Fun, Confident, Whimsical, Exuberant, Elegant, Rollicking.

Where would this put these artists in AllMusic’s more general mood categories like “Fun/Good-Natured” and “Slick/Smooth” from their Tapestry project? I don’t know — that’s too much data to extrapolate a quick guess from. But even if they were neighbors in mood, so what? Like I said, if you have a decent mood categorization system, genre becomes irrelevant. Hell, right next to each other in this image I have cLOUDDEAD (experimental hip-hop) and Cyann & Ben (psychedelic folk-rock) under Bleak/Cold. And I can tell you, yes, both of those albums are pretty bleak and pretty cold, and if one would complement my mood at a given moment, there’s a good chance the other would as well, despite the two being from vastly different genres.

This conversation too has strayed from another major point I was trying to make in the article, which is that your own personal play history within your music player provides a very rich dataset to be exploited. I myself have spent some time developing an algorithm to describe what I call “Hotness,” which looks at how frequently and how recently you’ve listened to any given song to give you a snapshot of the artists that are more or less your “current favorites.” And despite being admittedly rudimentary, it still produces vastly more interesting results than simple “last played” and “number of plays” sorting or “smart playlists” (“smart” — hah!). And I’m sure somebody smarter than myself could invent far more compelling ways to look at your library that are based on your play history.

There are a lot of ways this could all go, and none of them is perfect. But I think it’s important to start thinking about this, and for people to start at least attempting to create a richer, more dynamic interface to our libraries. I’m not an expert programmer by any means, and am just now trying to verse myself more thoroughly in Javascript and XUL to start working with Songbird. But I was hoping to at least inspire conversation with this post, and to potentially reach the right person who both shares my ideas about what these solutions might look like, and knows enough to implement them somehow.