Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Req: Auto rating system (Read 10058 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Req: Auto rating system

I'm surprised I havn't seen this before but I liked how Windows Media Player has an automatic star rating system, which rates tracks on the amount of times they have been played. I was thinking 'why hasn't this been done for foobar200?" I would do it myself but have no knowledge of the scripting that foobar2000 uses, I only know alittle VB from high school.

There is currently a rating system which allows you to rate tracks manually which I'm using at the moment called quicktag. There is also a play count plugin. Now I was thinking it shouldn't be too hard to combine the 2 plugins to create an automatic rating system based on how often the tracks are played.

I'm not too knowledgable on scripting but something similar to a series of If, Then Else statements could be used.

eg. IF playcount = 3 Then
%rating% = 2stars
End IF

Something along the lines of

1 listenings = 1 star
3 listenings = 2 stars
8 listenings = 3 stars
19 listenings = 4 stars
26 listenings = 5 stars

I think a lot of other people would find this extremely useful as well.

 

Req: Auto rating system

Reply #1
Hi

Sounds like a worth while plugin, but what if you play a track 30 times and then you get sick and tired of listening to it.  Should it still have the 5 stars?

I dont think it should because 5 stars "in my books" means you love the song, but after listening to it for a while you get sick of the song, it shouldnt have 5 stars any longer.

So to over come this problem, I think it should also be linked to the last played date and time tag, so the stars decrease if it is not played for a long time.

It would probably be best if the user could adjust all these types of settings,  e.g. how many times a track has to be played before a star is incremented.  how long must a track not be played before a star is removed etc etc.

Other than that, I love the idea!

Req: Auto rating system

Reply #2
Quote
Something along the lines of

1 listenings = 1 star
3 listenings = 2 stars
8 listenings = 3 stars
19 listenings = 4 stars
26 listenings = 5 stars[a href="index.php?act=findpost&pid=260735"][{POST_SNAPBACK}][/a]
This is already do-able:

$if($greater(%play_counter%,25),●●●●●,
$if($greater(%play_counter%,18),●●●●,
$if($greater(%play_counter%,7),●●●,
$if($greater(%play_counter%,2),●●,
$if(%play_counter%,●)))))
f to c to f to c

Req: Auto rating system

Reply #3
Quote
I'm surprised I havn't seen this before but I liked how Windows Media Player has an automatic star rating system, which rates tracks on the amount of times they have been played. I was thinking 'why hasn't this been done for foobar200?" I would do it myself but have no knowledge of the scripting that foobar2000 uses, I only know alittle VB from high school.

There is currently a rating system which allows you to rate tracks manually which I'm using at the moment called quicktag. There is also a play count plugin. Now I was thinking it shouldn't be too hard to combine the 2 plugins to create an automatic rating system based on how often the tracks are played.

I'm not too knowledgable on scripting but something similar to a series of If, Then Else statements could be used.

eg. IF playcount = 3 Then
%rating% = 2stars
End IF

Something along the lines of

1 listenings = 1 star
3 listenings = 2 stars
8 listenings = 3 stars
19 listenings = 4 stars
26 listenings = 5 stars

I think a lot of other people would find this extremely useful as well.
[a href="index.php?act=findpost&pid=260735"][{POST_SNAPBACK}][/a]
Thats a good idea, but IMO it should be a little more complex.  I would make it dependant on time and playlist/collection size as well.  I don't think I will listen to any one song 26 times in the next 6 years because my collection is so large.  Also the time could work to counteract the "got super tired of the song" problem that JEN mentioned.  Maybe something like:

(([listenings for track] / [total listening for all tracks]) * [all tracks]) / [average weeks since each listening of track] = [quant for current track]

[quant for current track] / ([total quants for all tracks] / [number of tracks]) = ratio

if ratio is less than 0.1
rank = 0 stars
if ratio is greater than 0.1; less then 0.5
rank = 1 star
if ratio is greater than 0.5; less than 0.75
rank = 2 stars
if ratio is greater than 0.75; less than 1.25
rank = 3 stars
etc.
Those are just ratio values off the top of my head.  Different values would likely yield much better results, I would have to play around a bit to get more or less optimal ratio --> rank values.  Obviously this could use some refining.

edit:  I am not a programmer so I'm not sure if a model like this would be feasible or not.
gentoo ~amd64 + layman | ncmpcpp/mpd | wavpack + vorbis + lame

Req: Auto rating system

Reply #4
I personally like the fact that rating and playcount are two different things. You can still combine them for rating display, or for playlist generation.

Here is a sort string I use with the extended playlist generator:
Code: [Select]
$sub(1000,$add(%PLAY_COUNTER%,$mul(%TRACKRATING%,2)))|$sub(5,$meta(trackrating))|$rand()
With this one, I weight tracks depending on their rating and playcount. Each "rating point" counts as two "playcount points" (this 2:1 weighting suits me at the moment, but can pretty easily be changed).

With this solution, I'm still able to individually generate playlists based on this weighting, rating or playcount.

Note: I only use rating as something positive, hence bad and not above average tracks has a rating of 0, and everything that stands out in a positive way gets a positive value. Where 5=goosebumps 

Of course I wouldn't mind another plugin, just thought I could share the idea in case you don't see a new plugin anytime soon.

Req: Auto rating system

Reply #5
Great!  Thanks alot silverbolt your coding worked out great
Exactly what I was after. This will be beneficially to a lot of other people who are not very good with coding and would like a ratings system.

Keep up the good work!

Req: Auto rating system

Reply #6
@Silverbolt
thats fucking amazing
thank you!!!
and thanx to 12zmcnvow1277 for opening this thread.

Req: Auto rating system

Reply #7
Oops, i've got a problem.
im using Databse Explorer panel,
and i changed a little the counter string (check columns UI thread page 57, down page), so it will show Rating of only 1 star (or 2-5) songs.
it's working but intstead of shwing "1 star" in the tree, it shows "1 star[SYNTAX ERROR...."
(see the pic)
how do i fix that?
here's my code:
Code: [Select]
Rating|
$ifgreater($num(%play_counter%,3),25,'5 Stars',
$ifgreater($num(%play_counter%,3),18,'4 Stars',
$ifgreater($num(%play_counter%,3),7,'3 Stars',
$ifgreater($num(%play_counter%,3),2,'2 Stars',
$ifgreater($num(%play_counter%,3),0,'1 Star',
No Star))))))|
$if2(%artist%, unknown artist)|'['$if2(%date%, date me pls)']'
$if2(%album%, unknown album)|
$num(%tracknumber%,2). %title%




thanx

Req: Auto rating system

Reply #8
Code: [Select]
Rating|
$ifgreater($num(%play_counter%,3),25,'5 Stars',
$ifgreater($num(%play_counter%,3),18,'4 Stars',
$ifgreater($num(%play_counter%,3),7,'3 Stars',
$ifgreater($num(%play_counter%,3),2,'2 Stars',
$ifgreater($num(%play_counter%,3),0,'1 Star',
No Star)))))|
$if2(%artist%, unknown artist)|'['$if2(%date%, date me pls)']'
$if2(%album%, unknown album)|
$num(%tracknumber%,2). %title%

Req: Auto rating system

Reply #9
thanx! working !

Req: Auto rating system

Reply #10
How do i go about using Silverbolt's code to automatically add a rating on my playlist ? im pretty clueless on where to put code on fb2k from post in the forums. 
You're talking to my guy all wrong... It's the wrong tone. Say it again, and i'll stab you in the face with a soldering iron!

Req: Auto rating system

Reply #11
Quote
How do i go about using Silverbolt's code to automatically add a rating on my playlist ? im pretty clueless on where to put code on fb2k from post in the forums. 
[a href="index.php?act=findpost&pid=261339"][{POST_SNAPBACK}][/a]


I second that!

Req: Auto rating system

Reply #12
Quote
How do i go about using Silverbolt's code to automatically add a rating on my playlist ? im pretty clueless on where to put code on fb2k from post in the forums. 
[a href="index.php?act=findpost&pid=261339"][{POST_SNAPBACK}][/a]

If you use columns UI interface, place that code i.e. in a new column named rating. This will not tag your files, but will only display a rating relative to your playcounts.

Req: Auto rating system

Reply #13
Tomacco_Boy,

Just figured it out.  Go to your Columns UI section and then scroll to the "ratings column"  Then place the code in the display area.  All of the above should work great!

Also, any of the above can be placed in the "trackinfo" panel as well.

Req: Auto rating system

Reply #14
i really didnt understand whats the diffrent between this and hotness.
anyway, ive noticed that there's no screenshot of the auto rating which i use for a lot of time.

Req: Auto rating system

Reply #15
Just out of boredom, I took silverbolt's string and altered it so that it puts empty bullets (○) where needed to keep everything uniform.

Code: [Select]
$puts(rating,
$if($greater(%play_counter%,25),●●●●●,
$if($greater(%play_counter%,18),●●●●,
$if($greater(%play_counter%,7),●●●,
$if($greater(%play_counter%,2),●●,
$if(%play_counter%,●))))))

$repeat('○',$sub(5,$len($get(rating))))$get(rating)


The end result is something like this: ●●○○○
</signature>

Req: Auto rating system

Reply #16
Quote
i really didnt understand whats the diffrent between this and hotness.
[a href="index.php?act=findpost&pid=276928"][{POST_SNAPBACK}][/a]

Hotness takes into account much more values. Afaik it determine how 'hot' is a track, taking into account when it's been added to the database, the frequency of play since then and the ratnig that the user has assigned to that particular track. +- the more a track is new, the more it has been played in the last weeks, the hotest it'll be. I've just put it into my fb2k a week ago, so I don't know much more about that.

The code posted here  for auto-rating takes only into account how much a track has been played.

Req: Auto rating system

Reply #17
well, hotness dounds intresting
ill check it out, thanx

Req: Auto rating system

Reply #18
Quote
Thats a good idea, but IMO it should be a little more complex.  I would make it dependant on time and playlist/collection size as well.  I don't think I will listen to any one song 26 times in the next 6 years because my collection is so large.  Also the time could work to counteract the "got super tired of the song" problem that JEN mentioned.  Maybe something like:

(([listenings for track] / [total listening for all tracks]) * [all tracks]) / [average weeks since each listening of track] = [quant for current track]

[quant for current track] / ([total quants for all tracks] / [number of tracks]) = ratio

if ratio is less than 0.1
rank = 0 stars
if ratio is greater than 0.1; less then 0.5
rank = 1 star
if ratio is greater than 0.5; less than 0.75
rank = 2 stars
if ratio is greater than 0.75; less than 1.25
rank = 3 stars
etc.
Those are just ratio values off the top of my head.  Different values would likely yield much better results, I would have to play around a bit to get more or less optimal ratio --> rank values.  Obviously this could use some refining.

edit:  I am not a programmer so I'm not sure if a model like this would be feasible or not.
[a href="index.php?act=findpost&pid=260776"][{POST_SNAPBACK}][/a]


This looks interesting, have you had any more ideas on this music_man_mpc.

i think the second formula you quoted should be

[quant for current track] / ([total quants for all tracks] * [number of tracks]) = ratio

Req: Auto rating system

Reply #19
Is someone working on this project?

I'm interested in such plugin with some accurate rating mesure!

I'll be trully thankfull if someone code something like this...