Author Topic: Auto Rating needs skip count de-rating integration  (Read 363 times)

boodahbellie

  • Jr. Member
  • **
  • Posts: 21
Not sure if this has ever been asked for before, so I apologize if it has. I just found the auto-rating feature (been using MB for about 10 years now, man am I slow?). I've been toying with the idea of creating a plugin that would auto-Derate if tracks met certain skip criteria. Having just found Auto-Rate, I'm wondering if this is something that can be integrated into that feature?

My thought of how the feature would work is, auto-derate a track if the skip count is > than 3. Derate would be in half star increments. Or this could be manually adjusted by the user as the auto rate feature already does. Every time the skip count reaches a multiple of 3 (or what ever the user sets) the app would lower the rating by half a star.

Library syncing back and forth between mobile devices could be crucial here, since I primarily listen to my library on the go. Currently, I can't tell if skipping a track on GoneMad on my Android phone has any effect after syncing with my PC.

Mayibongwe

  • Sr. Member
  • ****
  • Posts: 1094
  • Heal The World
While I don't rate my music, I find the above request reasonable.

+1
I already spend hours on end on social media. Might as well spare a few of those to a greater purpose here.

boodahbellie

  • Jr. Member
  • **
  • Posts: 21
While I don't rate my music, I find the above request reasonable.

+1
I use ratings for a few of my auto-playlists. This would help alleviate removing songs that I don't really care for anymore. You know, the ones that lost their ZING.

tjinc

  • Sr. Member
  • ****
  • Posts: 361
I've been toying with the idea of creating a plugin that would auto-Derate if tracks met certain skip criteria.
Looks like you've been toying with this idea for some time!  :)
https://getmusicbee.com/forum/index.php?topic=13095.msg78938#msg78938


I use ratings for a few of my auto-playlists. This would help alleviate removing songs that I don't really care for anymore. You know, the ones that lost their ZING.

You could probably achieve this by manipulating the <Rating> and <Skip Count> fields in a virtual tag.
When used in a virtual function, <Rating> returns a number between 0 to 5 (representing the number of stars).

A function such as :

Code
$If(<Skip Count>>$Mul(<Rating>,5),0,$Sub($Mul(<Rating>,10),$Mul(<Skip Count>,2)))
would produce a number between 0 to 50 (representing 0 to 5 stars), reducing by 2 every skip (and you could use the value of this virtual tag as a rule in the auto-playlists)
I'm sure this algorithm could be improved (a nice decay curve maybe).


I realise that this does not update the rating tag itself so this would not be recognised by other programs (although you could probably do something there using the AT&RT plugin).
Last Edit: April 14, 2024, 10:10:02 AM by tjinc

boroda

  • Sr. Member
  • ****
  • Posts: 4684
I realise that this does not update the rating tag itself so this would not be recognised by other programs (although you could probably do something there using the AT&RT plugin).

I've just checked the source code: The AutoRate command indeed takes into account skip counts. it has been implemented from the beginning. I only don't remember if it can save auto-ratings to the actual 'rating' tag (not only to some custom tag).

i would recommend to save auto-ratings to some custom tag (named, say, "Auto-rating") leaving 'rating' tag for manual changing, and create the  3d virtual tag, which averages rating and auto-rating. use virtual tag for display purposes, and use generic rating tag to manually 'adjust' auto-rating.
Last Edit: April 22, 2024, 05:57:46 AM by boroda