INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: Rating field as a "Calculated Data" ?  (Read 2607 times)

loric

  • Recent member
  • *
  • Posts: 12
Rating field as a "Calculated Data" ?
« on: June 14, 2011, 03:35:02 pm »

Hello,

I'd like to change the Rating fields in order that it becomes a "Calculated Data" instead of a "User Data". Is it possible ?
If yes, it could be the way to implement an automatically rating of tracks, using other tracks data such as :
+ number of plays ;
+ skip count ;
+ last played flag ...
Logged

minolotus

  • Junior Woodchuck
  • **
  • Posts: 93
Re: Rating field as a "Calculated Data" ?
« Reply #1 on: June 15, 2011, 02:08:14 pm »

The settings of MC standard fields could not be change. Therefore, you could only add a custom field and definite it as expression. Hoverever, the biggest challenge would be to find a proper expression which calculates acceptable rating values. I think this will hardly be achievable as (a) it is not possible to compare values from different songs/movies (i.e. you could refer to field within the same song/movie) and (b) (as I know) MC does not support higher mathematical functions (e.g. Gaussian distribution). Without this, you could build only expressions with a presumably low informative value.
Logged

loric

  • Recent member
  • *
  • Posts: 12
Re: Rating field as a "Calculated Data" ?
« Reply #2 on: June 16, 2011, 03:05:57 am »

Thanks for the answer!

The definition of a user's field to create a new automatic Rating tag could do the job. But I'd like to use this rating on my iPhone with MCiS sync, and it use only the "official" MC Rating tag ...

For the formula, I think to a relatively simple thing, like:
Rating = Nb_play*(Today - Date_of_last_play) - Nb_skip*(Today - Date_of_last_skip)
This kind of formula should be a good measure of what I like and what I don't like.
Logged

MrC

  • Citizen of the Universe
  • *****
  • Posts: 10462
  • Your life is short. Give me your money.
Re: Rating field as a "Calculated Data" ?
« Reply #3 on: June 16, 2011, 11:31:54 am »

For the formula, I think to a relatively simple thing, like:
Rating = Nb_play*(Today - Date_of_last_play) - Nb_skip*(Today - Date_of_last_skip)
This kind of formula should be a good measure of what I like and what I don't like.

Is this idea really what you want?  A never played, never skipped song is rated 0.  Can # skips be > # plays?  If so, what happens?

Think through the edge cases, and ensure the rating order is what you expect.

Presumable you want a rating from 0 to 5 (since you asked about the existing rating field).  What would be the meaning of 500 plays - 2 skips?

Without having an upper bound on your ranges, it won't be possible to map into groupings of 0 to 5 (unless the last bucket is a catch all).
Logged
The opinions I express represent my own folly.

loric

  • Recent member
  • *
  • Posts: 12
Re: Rating field as a "Calculated Data" ?
« Reply #4 on: June 16, 2011, 11:56:58 am »

I have made of first version of my automated dynamic rating using several user's field :

Rating (LPL) = math(FormatDate([Last Played,0],yyyy)*365 + FormatDate([Last Played,0],MM)*31 + FormatDate([Last Played,0],dd))
Rating (LSK) = math(FormatDate([Last Skipped,0],yyyy)*365 + FormatDate([Last Skipped,0],MM)*31 + FormatDate([Last Skipped,0],dd))
Rating (TOD) = math(FormatDate(Now(),yyyy)*365 + FormatDate(Now(),MM)*31 + FormatDate(Now(),dd))
Rating (IMP) = math(FormatDate([Date Created,0],yyyy)*365 + FormatDate([Date Created,0],MM)*31 + FormatDate([Date Created,0],dd))

I defined these 4 user's field in order to make some direct difference between TODay date, Last SKipped date, Last PLayed date and IMPortation date. Thus, I can weight in an "adimensionnal way" the Number of Play and Skip count as you can see below:

Rating (CNU) = FormatNumber(math( [Number Plays]*(1   -   (([Rating (TOD)]-[Rating (LPL)])   /   ([Rating (TOD)]-[Rating (IMP)]+0.001))) ),1)
Rating (CNL) = FormatNumber(math( [Skip Count]*(1   -   (([Rating (TOD)]-[Rating (LSK)])   /   ([Rating (TOD)]-[Rating (IMP)]+0.001)))/2 ),1)

Then I defined the automatic dynamic rating as follow:
Rating (CNT) = math( [Rating (CNU)] - [Rating (CNL)])

and I use some basic rule like below to defined the "star rating" :
+ If Rating (CNT) < 10 ==> 0 star ;
+ If Rating (CNT) > 10 & < 20 ==> 1 star ;
+ If Rating (CNT) > 20 & < 30 ==> 2 star ;
+ If Rating (CNT) > 30 & < 40 ==> 3 star ;
+ If Rating (CNT) > 40 & < 50 ==> 4 star ;
+ If Rating (CNT) > 50 ==> 5 star.

Some few remarks using this rating :
+ Playing is more important than skipping, so 2 skip is equal to 1 play.
+ Rating will decrease with time if a title is not play (dynamic rating) : 5 stars may become 4 stars as time goes on ... Perhaps some people won't like this way to proceed, but I think it's a good thing to take into account elapsed time since last playing or last skipping.
+ I'm in trouble with  the definition of Rating (CNT) : computing of Rating (CNU) and of Rating (CNL) is OK but when Rating (CNT) is computed , I got some very strange results...

Any comment or suggestion ?
Logged

minolotus

  • Junior Woodchuck
  • **
  • Posts: 93
Re: Rating field as a "Calculated Data" ?
« Reply #5 on: June 16, 2011, 01:08:05 pm »

Quote
+ I'm in trouble with  the definition of Rating (CNT) : computing of Rating (CNU) and of Rating (CNL) is OK but when Rating (CNT) is computed , I got some very strange results...

I imported your formulas and as you I got wrong results in Rating (CNT). Maybe this is caused by limitation of MC. Your formula might be a little bit too much calculation stuff (MC became crazy on my computer and requested over 1 GB of memory after some minutes).

Logged

MrC

  • Citizen of the Universe
  • *****
  • Posts: 10462
  • Your life is short. Give me your money.
Re: Rating field as a "Calculated Data" ?
« Reply #6 on: June 16, 2011, 01:56:16 pm »

These expressions do add quite a bit of memory; I found the same result.

Each of your first 4 ratings expressions above added about 50-70 meg.

I created a new view, and added 1 expression column at a time.  Each time, MC's working set increased by about 50-70 meg.  After the first 4 expressions, I'm up to 270 meg working set.  Adding the 5th (Rating (CNU)) skyrocketed working set to 641 meg.   And this continues with more expression columns.
Logged
The opinions I express represent my own folly.

ADDiCT

  • Regular Member
  • World Citizen
  • ***
  • Posts: 235
  • I'm a bad llama!
Re: Rating field as a "Calculated Data" ?
« Reply #7 on: June 16, 2011, 02:16:58 pm »

I think rating music by math is impossible, just as judging the artistic quality of a painting by math is.

I'm using a formula named "Smarffle" which works quite well for me. If you search Interact you should find at least one thread with instructions. I'd be interested in an improved Smarffle, by the way... (;
Logged

MrC

  • Citizen of the Universe
  • *****
  • Posts: 10462
  • Your life is short. Give me your money.
Re: Rating field as a "Calculated Data" ?
« Reply #8 on: June 16, 2011, 02:20:11 pm »

I think rating music by math is impossible, just as judging the artistic quality of a painting by math is.

I don't think it is being used as an artistic rating, but rather a sort of metric that can be used to influence which tracks one might like to play soon.
Logged
The opinions I express represent my own folly.

loric

  • Recent member
  • *
  • Posts: 12
Re: Rating field as a "Calculated Data" ?
« Reply #9 on: June 16, 2011, 03:27:56 pm »

This automatic and dynamic rating reflect my habbits concerning music listening. As said MrC, this is only a metric to "objectivate" what I like at the present moment and to keep a "decreasing trace" of these choices during the next weeks/months ...

MC is installed on my job laptop (W7 Pro 64, 8Gb of RAM, quadri-core i7) so I wasn't afraid with memory/processing requirement of this rating. Is it really a problem with MC ?

PS : I'm french so, please, don't worry with my poor english level ...
Logged

loric

  • Recent member
  • *
  • Posts: 12
Re: Rating field as a "Calculated Data" ?
« Reply #10 on: June 17, 2011, 04:02:16 am »

Finally, I removed the Skip Count from the formula (I can't get some reliable results in the last operation) and here is the final version of my automatic dynamic rating, using only 2 user's field :

Rating (auto) AUX =
FormatNumber(math( [Number Plays]*(1   -   ((   math(FormatDate(Now(),yyyy)*365 + FormatDate(Now(),MM)*31 + FormatDate(Now(),dd))   -   math(FormatDate([Last Played,0],yyyy)*365 + FormatDate([Last Played,0],MM)*31 + FormatDate([Last Played,0],dd))   )   /   (   math(FormatDate(Now(),yyyy)*365 + FormatDate(Now(),MM)*31 + FormatDate(Now(),dd))   -   math(FormatDate([Date Created,0],yyyy)*365 + FormatDate([Date Created,0],MM)*31 + FormatDate([Date Created,0],dd))   +0.001))) ),1)

Rating (auto) =
FormatNumber(     If(     IsRange(FormatNumber(Math([Rating (auto) AUX]/10),0),0-5)     ,     FormatNumber(Math([Rating (auto) AUX]/10),0)     ,     5     )     ,0,0,stars,star)

Using this last formula, rating changes at the middle of a decade for the Number Play, ie:
+ 0 to 4 plays, 1 star
+ 5 to 14 plays, 2 stars
+ 15 to 25 plays, 3 stars ...
Logged
Pages: [1]   Go Up