My new music rating system
Last weekend, I had some free time to mess around with a very nice Perl iTunes XML parser.* I’ve been curious about messing around in Perl ever since working with it once at my job last year, so this was a great chance to get re-acquainted with the language.
I’m obsessive about rating my music in iTunes, and with a fairly large collection (almost 18,000 songs, which if played consecutively would take 53 days to listen to), I have a lot of data to potentially analyze.
With all this data, I wanted to answer two questions:
- Who is my favorite artist?
- What is my favorite album?
Now, a normal person would answer this question by reflecting on the matter for a while, but for me, my answer would change based on what mood I was in. I wondered what my ratings would tell me.
So, I spent some time messing around with some scripts. I tried rating artists by total stars given, but that rewarded artists with many short high-rated songs (They Might Be Giants), and punished artists who produced longer material (Steve Reich). I also tried ranking my favorite albums by average rating, but that seemed to reward albums that didn’t have a lot of low- or high-rated songs on them, rather than albums with a lot of high-ranked songs and a few long-ranked songs on them.
After some thinking, I came up with a different system, one I’m much happier with it. In fact, I’m so happy with it, I’m calling it my Awesome system.
Here’s how it works. The units of measure are temporal, so we have Minutes of Awesome (MoA) and Hours of Awesome (HoA).
Before I go any further, I should explain my iTunes ratings. As you probably know, iTunes lets you rate a song anywhere between one and five stars. Here’s how I interpret the scale.
- 1 star: A bad song. I don’t want to hear it ever again.
- 2 stars: A mediocre song. If it comes up, I’ll tolerate it, but it’s not doing much for me.
- 3 stars: A good song. I enjoy it. But it’s not one I’ll look out for.
- 4 stars: A very good song. I like it, and may have even memorized the lyrics, if applicable.
- 5 stars: An awesome song. This song has touched my life in some way. I may have had it playing in my head for a week without complaining. Tears may have been shed. If I am parking my car and this song is playing, I will think about idling until the song is over.
The basic idea is very simple. A 1-minute song rated at 5 stars is 1 Minute of Awesome. A 1-minute song rated at 4 stars is .5 Minutes of Awesome (30 Seconds of Awesome, in other words).
That’s it. Songs rated between 1 and 3 stars are completely disregarded.
This system evens out the discrepancy between artists like They Might Be Giants and Steve Reich, putting them on equal footing. It doesn’t count songs that I think are bad, mediocre, or merely good. I’m only interested in calculating Awesome, and the longer the awesomeness, the higher the rating. So an hour-long album with all songs rated at 5 stars would be 60 MoA, or 1 HoA.
So to rank my favorite artists, I simply added together HoA. This rewards prolific artists who have recorded a lot of music that I like. I don’t see a problem with this, but it definitely punishes “one and done” artists.
Now that that’s explained, here are my personal top 10 artists, by HoA…
1. Killing Joke: 2.97743736111111
2. New Model Army: 2.65715388888889
3. Steve Reich: 2.47266666666667
4. They Might Be Giants: 2.45228805555556
5. Nine Inch Nails: 2.41058444444444
6. Tori Amos: 2.2696575
7. Philip Glass: 2.23601
8. American Music Club: 2.23551444444444
9. XTC: 2.02524763888889
10. The Decemberists: 1.96034875
The top two aren’t a surprise, although I’d have expected them to be flipped. I’ve been listening to both of them for about twenty years.
Steve Reich hitting #3 is something that raised an eyebrow, but considering that he has some album-length works that I adore (Tehillim, Music for 18 Musicians), it’s not a surprise.
I’m not surprised by TMBG hitting the top 5, but let’s consider the accomplishment of an artist who reached 2.5 HoA when none of their songs are longer than five minutes. *APPLAUSE*
Nine Inch Nails rounds out the top 5, which isn’t a shocker; I’m a longtime fan. But #6 surprised my socks off.
I’ve always enjoyed Tori Amos’ music, but I’ve never considered her a favorite of mine. In fact, I have no music of hers rated 5 stars. This means that, with 2.27 HoA, I have ranked almost 5 hours of Tori’s music at 4 stars.
Impossible, I thought! But then I went through my library. Sure enough, there it was. If you’re still wondering why I do crap like this, this is the reason. I am now coming to terms with the fact that I am a Tori fan. I wonder if there’s a support group for this.
No rating system is perfect, of course, and this rating system punishes one type of artist: Someone who records similar music under different artist names. The artist in my library most affected by this would probably be Ben Folds. His work under Ben Folds Five ranks #104, with 0.644 HoA, while his solo material ranks #57 with 1.03 HoA. Combine those, and you get 1.67 HoA, good enough for #15 on my Favorite Artist list, sliding incongruously between Swans and Type O Negative.
Now, onto albums. There’s one adjustment I had to make here, and that’s account for the fact that all albums are different lengths. If I rank favorite albums by pure aggregate, then double-albums would beat all my other albums. So here, I had to make a concession to timing, and “normalize” the ratings to a 60-minute album.
In other words, a 60-minute album with all songs rated 5 stars would still be 60 MoA, while a 60-minute album with all songs rated 4 stars would still be 30 MoA. But a 30-minute album with all songs rated 5 stars would normally rank as being 30 MoA. If I double the rating to turn it into a 60-minute album, I now have it as 60 nMoA, which is where I want it. So now I can compare albums without worrying about their length.
One other thing: I define an “album” as a unified collection of songs by one artist with at least 5 songs, running at least 30 minutes.
So, here are my top 10 albums by nMoA (normalized Minutes of Awesome):
1. American Music Club - Everclear: 46.7580263055956
2. Pink Floyd - Animals: 43.6023205636406
3. Killing Joke - Night Time: 42.6553276058414
4. Neurosis - Through Silver In Blood: 36.9107668128577
5. Nine Inch Nails - Broken: 35.931577276988
6. Sunny Day Real Estate - How It Feels To Be Something On: 35.3211272730057
7. Pink Floyd - Wish You Were Here: 34.6241832903066
8. Loreena McKennitt - The Book of Secrets: 34.0410866020781
9. Mr. Bungle - Mr. Bungle: 34.0136998864753
10. Killing Joke - Extremities, Dirt And Various Repressed Emotions: 33.8866561203438
The #1 album isn’t a surprise; it’s been one of my favorites since high school (and I should clarify: the band name is American Music Club, and the album name is Everclear. These are not the guys who did “Santa Monica”). But Pink Floyd sneaking two albums into the top ten is definitely a shocker, as is Loreena McKennitt, an artist I’ve always “liked” but not “loved,” sliding in at #9. But like I said before, it’s an album with a lot of high-ranked songs, and I love being forced to look at my music collection in new and interesting ways.
So there you have it: the results of a weekend of geeking out. I love the fact that I can now quantify how much I enjoy an album. For example, I can authoritatively say how disappointed I am in the newest albums by TV on the Radio (10.683 nMoA), the Decemberists (4.551 nMoA), and especially Radiohead (3.821 nMoA). And I am hoping that the year is redeemed by new albums from artists like Death Cab for Cutie (#135, 0.55 HoA) and Battles (#153, 0.483 HoA).
* You may be wondering why I didn’t just parse the iTunes XML with any old XML reader library. The answer is that Apple is very into a data structure called a plist, which, when set up as an XML, appears as a bunch of name-value pairs. This confuses most DOM and SAX parsers, so you have to have some special way of reading it.