Thoughts
Saturday, May 19, 2007 
New Project: MediaMonkey Auto-Rater
I think I've mentioned before that I'm a huge fan of MediaMonkey. I probably annoy my co-workers with how much I rave about it. One of the things I really like about MediaMonkey is how extensible it is. I've already written a number of scripts and apps for it that make organizing and maintaining my music collection much easier than it was when I used iTunes (now a distant but bitter memory). One thing I've been semi-obsessed with lately is rating all my music. I have 7365 tracks in my collection, with 6671 of them unrated. I got an idea from someone on the MediaMonkey forums for creating an auto-rating app that would rate your tracks based on how often you listen to them or how often you skip them. Here's the idea...

When a track plays, it gets an automatic base rating (which will be configurable in my app, but let's assume it's a 3 star rating for the example's sake). After X subsequent plays where the majority of the song is played (I'll explain this in a sec), the rating gets incremented by some configurable amount (MediaMonkey ratings go in half-star increments, so let's assume a half-star increment). Therefore, I could configure my app to give a half star increment to songs after every 2 times that I listen to the majority of the song. I mention listening to the majority of the song because I plan on decrementing the rating if the song gets skipped before a certain point. I'm not sure yet if I'm going to use a pre-set number of seconds (i.e., listen to the song for at least 30 seconds or it gets a lower rating) or a percentage of the song time. I might even use a combination of the two criteria with varying severity in the rating demotion depending on how soon into the song the song gets skipped. There are a number of things to figure out about this approach, but I think it will work.

The app will have to maintain a database of the tracks I listen to and how much of them I listened to. That way the app will know that it can auto-rate a song a.) the song is not yet rated or b.) the song's rating matches the last rating seen by the app for that song. However, if I lose the database of songs (or it gets corrupted), that means the app will only rate songs that are unrated, possibly leaving songs that were being auto-rated without a proper rating. Another concern of mine with this approach is that I think I should set a limit for how much a song can be upgraded or downgraded via the auto-rating method. I don't want a song to be rated a 5 just because I listened to it 10 times in the past month. I wonder if my system should work off of a curve, so that the higher a track's rating is, the harder it becomes for the track to get a rating increment. I'll probably do the same on the decrementing side to keep things even.

Suggestions are welcome...what do you think? Will this work?

Labels:

Well, being the awesome programer that I am, ;) I think it will work!

No seriously, I think it's a good idea. How long will it take you to write it?

I think it will take a few days to write if I get some time to dedicate to it, but that doesn't seem likely any time soon. :)

I think:
it's a great idea.
you can do it.
sadly, it will cause an end of our reality.

This sounds really cool, not to mention useful. Add your paypal donation info and I'm sure people will respond.

Thanks for the vote of confidence, guys!

Any opinion on Foobar2000, possibly using FofR? That's my media player of choice, and has many of the features you are looking for without your own personal control. I don't believe there is a decrementing feature, but that's always a possibility with their goofy API. I'll have to check out MediaMonkey.

http://www.fooblog2000.com/fofr-configuration-guide/

After a quick look, MediaMonkey does a heck of a lot more than the FofR skin, but that's all I look for in a media player. I still stick to CDs. Are CDs considered 'old school' yet?

Hehe, well, I still buy CDs since they are the easiest (and often cheapest) way to get non-DRM high-quality rips of albums. But I always rip right away and I never touch the CD again.

I'll take a look at FooBar sometime, but I am quite satisfied with MediaMonkey. :)

Also, I wrote an initial version of this a few days ago and so far, it's looking good. I'll post code when I'm done.

Post a Comment