This is the bug/patch tracker for Rockbox. Click here for more information.
Quick links: Bugs · Patches · Rockbox frontpage
FS#1042 - Weighted Playlists / Smart Weighted Playlists
Attached to Project:
Rockbox
Opened by Anonymous Submitter - Friday, 07 March 2003, 19:51 GMT+1
Last edited by Rani Hod (RaeNye) - Monday, 18 September 2006, 14:42 GMT+1
Opened by Anonymous Submitter - Friday, 07 March 2003, 19:51 GMT+1
Last edited by Rani Hod (RaeNye) - Monday, 18 September 2006, 14:42 GMT+1
|
DetailsIt would be nice if there was an optional playlist file format that
could include a 'weight' rating for each song... say 1-10 (or maybe 1-5 if 10 is too many). When a playlist starts in shuffle mode ... the weight helps to determine if the song will play on this shuffle mode session or not ... so basically using a random generator ... a '10' would always play ... a 9 would have a 90% chance of playing, 8 would have 80% chance of playing etc. So some songs you don't like to hear as often won't always get thrown into the mix and shuffled and the weight determines how often (on average since it will probably be a random generator that chooses to play or not). ------------- Part 2 --- Smart Weighted Playlist. I saw this feature on the Empeg Car Player... My details are below. But in a nutshell, the player could pay attention to when you skip songs in a playlist and change the weight if you tend to skip the song a lot. Or vise-versa (you have a song with a low number, but suddenly tend to start listenting to it a lot) I think this would be a great feature ... because basically a playlist could start to adapt itself to mimic the habits of the listener (user) and it would result in a better listening experience. The stats for this (as will as the weighted playlist about) could either be stored as part of the playlist file ... or stored somewhere else too i suppose if the playlist format is a limitation. Here is my details of how i think it could technically work.... When a playlist is created the user could have the option to make it a Smart Playlist .... basically everysong could start out with a rating of 10 (or 5 if you go with 1-5). In addition the weight. The playlist would hold the average amount of time (in percentage of song) that the user actually listens to the song. Initially this average sound start out at 100% (1.00). The average consists of the last 10 times the user heard the song. So initially each value for each item would reflect that the user listened to the entire song the last 10 times. So then when you listen to the playlist (shuffle mode) and you finish a song (either by coming to the end or hitting the skip to go to the next song) it calculates what % of the song you listened to. Then it adjustes the average based on the old average. Example: newAverage = ((oldAverage * 9) + thisPercent)/10 Then it would change the weight based on the newAverage score. So for example if you were using a 1-10 based scale and the the orignal average was 100% but the user listened to only 10% of the song. newAverage = ((100 * 9) + 10)/10. Which is 91% As the new Average. Then 91% if you convert to the 1-10 scale ... 91% is closest to 9 (9 being 90% of 10). So the weight would now be 9. (If you were using a 1-5 weight scale ... 4 is 80% of 5, so 91% would be closest to 5, so it would keep 5 this time around). So going on more step ... if the user did the same thing when this particular song came up and only listened to 10% of it .... then newAvarege = ((91.00 * 9) + 10)/10. Which is 82.9% resulting in a weight of 8 now ... so you can see that the weight can quickly start to adjust itself as the listener uses the list. |
This task depends upon
This sounds like an awesome feature if it is possible!
With no curve applied, a song rated 7/10 would have a 70% chance of being played when encountered in the playlist, and a song rated 2/10 would have a 20% chance. The better song is 3.5 times as likely to be played. However, using rating**3, the probabilities are 34% and 0.8%, making the better song 43 times as likely to be played. This effectively amplifies the difference between a good song and a bad song.
This feature (and some ideas of how to implement it) is already logged in another bug:
http://www.rockbox.org/tracker/task/5837
This is actually how the music player on my desktop works. It's simple and effective. The only drawback I've found is that it only works if you like random play order. The better songs get played more often, but the feature must be turned off if the user wants songs to play in any particular order.