Skip to main content
Topic: DADA Auto-Rating (DAR) for foobar2000 (Read 55569 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: DADA Auto-Rating (DAR) for foobar2000

Reply #150
Two problems I can see with this idea:

1) DAR and Playcount both work on a per track basis and so are not suitable for aggregating a bunch of tracks
2) DAR is a method to nullify (to a certain extent) the degree to which playcount dominates the definition of "popular track". So for example a track that is 10 years old and has been played 50 times does not necessarily rank higher than a track played 20 times that you've had in your library for 1 year,

Sorry I can't be more helpful - but I don't see how this can be done. My only positive suggestion is that perhaps, something like this may be possible with foo_uie_sql_tree. I'd ask on that thread.

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

 

Re: DADA Auto-Rating (DAR) for foobar2000

Reply #151
Just a minor (admin) update

Had a big clean-up over at gp-net (home of the DADA Auto-Rating algo). GP Audio had loads of now out-dated (how-to / analysis type) stuff and so there was a vicious cull with only 2 survivors, one of which was of course DAR and the page dedicated to it has been updated and cleaned up and is now more user-friendly.

It's also moved, but the old links (http://www.giantpygmy.net/gpa/index.php?id=dada-autorating) still should work:
http://www.giantpygmy.net/gpa/index.php?id=blog&post=dada-music-auto-rating-algorithm-foobar2000

No updates required on the code - I've been running it with now close to 10 years of playcount stats and I'm getting sensible results and no anomalies have popped up to cause concern - so it appears all is well. Also, pleasing to see it's still being used by people - so that's good. 

Will likely provide some graphs to show the overall effect on a 10 year old library when the time comes.

If anyone spots mistakes, broken links or anything strange - please let me know - either here or via the contact page on gp-net.

Thanks,

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

Re: DADA Auto-Rating (DAR) for foobar2000

Reply #152
First off, thanks, it looks great. I'd change "maths" to math, otherwise perfect. An awesome component and effort!
Quis custodiet ipsos custodes?  ;~)

Re: DADA Auto-Rating (DAR) for foobar2000

Reply #153
Thanks 2tec.  Maths - yeah, it's a UK thing:

Quote
Math and maths are equally acceptable abbreviations of mathematics. The only difference is that math is preferred in the U.S. and Canada, and maths is preferred in the U.K., Australia, and most other English-speaking areas of the world.
Cheers (also a UK thing)

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

Re: DADA Auto-Rating (DAR) for foobar2000

Reply #154
Thanks for the updates carpman.

I'd be curious to hear if you gathered any further thoughts on modifying $puts(lib0,$date_diff(2000)) over the years or your original suggestions still hold true today.

Re: DADA Auto-Rating (DAR) for foobar2000

Reply #155
Excellent question! Short answer: Everything still holds for today.

Long answer: The reason is that it's designed to work on a very large range and so although we're now in 2017 the question remains, how big is your library and when did you begin gathering playcount stats. The 2000 baseline number (which was chosen because stats cannot predate foobar2000) will work for the majority of people and won't need to be changed - even if one starts collecting stats in 2017. All it does is allow some fine tweaking to those users who have very small or very large collections. As you know, it's about the recycling speed of tracks - so small libraries will recycle tracks much quicker than large ones. As time passes it just allows the tweaking slider to slightly grow in length. It's really there for users who are noticing a dominance of either new or old tracks - and especially for those who have vast libraries - old tracks, rarely recycled through the playback cycle, might need a boost and they can incrementally raise the 2000 value toward the year (but not beyond) that when they began collecting stats. So no, nothing has really change, since for example, the date one starts collecting stats remains static.

Good question.

C.

EDIT: What does change over time, is that it allows new users with new libraries and a recent stat collecting starting point a little more leeway (a slightly longer slider) than those of us oldies who have stats that date back to the 2000's.  So you could imagine a volume slider that every year grows by 0.01. So after 10 years a new user can turn his music up to 10.1 - that doesn't mean they should. In this case they probably shouldn't. These were all things anticipated and tested for in the very long excel modelling phase.
PC = TAK + LossyWAV  ::  Portable = Opus (130)

Re: DADA Auto-Rating (DAR) for foobar2000

Reply #156
I understood how it works, I was mostly just curious if the actual values were possibly slightly off or which values would be considered extreme (naturally it's kind of a subjective topic).  Guess the more straightforward question would be is what value did you personally settle on (considering whatever sized library you have), with the disclaimer that naturally everyone should pick it for themselves. Thanks for the explanation though.

Re: DADA Auto-Rating (DAR) for foobar2000

Reply #157
I've settled on the default = $puts(lib0,$date_diff(2000)).
For context my music library is approx 10,000 tracks (small?) and playcount stats started August 2008.

I think the advice in the txt file you linked to is pretty relevant still.

What would be really interesting is to see a poll done with foobar2000 users library sizes (I know I've seen some people with more tracks than is possible to listen to in a human lifetime - not sure what that's about - dopamine?)

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

Re: DADA Auto-Rating (DAR) for foobar2000

Reply #158
Just in case people don't know what Daeron's talking about, it may be helpful to explain:

One of the time-based calculations in the DAR formula deals with old tracks (e.g. tracks that have been in your library since you started collecting stats). There is a downward force on the rating caused by the passing of time (playcount / time passed). However over time this downward force can be made to diminish giving some relief to the old track's age burden - and that is what this variable does.

The reason it can be tweaked is that some people recycle tracks quicker than others (if you have a massive library the time it takes to play each track once is much greater - and thus the age burden of older tracks needs to be lifted - and vice versa for very small music collections).

What is important of course is that in alleviating this downward force you don't create an upward force, since that would mean tracks benefit simply by virtue of the fact they're getting older (no one likes a song more by not playing it).  And that is why the variable needs to be capped at the age of the library. So if your oldest track added date is 2015, then $puts(lib0,$date_diff(2016)) would create anomalies.

Hope that helps those less familiar with DAR's inner workings than Daeron.  ;)

C.

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

Re: DADA Auto-Rating (DAR) for foobar2000

Reply #159
@ Daeron

Just to give you a little better idea of the outcome of the lib0 variable which is an input to the lib1 calculation which provides a dynamic variable that affects the date based side of the DAR calculations.

As you can see below we have 2 tracks (one 3000 days old in red, and the other 245 days old in green). You'll notice that a lib0 of 1900 (which is the lowest acceptable value) is not so different from 1950. As we approach the year the library stats began (in my case 2008) the curve begins to steepen for the old track, whereas the new track is barely affected. 



So if you look at the default lib0 of 2000 there's a 22 point difference between the old and new tracks, if we bump that up to 2008 (max) that difference is 39. 

The bar chart (2nd y axis) shows the (adjusted) age relation of these two tracks. So, with a lib0 of 1900 the old track is 12 times as old (which is close to reality = 12.2), but when we switch the lib0 to 2000 (default) the track is treated as 10.2 times as old, at lib0 2008 the track is treated as just 8.7 times as old. So clearly the "playcount / time period" burden is going to be reduced and the older track's rating will rise as you bump up the lib0 variable. 

Hope that helps flesh out the lib0 and gives you a better feeling for how to adjust it for your library.

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

Re: DADA Auto-Rating (DAR) for foobar2000

Reply #160
Thanks for the further explanation, it was helpful. And indeed a poll of library sizes would be interesting. A statistical analysis of how the dynamic ratings are distributed for each individual person perhaps even more so. Would be nice to see some people religiously listening to a small subset of tracks while others barely chewing through new tracks every day and so on.

 
SimplePortal 1.0.0 RC1 © 2008-2019