Friday, May 27, 2011

Media Library Organization

I'm still not sure why, but the other day when i logged onto my home computer, all the applications that i had pinned to the taskbar were gone.  I noticed yesterday that iTunes seemed to have lost its head.  It opened up and displayed no music, no content.  Nothing.  Needless to say i was pissed.  As i'm writing this blog, i'm beginning to suspect that the recent installation of office 2010 may have happened around the same time.  I wonder...

Either way, i had to do some fixing of my library.  Luckily, i had recently backed up the xml file containing all my library metadata.  So, i imported that back in.  This means that all my play counts, skip counts, ratings, and playlists were back.  It only took an hour to process the 30GB of music i have in my library, so it wasn't too bad.  However, the smart playlists that i have built into itunes were messed up because they all refer to each other.  Since they were imported, all the references were broken.  I went through and tried to figure out all the 'smart' references i had built into my playlists.  This was a pain.
Let me explain: a few years ago, i was given an ipod and have been using itunes ever since for my main media player.  I was surprised to find that my mp3 library which had at one point fit on a thumb drive had expanded to more than 8GB, which was the capacity of my new ipod.  I had to find a way to get the music i liked in my library onto my ipod.  I spent an entire afternoon locked in my room drinking red bull and expelling smoke from my ears as i came up with what i thought would be the ultimate smart playlist.  I ended up with a pretty smart set of playlists (if i do say so myself).  I've used the same playlists (with a few modifications over the years) ever since.

Without further ado, here they are:
First, i had to decide on a couple rules:
  1. If a song was rated with 4 or 5 stars, it is probably one of my favorites and should be on my ipod.
  2. If a song was unrated, that doesn't mean that i don't like the song, rather it means that i haven't gotten around to rating it.
  3. I needed a way to easily identify songs that i don't like (i've collected a lot of music over the years that i don't like and would like to weed out of my library). I decided that any song that has only 1 star should be considered a song that i don't like and a candidate for removal from my library.
  4. I also have to consider the fact that i have christmas music mixed into my library that i probably don't want this whole mechanism to apply to. 
  5. I also consider global filters to exclude podcasts, movies, audio books, etc.
Excluded Items:  This playlist should include anything i don't want included in the main playlists.  This would be podcasts, movies, audio books, Christmas music, classical music, etc.  I actually include Christmas and Classical music not by keying on the genre but by making separate lists that key on the genre.  I do this for 2 reasons: 1)iTunes creates a pretty exhaustive classical music smart playlist and 2)I'll eventually want to sync Christmas music to my ipod during the holiday season, so it's just as easy to go ahead and make a playlist that gathers it all together.  The playlist is pretty simple: Match Any(playlist=christmas, genre=audio book, genre=comedy, playlist=classical, media_kind!=music).
Blacklist - The blacklist used to be two lists, but with the most recent version of iTunes, i was able to combine it into one.  The first identifies music that i probably don't like based on skip count. It looks for any songs that have been skipped more than once, have a rating of less than 2, AND a playcount of less than 3. I had to tweak these numbers to meet my own tastes, but they work pretty well for me. The thing is, itunes doesn't increment the play count for a song until the end of the song. So if you only listen to half a song, the play count doesn't go up. Also, itunes doesn't increment the skip count until 4 or 5 seconds after the song starts playing. So if you quickly skip through a bunch of songs, none of their skip counts actually get incremented. It's actually fairly difficult for songs to get into this list because of this behavior. The other half of the blacklist system includes any songs that have a rating of only 1 star. The idea behind this playlist is that i can look at this list and see items that i either want to save or delete. They are on the proverbial chopping block. If i want to save it, i need to somehow get it into the other lists.  If i want to delete it, just highlight it and press shift+delete. I only have to check this list every or every other month.  Match Any(rating=1,Match All(skips>2, plays<3, rating<2, playlist!='excluded items'))
Whitelist - this list contains any song that has been rated with 4 or 5 stars. I don't put any size limits on this playlist, this one contains my absolute favorites. Again a simple playlist: Match All(rating>3, playlist!='excluded items').
Liked Songs - this list should contain any songs that i like based on play count. So, i look for any songs that aren't in the Whitelist and have a playcount of more than 10. This number is adjustable, i started with a value of 3 so that this list would have something in it. As my playcounts get higher and higher, i raise this number, but only once or twice a year. No size limits on this playlist either.  I also want to make sure nothing in here has been blacklisted.  Playlist: Match All(plays>10, playlist!='excluded items', playlist!=blacklist).
New Items - this list should contain brand new items so i make sure to give them a chance at getting in my Whitelist or Liked Songs list. I look for any songs that have been added in the last month. I don't filter out items that have been promoted into the Whitelist or Liked Songs list. The reason for this is that i often want to find some song that i recently acquired. This list contains those items whether or not it's been promoted to one of the other lists. ITunes isn't going to copy the song twice onto my ipod, so it doesn't take up any more space on the ipod. This list doesn't have any size limits either.  Match All(date_added in the last 2 months, playlist!='excluded items', playlist!=blacklist).
Never been played - I needed to add this list later on because i discovered that songs that had never been played didn't get into the mix enough. I ended up having the same songs over and over. This list ensures that unexperienced music gets presented. If i like it, it will end up in the whitelist or liked songs list. If i don't, it'll end up in the blacklist (read on). No size limits on this list either.  Match All(plays=0, playlist!='excluded items', playlist!=blacklist). 
Other - This list is the catch all for all songs that don't appear anywhere else. It looks for any songs that aren't in playlists 1-4 and aren't blacklisted. This one does have a size limit. These first 5 playlists will comprise what ends up on the ipod. So i set the size limit to whatever will fit. If itunes freaks out and says it can't sync because i'm trying to put too much on my ipod, i simply reduce the size of this list. Match All(playlist!=whitelist, playlist!='liked songs', playlist!='new items', playlist!='never been played', playlist!='excluded items', playlist!=blacklist). 
iPod Lists - These two lists serve to aggregate the other lists into one so i can hear a mixture.  One list (i called it 0) includes all the songs that appear in any of the last five playlists. There's no need to limit the size of this playlist, but if you want, you can apply a limit that is the same as the capacity of your ipod. I don't like to do this because this is the list that i listen to when i'm listening to music on my computer. Match Any(playlist=whitelist, playlist='liked songs', playlist='new items', playlist='never been played', playlist='other').  The other (i called it 0.0) includes anything from the whitelist, liked songs, or new items playlists.  This is for when i'm not feeling that adventurous and just want to hear music i like.  Match Any(playlist=whitelist, playlist='liked songs', playlist='new items').  So, there they are.  I've fine tuned them as time has gone by, but other than that, i hardly edit the smart playlists.  The cool thing is that you can sync iTunes playlists to your BlackBerry.  Only downside is that your play and skip counts don't get synchronized back to iTunes (many devices don't have this feature).  And you can't change the rating from your BB.  Seems like somebody could add a piece of code that would synchronize ratings.