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: "hotness" (Read 200041 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

"hotness"

Reply #300
I hear you on the playcounter issue.  I was on the forum when the thread you posted above was active and was as surprised as you were with the methodology chosen for the official playback statistics release and only use unofficial as well.  However, I think it is best that this issue be discussed on another thread b/c this thread really should be dedicated to hotness.

"hotness"

Reply #301
Let me make it clear that none of these issues have merit.

The official play counter uses different file tags, but exposes "play_count," "first_played," and "last_played" through the media library. The reason why the file tags are actually called "last_played_timestamp" and "first_played_timestamp" is because they're not actually a date timestamp like "first_played" and "last_played," but are rather in a different format. Using the media library exposed "first_played" and "last_played" will present the tags if they exist, else if not, convert the timestamps dynamically into the relevant format. Additionally, the "play_count" exposed by the media library combines both "play_count" and "play_counter" tags if they exist.

I would guess that the intentional effort to use different tags is so that both the official and non-official versions of the playback statistics/play counter plugins can coexist without conflicts.

"hotness"

Reply #302
Sorry for the bump, but I have a few newbie questions
First, I would like to know how I can add the %added% tag to all of my songs.
Secondly, I would like to know if there is a way to make this work with single column playlist. I put the code in the columns_ui global variables section, but I don't know how to display the dot.

Thanks in advance,


Clint

"hotness"

Reply #303
First, I would like to know how I can add the %added% tag to all of my songs.
This was done with an old component for 0.8.3.  I don't remember what it was called, but in any case, it's no longer being developed and was cumbersome anyway.  I think you might be able to write a masstagger script using foo_cwb_hooks, which can give you the system date.


Secondly, I would like to know if there is a way to make this work with single column playlist. I put the code in the columns_ui global variables section, but I don't know how to display the dot.
I recently adopted SCP and encountered this same problem.  foo_cwb_hooks saves the day by providing the necessary functionality.  I intend to post an SCP version soon.

"hotness"

Reply #304
Would be great if your  new version also worked for trackinfo mod, which should be fairly easy b/c they use basicly the same syntax.


"hotness"

Reply #306
Sorry for the bump, but I have a few newbie questions
First, I would like to know how I can add the %added% tag to all of my songs.
Secondly, I would like to know if there is a way to make this work with single column playlist. I put the code in the columns_ui global variables section, but I don't know how to display the dot.

Thanks in advance,


Clint


The official play counter can write the first_played tag. While not exactly an added tag, it may be close enough for you.

"hotness"

Reply #307
Quote
The official play counter can write the first_played tag. While not exactly an added tag, it may be close enough for you.


Actually, I think it is both the official and unofficial (which I use) that give the first_played tag. Just an FYI.
Anyone who takes himself too seriously always runs the risk of looking ridiculous; anyone who can consistently laugh at himself does not. -- Havel

"hotness"

Reply #308
Any recommendations on how to portray hotness in SCPL?  I don't like the idea of just a number, and the SCPL formatting language offers some cool possibilities.  Ideas?

"hotness"

Reply #309
Any recommendations on how to portray hotness in SCPL?  I don't like the idea of just a number, and the SCPL formatting language offers some cool possibilities.  Ideas?



Possibly a colored meter with numerical data also going from black to red?  Could be also cool if it displayed some data on the decay rate in an understandable form (which will obviously very from track to track based on rating, playcount, etc.), such as loosing a ___ number of hotness points per hour for the given track.

"hotness"

Reply #310

Any recommendations on how to portray hotness in SCPL?  I don't like the idea of just a number, and the SCPL formatting language offers some cool possibilities.  Ideas?



Possibly a colored meter with numerical data also going from black to red?  Could be also cool if it displayed some data on the decay rate in an understandable form (which will obviously very from track to track based on rating, playcount, etc.), such as loosing a ___ number of hotness points per hour for the given track.



Forgot to add that I also think you should just have a version that uses an variable assigned a number for those who want to do it the old fashion way or innovate with a new display.

"hotness"

Reply #311

Any recommendations on how to portray hotness in SCPL?  I don't like the idea of just a number, and the SCPL formatting language offers some cool possibilities.  Ideas?



Possibly a colored meter with numerical data also going from black to red?  Could be also cool if it displayed some data on the decay rate in an understandable form (which will obviously very from track to track based on rating, playcount, etc.), such as loosing a ___ number of hotness points per hour for the given track.

Portraying the decay rate is a good idea, to let you know how strong the hotness is.

"hotness"

Reply #312


Any recommendations on how to portray hotness in SCPL?  I don't like the idea of just a number, and the SCPL formatting language offers some cool possibilities.  Ideas?



Possibly a colored meter with numerical data also going from black to red?  Could be also cool if it displayed some data on the decay rate in an understandable form (which will obviously very from track to track based on rating, playcount, etc.), such as loosing a ___ number of hotness points per hour for the given track.

Portraying the decay rate is a good idea, to let you know how strong the hotness is.



Exactly.

"hotness"

Reply #313
Please help me test Hotness 1.5.c.1, updated for compatibility with foo_cwb_hooks and therefore with foo_uie_trackinfo_mod and foo_uie_single_column_playlist.

Code: [Select]
/////////////////////////////////////////
// HOTNESS - an algorithm for meta-rating
// v1.5.c.1 (foo_cwb_hooks version)
// Dec 5, 2006 - by topdownjimmy
/////////////////////////////////////////
//
// configure baselines: define baseline playfrequency and decay period (in days)
//
  $puts(baselinefrequency,28) // decrease if songs stay hot too long
  $puts(baselinedecay,7) // decrease if too many songs are hot
//
// configure default rating for unrated songs
//
  $puts(avgrating,3)
// 
// DO NOT EDIT BELOW THIS LINE //
$puts(baselinefrequency,$mul($get(baselinefrequency),24))
$puts(baselinedecay,$mul($get(baselinedecay),24))
$puts(lp_age,$add($substr(%last_played%,12,13),
 $mul(24,$cwb_datediff(%last_played%,2000-01-01))))
$puts(fp_age,$add($substr(%first_played%,12,13),
 $mul(24,$cwb_datediff(%first_played%,2000-01-01))))
$puts(age,$sub($get(lp_age),$get(fp_age)))
$puts(now_age,$add($substr(%cwb_systemdatetime%,12,13),
 $mul(24,$cwb_datediff(%cwb_systemdate%,2000-01-01))))
$puts(recentness,$sub($get(now_age),$get(lp_age)))
$puts(decay,$div($div($mul($if2(%play_count%,%play_counter%),
 $get(baselinefrequency),$get(baselinedecay),$if2(%rating%,
  $get(avgrating)),100),$mul($max($get(age),$get(baselinefrequency)),
  $get(avgrating))),100))
$puts(hotness,$div($mul($max($sub($get(decay),
 $get(recentness)),0),100),$get(decay)))
// END HOTNESS //


I've done some rough testing and it seems like it preserves the same values that the old algorithm produced (give or take a single point, as this code is actually more precise).

Stick this at the top of a formatting string box (or in the globals tab that terrestrial is planning  ), and call with $get(hotness).  As always, it will give you a number from 0-100.

Please give feedback if this doesn't behave as expected.

 

"hotness"

Reply #314
Version 1.6.c.1, wherein I introduce a new approach to softening the hotness of recently played songs.  I'm excited about this change, so I urge you to try it out and see how different things look when you play tracks -- no more sharp leaps to 100.

Code: [Select]
/////////////////////////////////////////
// HOTNESS - an algorithm for meta-rating
// v1.6.c.1 (foo_cwb_hooks version)
// Dec 6, 2006 - by topdownjimmy
/////////////////////////////////////////
//
// configure baselines: define baseline playfrequency and decay period (in days)
//
  $puts(baselinefrequency,28) // decrease if songs stay hot too long
  $puts(baselinedecay,7) // decrease if too many songs are hot
//
// configure default rating for unrated songs
//
  $puts(avgrating,3)
// 
// DO NOT EDIT BELOW THIS LINE //
$puts(baselinefrequency,$mul($get(baselinefrequency),24))
$puts(baselinedecay,$mul($get(baselinedecay),24))
$puts(lp_age,$add($substr(%last_played%,12,13),
 $mul(24,$cwb_datediff(%last_played%,2000-01-01))))
$puts(fp_age,$add($substr(%first_played%,12,13),
 $mul(24,$cwb_datediff(%first_played%,2000-01-01))))
$puts(age,$sub($get(lp_age),$get(fp_age)))
$puts(now_age,$add($substr(%cwb_systemdatetime%,12,13),
 $mul(24,$cwb_datediff(%cwb_systemdate%,2000-01-01))))
$puts(recentness,$sub($get(now_age),$get(lp_age)))
$puts(decay,$div($div($mul($if2(%play_count%,%play_counter%),
 $get(baselinefrequency),$get(baselinedecay),$if2(%rating%,
 $get(avgrating)),100),$mul($max($get(age),$get(baselinefrequency)),
 $get(avgrating))),100))
$puts(rawhotness,$div($mul($max($sub($get(decay),
 $get(recentness)),0),100),$get(decay)))
$puts(forecast,$div($mul($max($sub($get(decay),
 $add($div($max(0,$sub($get(baselinedecay),$get(recentness))),2),
 $get(recentness))),0),100),$get(decay)))
$puts(hotness,$div($add($get(rawhotness),$get(forecast)),2))
$set_global(hotness,$get(hotness))
// END HOTNESS //



This still depends on foo_cwb_hooks, but has been made compatible with columns_ui.  Use $get(hotness) for SCPL/trackinfo_mod, and $get_global(hotness) for columns_ui.

"hotness"

Reply #315
I did everything like the steps said and I got a new column via Column UI which I called hotness.
In it I put the %_hotness% tag but when I look at my playlist all of them are 0.
I played the same song 3x (via starting it and then clicking next and then starting it again).
I did not play the song through its full length (dont think that matters, or at least hope it doesnt).

Anyways, all the numbers remain 0.
I have installed the cwb hooks and the playcount dll obviously.

Please help this newb.

"hotness"

Reply #316
Clicking "Next" doesn't count the track as being played -- you need to play it for at least one minute (or for half the song length, if you're using the unofficial component).

"hotness"

Reply #317
Topdownjimmy YOU ARE SMART, BEAUTIFUL and WHEREVER YOU WANNA BE!!!!!!!!!!!!!
I was searching for years for a player that could make an algorithm like this!
THANK YOU!!!!

Question:
I put the algorithm in the Variables field but now I have problems with the style. I do not see correctly, in the Playlist view, the background lines that makes a difference between a song and another.
So, the question is: What code should I put now in the Style?
Sorry for my English!!

"hotness"

Reply #318
You have to create a column for it, and use $get_global(hotness) for the display.  That will give you a number.  To get a colored background, just style  the column background with a $blend

"hotness"

Reply #319
If you wanna see the HOTNESS as a line instead of numbers
The line will look like ::::::::::::::

Use this code in the Column UI Display:


Code: [Select]
$if(%_hotness%,$repeat(':',$div(%_hotness%,5)),)

"hotness"

Reply #320
That should work.  Have you tried just %_hotness%?  Does that work?  Also make sure the four check boxes in the globals tab are checked.


"hotness"

Reply #322
Have anyone tried inserting hotness in foo_playlist_tree's queries? Is it possible at all?

"hotness"

Reply #323
As far as I know, Playlist Tree can't access globals set by Columns UI, but I've spoken with cwbowron about implementing hotness into his cwb_hooks component, in which case you would be able to do that.  I just need to clean up the code a bit.

"hotness"

Reply #324
You're the man!