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?
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: MediaMonkey
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?
Posted by
Kristen |
5/21/2007 7:10 AM
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. :)
Posted by
Román |
5/21/2007 10:33 AM
I think:
it's a great idea.
you can do it.
sadly, it will cause an end of our reality.
Posted by
Special Sauce |
5/25/2007 9:33 AM
This sounds really cool, not to mention useful. Add your paypal donation info and I'm sure people will respond.
Posted by
TalSh |
5/26/2007 11:35 PM
Thanks for the vote of confidence, guys!
Posted by
Román |
5/27/2007 8:36 PM
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/
Posted by
Mr. T |
5/31/2007 11:02 PM
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?
Posted by
Mr. T |
5/31/2007 11:04 PM
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.
Posted by
Román |
6/02/2007 8:18 AM