FS#7888 - Learning Mode for Shuffle ( H120) ??

Attached to Project: Rockbox
Opened by mat arnold (mat429) - Thursday, 04 October 2007, 10:38 GMT
Task Type Feature Requests
Category Music playback
Status Closed
Assigned To No-one
Operating System Iriver H100 series
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No


Wondering if this is possible?

I often want to listen to music (obvioulsy), but am not always sure what exactly i want to listen to.
i find that i like to shuffle all the tracks on my h120 ( about 3000) - but get bored of skipping those i dont want to listen to on a particular day - the tracks i want to listen to do change.

Is there any way that rockbox could enter a learning mode where the songs that i skip and the songs i listen to are logged against the database and then make other "similar" songs more or less likely to be played?

The way i was imagining this would work is that the databse would enter shuffle mode and that every song starts with a 100% probability of being played - ie a normal shuffle.

For every song i skip, the song title looses 10%, the artist looses 10% and the genre looses 10%.
for every song that reaches the end the reverse scoring applies with limits of 100% as an upper bound and say 10% as a lower. - although it might be possible to make all these variables user editable.

so on the next shuffle rockbox chooses a song then applies the proability as to whether it is played or not ( in the case listed above the skipped genre would be at 90% and songs by the skipped artist in the skipped genre would be at 80%. if rockbox decides it is not going to play it, it shuffles to the next song, then decides whether to

Even though a genre is continually skipped, there is still a chance it may come up and be "resurrected".

the database probabilities could be stored for future use, the next time learning mode is enabled, or could be reset to 100% each time - either way, the learning process could be set to learn crudely and quickly or well and slower depending upon the probability weightings applied.

I guess there are other ways of doing this, but not having code writing experience, this was the only way i could think of doing it.

hope this makes sense - and hasnt been asked before.


This task depends upon

Closed by  Bj√∂rn Stenberg (zagor)

Reason for closing:  Fixed
Additional comments about closing:  Closing all feature requests.
Comment by Dominik Riebeling (bluebrother) - Thursday, 04 October 2007, 12:49 GMT
Short conversation regarding this in IRC:

14:44 < LinusN> bluebrother: sounds like a complicated thing - can't that be accomplished with a plugin that makes use of track
14:45 < LinusN> or even the scrobbler log
14:45 < bluebrother> why not use the playcount of the database when creating the playlist?
14:45 < LinusN> yeah, the scrobbler log would probably be the best
14:45 < bluebrother> upon recreation of the playlist tracks with a lower playcound would drop
14:45 < LinusN> when is the playcount updated?
14:46 < bluebrother> I think after the track has been played. And it also tracks the percentage of the track played iirc.
14:46 < LinusN> when it has started playing, or when it has completed?
14:46 < LinusN> that's perfect then
14:46 < bluebrother> Slasheri should know ;-)
14:46 < LinusN> so you could use the database and have a clever plugin generate the playlist for you