
Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net
Evolvescore2 - AmaroK script
Version: 1.2
Dependencies:
Python, python-sqlite, your database has got to be sqlite
Description:
This is a scoring script for Amarok 1.x. It always bothered me that songs are only scored when you listen to them. I think songs should be decreased when you *don't* listen to them. That's why I wrote this script. Now everytime you listen to a song, the score increases by the number of minutes "n" you listened to the song. Then "n" random songs' score is decreased by 1 point. The average score over all songs is therefore always conserved. New songs or songs with a score of 0 start out with a score of 50. The script includes handling of boundary conditions, that means no song ever gets below 0 or above 100. So why don't I just substract n/totaltracks from every song? Because I'm using dcops "set-score-by-path" function and doing so can take a very long time if your collection is big. The beauty of this script is, that the longer you use it, the better your score gets (IMHO).
11 years ago
The function to increase listened tracks has been changed from newscore = oldscore + minutes to the more complex
newscore = oldscore + (100-oldscore) * minutes / (minutes + 15)
this makes it harder to get really high scores. The decrease has been changed to decreasing ((newscore - oldscore) * 10) random tracks by a value of 0.1. This makes the decrease-distribution less arbitrary.
11 years ago
The function to increase listened tracks has been changed from newscore = oldscore + minutes to the more complex
newscore = oldscore + (100-oldscore) * minutes / (minutes + 15)
this makes it harder to get really high scores. The decrease has been changed to decreasing ((newscore - oldscore) * 10) random tracks by a value of 0.1. This makes the decrease-distribution less arbitrary.
Please login or register to add a comment or rating