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: DADA Auto-Rating (DAR) for foobar2000 (Read 83825 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

DADA Auto-Rating (DAR) for foobar2000

Reply #25
For example, I've got an album with playcounts like 24,7,7,9,11,3, etc... and ratings like 3/5,4/5,5/5...
Yet the DAR dot rating shows almost all the tracks as a 5 or 6.

One workaround that I think might satisfy some people (and me) is if instead of using dots, you could just output a more precise rating, like 7.8, 8.2, 3.4, etc... then I think the DAR dot rating may be more helpful when looking at a single album or group of tracks. I would do this myself, but I'm not that familiar with the code/math required.

Could someone provide a simple fix? Obviously the dots would no longer be needed.

Well before "fixing it" let's see if it's broken.
1. Can you give me the maximum and minimum DAR ratings (not DAR index) in your library?
2. Can you tell me the actual DAR ratings of the tracks from the album whose playcounts you quoted above?

Thanks,

C.

ps. You realise that DAR takes no notice of your "ratings like 3/5,4/5,5/5...".
PC = TAK + LossyWAV  ::  Portable = Opus (130)

DADA Auto-Rating (DAR) for foobar2000

Reply #26
Well before "fixing it" let's see if it's broken.
1. Can you give me the maximum and minimum DAR ratings (not DAR index) in your library?
2. Can you tell me the actual DAR ratings of the tracks from the album whose playcounts you quoted above?

Thanks,

C.

ps. You realise that DAR takes no notice of your "ratings like 3/5,4/5,5/5...".


1. Max: 11314, Min: 00055. I've calibrated the dot display script to have a maxdar=11514, and mindar=4255 (Got better results with that number for mindar IMO)
2. 08916, 08181, 08134, 08329, 08428, 07014, 08485, 08650, 08375, 08417

Yeap, I realize that, I would just expect that DAR would produce some results that at least help me determine which songs are my favourites. I realize too that those DAR values above are closely within each other, which is why I think a "n.n" alternate rating system would be helpful.

DADA Auto-Rating (DAR) for foobar2000

Reply #27
1. Max: 11314, Min: 00055. I've calibrated the dot display script to have a maxdar=11514, and mindar=4255 (Got better results with that number for mindar IMO)
2. 08916, 08181, 08134, 08329, 08428, 07014, 08485, 08650, 08375, 08417
Unless your playback stats go back about 60 years I'm dubious about your min rating of: 00055 !!
Can you tell me the added, and playcount data for that track?

C.

EDIT: In the meantime, I'd set my maxdar to 11500 and mindar to 7000 8000. See how that goes.
EDIT2: By the way the default is:
$puts(maxdar,10800) -- [so you have to increase that and 11500 seems sensible]
$puts(mindar,7800) -- [you'll get better results with 8000, if you set it to 4000 then suddenly those ratings above are all relatively close together, i.e. By making the mindar lower you're exacerbating the problem].

Anyway, I'm intrigued by your track with the 00055 rating. 
PC = TAK + LossyWAV  ::  Portable = Opus (130)

DADA Auto-Rating (DAR) for foobar2000

Reply #28
Unless your playback stats go back about 60 years I'm dubious about your min rating of: 00055 !!
Can you tell me the added, and playcount data for that track?

EDIT: In the meantime, I'd set my maxdar to 11500 and mindar to 7000. See how that goes.


Track with 00055 DAR rating info: ADDED 2007-02-22 23:01:31, PLAY_COUNT 1

Using those values (11500, 7000) seems to give a more accurate rating (IMO) of the tracks in the album. However, it would still be great if you could show me how to display a "n.n"-style rating value.

Edit: Next-highest DAR rating is 00173, ADDED 2007-02-14 02:02:33, PLAY_COUNT 1
Edit 2: Actually, mindar=7000 is much better than 8000, or 7800. With 7000, tracks in the album are mostly either 2/3; with 8000, tracks are all mostly 1.

DADA Auto-Rating (DAR) for foobar2000

Reply #29
Takaji, thanks for the info.
That's very peculiar indeed! Similar tracks in my library that are the same age and same playcount have a rating around 4500 [EDIT] My test isn't that old, but my calculations say a 1 min song that's 1329 days old should be around 3000.

I'm going to need more info, if you don't mind. So I can create the same file in my setup on fb2k 1.1.
I need to know the following:
  • Track length
  • Last Played
  • First Played
I'm assuming you've not changed the actual DAR code from the 1st page?

C.
PC = TAK + LossyWAV  ::  Portable = Opus (130)

DADA Auto-Rating (DAR) for foobar2000

Reply #30
I need to know the following:
  • Track length
  • Last Played
  • First Played
I'm assuming you've not changed the actual DAR code from the 1st page?


Length: 3:23.104 (9748978 samples)
Last played: 2010-09-20 00:29:42
First played: 2010-09-20 00:29:42
Play count: 1
Added: 2007-02-22 23:01:31

I have not changed the DAR code.

DADA Auto-Rating (DAR) for foobar2000

Reply #31
Yeah, I just realised why that is before you posted. Your post confirms it.
Basically, there's a very large gap between when you added that song, and finally got around to listening to it (1314 days in fact). See the graph here for an explanation:
http://www.giantpygmy.net/stuff/dar/DAR_v1...t_mechanism.png

Okay, all is good.

See this post for more:
http://www.hydrogenaudio.org/forums/index....st&p=724934

Quote
Part of the low playcount penalty is the delay in first playing.
The greater the difference between first played and added the greater the penalty, the lower the rating.

However, this penalty is temporary since the gap between first played and added never changes yet playcount does (it's divided by playcount^2).

The DAR Index (and DAR) will never go negative, so you can put in a much higher mindar than that of your lowest rating. Also, if you play that track again you'll notice a major leap in its rating.

Titleformatting can't do decimal places, but you can try this code if you don't want the dots:

This will give a 2 digit number between 1 and 100:

Code: [Select]
$puts(r3,%_dynamic_rating%)
$puts(r4,$ifgreater($get(r3),0,$get(r3),1))
$puts(maxdar,11500)
$puts(mindar,8000)
$puts(minmax,$sub($get(maxdar),$get(mindar)))
$puts(darind1,$sub($get(r4),$get(mindar)))
$puts(darind2,$div($mul($get(darind1),100),$get(minmax)))
$puts(darind3,$ifgreater($get(darind2),1,$get(darind2),1))
$puts(notplayed,$rgb(200,200,200)- n/a -)
$ifgreater(%play_count%,0,$get(darind3),$get(notplayed))

Let me know if that's any good.

C.

EDIT: removed unnecessary $rgb(200,200,200) from code above.
PC = TAK + LossyWAV  ::  Portable = Opus (130)

DADA Auto-Rating (DAR) for foobar2000

Reply #32
Yes, that's not bad, thank you for the code!

And thanks for all your patience. I'm looking forward to using DAR to create tailored playlists! Originally I wanted to make a playlist for my ipod containing songs higher than a certain rating, yet a lot of my tracks were not yet rated. I thought I would have to start manually rating every track in my library, but this is a good alternative!

Thank you for your hard work on this.

DADA Auto-Rating (DAR) for foobar2000

Reply #33
No problem. It's really helpful to see the kinds of extremes that users throw up - it's a good test.
I'd tinker with those mindar maxdar settings until you're satified.
I'm looking forward to using DAR to create tailored playlists!

Yeah, I think foo_randompools and DAR were made for oneanother.

C.

EDIT: grammar
PC = TAK + LossyWAV  ::  Portable = Opus (130)

DADA Auto-Rating (DAR) for foobar2000

Reply #34
Awesome algorithm! Exactly the thing I have been looking for a long time!

Just one thing, is it possible to set it so that it recalculate dynamic rating on a regular interval (or even real time)? Since most of the time I leave my computer running and rarely I restart foobar.

DADA Auto-Rating (DAR) for foobar2000

Reply #35
Glad you like it. This post hopefully answers your question:
foo_dynra is in beta, and it sounds like Yirkha may add a number of enhancements.
http://www.hydrogenaudio.org/forums/index....st&p=724796

C.
PC = TAK + LossyWAV  ::  Portable = Opus (130)

DADA Auto-Rating (DAR) for foobar2000

Reply #36
Cheers! I will keep an eye on that thread.

DADA Auto-Rating (DAR) for foobar2000

Reply #37
Hi.

Can anyone explain how to create the custom column with code for Dot DAR Index ?

I'm wondering if it's possible with the default UI or if another one is required. All I can do is creating a custom column with a single line pattern.

Thanks !


DADA Auto-Rating (DAR) for foobar2000

Reply #38
Can anyone explain how to create the custom column with code for Dot DAR Index ?

Is explained in chapter II here:
Quote
II. DAR INDEXED RATING (WITH DOTS) ... If you want a visual reprentation of the DAR results...
This is HA. Not the Jerry Springer Show.

DADA Auto-Rating (DAR) for foobar2000

Reply #39
Isn't another problem, duplicates?

I have many duplicates in my library and some can be grouped if the tags are consistent, but they aren't always. Besides this, what is a dupe? Generally I would say that if a song has largely the same contents, any edition of it should be considered a dupe (radio edit/album version/extended version etc).

Biggest problem is finding these dupes. fingerprinting solves part of the problem, but requires lot of user interaction and tagging and sometimes it cannot detect duplicate tracks with any useable match percentage.

Best solution I can think of to this problem is if someone could develop a fingerprinting engine that groups together dupes with a unique identifier.
Can't wait for a HD-AAC encoder :P

DADA Auto-Rating (DAR) for foobar2000

Reply #40
Can anyone explain how to create the custom column with code for Dot DAR Index ?

Is explained in chapter II here:
Quote
II. DAR INDEXED RATING (WITH DOTS) ... If you want a visual reprentation of the DAR results...


Thanks for the reply, but I've read the documentation before asking...

The problem is that I don't know how to create the column with the lines of code that are given in the doc. I know how to create a custom column with a simple pattern on a single line, but not with several lines of script.

That is my real problem. So, I was wondering how to do that and if another UI is required.

Hope someone can bring a real explanation.

 

DADA Auto-Rating (DAR) for foobar2000

Reply #41
That is my real problem. So, I was wondering how to do that and if another UI is required.
Another UI isn't mentioned as a requirement, so may I suggest to simply remove the word wraps and then copy that single line pattern?

Quote
Hope someone can bring a real explanation.
I hope this time my answer is more helpfully. I am using CUI which doesn't require to remove word wraps, so I didn't realize the DUI specific situation, please excuse. 
This is HA. Not the Jerry Springer Show.

DADA Auto-Rating (DAR) for foobar2000

Reply #42
A column accepts titleformating fields / formula - %_dynamic_rating%

Any simple to complex algorithm statements used to calculate the rating go into the large edit box included in the components preferences.
Remember to erase the single line time based sample .

terry

DADA Auto-Rating (DAR) for foobar2000

Reply #43
I apologize if this is a dumb question, I have not used foobar to record play counts in several years, so I'm not at all up-to-date on the latest features in this area.

I am intrigued by the idea of this plugin, and would like to start using it, however my main concern is whether or not you can easily "fake" plays and still have the plugin work as intended. For example, if I copy some songs to an iPod and play them while jogging, can I easily tell my foobar library and this plugin that I played those songs, without having to actually play them from within foobar?

DADA Auto-Rating (DAR) for foobar2000

Reply #44
A column accepts titleformating fields / formula - %_dynamic_rating% ...

If you are right, Terry (and I am an idiot), I would ask a moderator to move my nonsense posts into the recycle bin.

Sorry. 
This is HA. Not the Jerry Springer Show.

DADA Auto-Rating (DAR) for foobar2000

Reply #45
For example, if I copy some songs to an iPod and play them while jogging, can I easily tell my foobar library and this plugin that I played those songs, without having to actually play them from within foobar?

It depends which playback statistics you use. The DAR rating will reflect whatever stats you have, so this is really a question for the foo_playcount thread. I've already made a suggestion there to be able to reduce playcount by one, perhaps you'd like to ask to be able to add playcount by one. Seems reasonable to me to be able to do both.

There are other playcount plugins that use SQL databases and allow the stats to be manipulated quite easily. I suggest you look into these.

At the moment I'm trying to stick to supporting foo_playcount only, as it's heading in the right direction, it's much faster than the SQL alternatives, it's import and export (XML) method is very good, and I know it will always be supported. That said, it has some glaring limitations (at present) that are quite unnecessary IMO, and you've pointed one of them out in your post.

Hope that helps.

C.
PC = TAK + LossyWAV  ::  Portable = Opus (130)

DADA Auto-Rating (DAR) for foobar2000

Reply #46
The problem is that I don't know how to create the column with the lines of code that are given in the doc. I know how to create a custom column with a simple pattern on a single line, but not with several lines of script.
What happens if you put the code on one line?
Code: [Select]
$puts(r3,%_dynamic_rating%)$puts(r4,$ifgreater($get(r3),0,$get(r3),1))$puts(maxdar,10800)$puts(mindar,7800)$puts(minmax,$sub($get(maxdar),$get(mindar)))$puts(darind1,$sub($get(r4),$get(mindar)))$puts(darind2,$div($mul($get(darind1),10),$get(minmax)))$puts(darind3,$ifgreater($get(darind2),1,$get(darind2),1))$puts(display,$rgb(150,150,150)$repeat(?,$get(darind3)))$puts(notplayed,$rgb(200,200,200)- n/a -)$ifgreater(%play_count%,0,$get(display) $rgb(200,200,200)$get(darind3),$get(notplayed))
C.
PC = TAK + LossyWAV  ::  Portable = Opus (130)

DADA Auto-Rating (DAR) for foobar2000

Reply #47
The problem is that I don't know how to create the column with the lines of code that are given in the doc. I know how to create a custom column with a simple pattern on a single line, but not with several lines of script.
What happens if you put the code on one line?
Code: [Select]
$puts(r3,%_dynamic_rating%)$puts(r4,$ifgreater($get(r3),0,$get(r3),1))$puts(maxdar,10800)$puts(mindar,7800)$puts(minmax,$sub($get(maxdar),$get(mindar)))$puts(darind1,$sub($get(r4),$get(mindar)))$puts(darind2,$div($mul($get(darind1),10),$get(minmax)))$puts(darind3,$ifgreater($get(darind2),1,$get(darind2),1))$puts(display,$rgb(150,150,150)$repeat(?,$get(darind3)))$puts(notplayed,$rgb(200,200,200)- n/a -)$ifgreater(%play_count%,0,$get(display) $rgb(200,200,200)$get(darind3),$get(notplayed))
C.

I tried to put all script on a single line. The column content is strange...




DADA Auto-Rating (DAR) for foobar2000

Reply #48
Hi,

perhaps you might try my modified code with these dots "•". I had problems with the original-code on XP & DUI, too.

Code: [Select]
$puts(r3,%_dynamic_rating%)$puts(r4,$ifgreater($get(r3),0,$get(r3),1))$puts(maxdar,10800)$puts(mindar,7800)$puts(minmax,$sub($get(maxdar),$get(mindar)))$puts(darind1,$sub($get(r4),$get(mindar)))$puts(darind2,$div($mul($get(darind1),10),$get(minmax)))$puts(darind3,$ifgreater($get(darind2),1,$get(darind2),1))$puts(display,$repeat(>>>•<<<,$get(darind3))$repeat(<<<•>>>,$sub(10,$get(darind3))))$puts(notplayed,- n/a -)$ifgreater(%play_count%,0,$get(display) $get(darind3),$get(notplayed))


@Carpman:

Thank you very much for the Auto-Rating.

DADA Auto-Rating (DAR) for foobar2000

Reply #49
Thanks for that Bollerkopp.
So DUI has issues with that dot, as well as rgb(etc..) by the looks of it.

I'll make a note for the next release, especially for DUI users.

C.
PC = TAK + LossyWAV  ::  Portable = Opus (130)