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 201645 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

"hotness"

Reply #250
After some more playing around, I noticed you could blend the text color and selected text color simultaneously.

Code: [Select]
$set_global("hot_color",$blend(FFFFFF|FFFFFF,0000FF|0000FF,$get(hotness),100))


Now you only have to set the regular text color!
Code: [Select]
$set_style(text,$get_global("hot_color"))



ok, now I am trying to figure out how to use your blending with my color scheme which is given by the follow code (well this was actually someone else's but I have adopted it)

Code: [Select]
//colours used, hotness=100:0
$puts(colour100,0000FF)
$puts(colour99,0000FF)
$puts(colour75,00FFFF)
$puts(colour50,00FF00)
$puts(colour25,FF8800)
$puts(colour0,880000)

//dotshading
$if(%last_played%,
$select(
$add($put(hotdiv,$div($get_global("hotness"),25)),1)
$puts(shade,$sub($get_global("hotness"),$mul($get(hotdiv),25))),
$blend($get(colour0),$get(colour25),$get(shade),25),
$blend($get(colour25),$get(colour50),$get(shade),25),
$blend($get(colour50),$get(colour75),$get(shade),25),
$blend($get(colour75),$get(colour99),$get(shade),25),
$get(colour100)
)•



Also... I was thinking that it would be interesting to see hotness maybe get integrated into a plugin that might allow us to have foobar change how it works with random play. Basically, I was thinking that it would be kewl if one could have it where the hotter songs  are less likely to get played than the cooler songs with random track on. I understand that it would probably have to remain also as a global for us to continue to use it as we have. This was just an idea that I thought was kind of interesing.
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 #251
is it possible for the hotness to also be displayed in the trackinfo component, can it share global variables from columns?

"hotness"

Reply #252
Also... I was thinking that it would be interesting to see hotness maybe get integrated into a plugin that might allow us to have foobar change how it works with random play. Basically, I was thinking that it would be kewl if one could have it where the hotter songs  are less likely to get played than the cooler songs with random track on. I understand that it would probably have to remain also as a global for us to continue to use it as we have. This was just an idea that I thought was kind of interesing.
I have also been thinking that a scriptable shuffle mode would be pretty cool - it would expand on the different shuffle modes like track, album etc. already available. I'm sure it's technically possible, though of course I have no coding skillz...

"hotness"

Reply #253
though of course I have no coding skillz...


That is also my case. I have forgotten everything I learned about C. My main interest nowdays is studying Japanese.
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 #254
I'd love to see hotness as a plugin, simply so its value would be completely global. Creating an autoplaylist would certainly be useful.

Or, perhaps it would be better to have a plugin that provided a space to create truely global variables. Exactly like the area in Columns UI but with the variables available to all other plugins etc. Is that possible? Seems surprising that no-one has implemented it already if it is...

"hotness"

Reply #255
Or, perhaps it would be better to have a plugin that provided a space to create truely global variables. Exactly like the area in Columns UI but with the variables available to all other plugins etc.


Maybe that would be better time spent... but I would also like to see a way to make hotness more useful rather than just a trivial but fun digit on the right side of the playlist. I like having it there. It has also been interesting to see how its concept has changed. But it think it is time that it could start to pull its weight around and actually start affecting other things. I personally like to hear almost all of my music and listen to extremely large playlists. I would love to be able to set up a random criteria that would make it so that the hotter the song, the less likely it is going to be pleyed. Maybe something like a song with hotness of 100 has no probability of being played with this random criteria. The probability of a song being selected would then increase slowly depending on how low its hotness value has become. So a song (or many songs) with 0 hotness would have the highest priority for being selected.

The idea of this plugin would not only use hotness, it would also be able to use other tags that have been made available through the many other plugins to customize how people would have their random play worked. This thought came to be because I was listening to a large playlist of over 100 songs and realized that I had heard the same couple of songs a number of times in under 2 hours.

I would also be greatful if someone was able to help me get my multicolor blend worked into the new code... - see 5 posts up for details
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 #256
I would also be greatful if someone was able to help me get my multicolor blend worked into the new code... - see 5 posts up for details

i haven't studied it extensively, but keep in mind that when foobar divides 10 by 25, it gives 0, not 0.4.  the trick of course is to multiply hotness by 100 before dividing.

"hotness"

Reply #257
It appears that the next version of Columns UI would have truly global variables.

"hotness"

Reply #258
It appears that the next version of Columns UI would have truly global variables.


Really? If that is true then all we would need is a plug that would allow us to use them for random play... sorry... off topic.
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 #259
Hi guys!

the use of play_counter doesn't seam to work. I'm using the hourly decay version with an "album rating" tag.
As u can see in my screen, song #2, #5 and #6 have been played at the same time though they have very different play_counter stats.

I just paste/copy the standard hourly decay version and changed "rating" to "album rating" (which actually works)
I'm using the play counter mod at version 1.92 and have foobar 0.91



Could anyone help me with that?

"hotness"

Reply #260
Hi guys!

the use of play_counter doesn't seam to work. I'm using the hourly decay version with an "album rating" tag.
As u can see in my screen, song #2, #5 and #6 have been played at the same time though they have very different play_counter stats.

I just paste/copy the standard hourly decay version and changed "rating" to "album rating" (which actually works)
I'm using the play counter mod at version 1.92 and have foobar 0.91



Could anyone help me with that?

hotness heavily weighs how recently a song was played.  it also doesn't care how many times a song was played, except in regard to how frequently it's been played.  furthermore, the code for the hourly decay version is very old, relying on the ADDED tag field rather than the FIRST_PLAYED tag field provided by foo_playcount.  if you don't have ADDED tag in a particular song, the hotness code assumes you listen to it with an average frequency.

i've been waiting for an update to the foo_playcount plugin for some time now, to include PLAY_STAMP tags for every time a track has been played, but because this doesn't appear to be happening, i should probably just update the old algorithm for better use with 0.9.x.  i'll see if i can do that today.

"hotness"

Reply #261
I think playstamps will be considered by many to be a bit excessive. But yes any updates that work with exsiting data and the currently available plugins for 0.9 would be much appreciated

"hotness"

Reply #262
Quote
i've been waiting for an update to the foo_playcount plugin for some time now, to include PLAY_STAMP tags for every time a track has been played, but because this doesn't appear to be happening, i should probably just update the old algorithm for better use with 0.9.x.  i'll see if i can do that today.


That would be awesome if you can update it.

It would also be nice if you can include the use of the play_counter variable.
Meaning by that -> the hotness of a song that has been played 100 times does not decay as fast as a song with only 10 play times.

that would look like this (after 24 hours):

artist : song : playcount : hotness
xxx  : aaa  : 100        : 88
xxx  : bbb  : 10          : 76

not sure if this is possible tho

"hotness"

Reply #263
Quote


i've been waiting for an update to the foo_playcount plugin for some time now, to include PLAY_STAMP tags for every time a track has been played, but because this doesn't appear to be happening, i should probably just update the old algorithm for better use with 0.9.x.  i'll see if i can do that today.


That would be awesome if you can update it.

It would also be nice if you can include the use of the play_counter variable.
Meaning by that -> the hotness of a song that has been played 100 times does not decay as fast as a song with only 10 play times.

that would look like this (after 24 hours):

artist : song : playcount : hotness
xxx  : aaa  : 100        : 88
xxx  : bbb  : 10          : 76

not sure if this is possible tho


the code has a very specific goal.  what i wanted to create was an alternative to playcount as a measure of the song's "quality" or "enjoyment" or whatever.  instead i focus on frequency.  if you play song #1 ten times in a week, it will decay more slowly than a song that you play fifty times in ten weeks.  so, it does take playcount into account, but only to calculate overall play frequency.

I think playstamps will be considered by many to be a bit excessive. But yes any updates that work with exsiting data and the currently available plugins for 0.9 would be much appreciated

yes, many may find playstamps excessive, but surely the option to use them could be made available.  i for one would love to have this data, as it allows for much more nuanced decay curves, as explained a few pages ago.

"hotness"

Reply #264
see first post for updated code

"hotness"

Reply #265
For those of you using navigator 1.4.2 here is a version of the code which works regardless of the color scheme used.

Thanks to topdownjimmy for making the code in the first place and to OCedHrt for working out how to disable legacy support for globals in columnsui.

replace this part of the code
Code: [Select]
// calculate "hotness"
$puts(hotness,$div($mul($max($sub($get(decay),$get(recentness)),0),100),$get(decay)))

$set_global("hotness",$get(hotness))
$set_global("hot_color",$blend($get(bg_color2),$get(special_color),$get(hotness),100))


create a hotness column and make sure use custom style spec is checked

in display tab put
Code: [Select]
$get_global(symbol_rating)
this uses the rating symbol that the rest of the playlist uses (suppose you could use any symbol that you want here)

in the style tab put
Code: [Select]
$set_style(text,$get_global("hot_color"))

"hotness"

Reply #266
thanks jimmy for update, its really better than play_count!

"hotness"

Reply #267
I thought about a better visual. I'd like to have a text instead of the dot or a number.
something like this

song hotness text
xxx 0-15 "don't click me"
yyy 30-60 "u maybe like it"
zzz 60-100 "HOOOOT"

i have probs with coding though, can someone help me?

"hotness"

Reply #268
I thought about a better visual. I'd like to have a text instead of the dot or a number.
something like this

song hotness text
xxx 0-15 "don't click me"
yyy 30-60 "u maybe like it"
zzz 60-100 "HOOOOT"

i have probs with coding though, can someone help me?


Thanks for the idea ! Quickly done:
Code: [Select]
$if(
$greater($get_global("hotness"),66),Hot!!!, //hotness > 66
$if(
$greater($get_global("hotness"),33),Warm, //hotness > 33
$if(
$greater($get_global("hotness"),0),Cold..., //hotness > 0

)))


And of course a big thanks to Jimmy for this great code !

"hotness"

Reply #269
Well. I finally figured out the problem with the style code in my post way back on Apr 22 2006, 20:40. I have basically done a full rewrite on it to get the effects that I wanted and I thought I would share it with others. Also, if any of you know of a better way to get this type of effect let me know.

Code: [Select]
$if(
$strcmp($get_global("hotness"),100),0000FF|0000FF,

$if(
$and(
$greater(100,$get_global("hotness")),$greater($get_global("hotness"),74)),
$blend(0000FF|0000FF,00FFFF|00FFFF,$div($mul($get_global("hotness"),25),25),25),

$if(
$and(
$greater(75,$get_global("hotness")),$greater($get_global("hotness"),49)),
$blend(00FF00|00FF00,00FFFF|00FFFF,$div($mul($get_global("hotness"),25),25),25),

$if(
$and(
$greater(50,$get_global("hotness")),$greater($get_global("hotness"),24)),
$blend(00FF00|00FF00,FF8800|FF8800,$div($mul($get_global("hotness"),25),25),25),

$if(
$and(
$greater($get_global("hotness"),0),$greater(25,$get_global("hotness"))),
$blend(880000|880000,FF8800|FF8800,$div($mul($get_global("hotness"),25),25),25),880000|880000

)))))


This basically blends from red to yellow for hotness between 100 and 75, yellow to green for 75 to 50, green to light blue for 50 to 25, and light blue to navy for 25 to 0.


edit: spelling errors and making code more manageable for display
Edit 2: Corrected code.
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 #271
See Above

that works only if i replace $get_global("hotness") with %_hotness% other wise it's all dark blue for me


I am sorry. I forgot to mention that I was using part of unabatedshagie's code for my calculate hotness. The setup on my style code was dependant upon this change. So yeah, for those that are still using Topdownjimmy's unaltered code, replace the
Code: [Select]
 $get_global("hotness")
with
Code: [Select]
 %_hotness%


I replaced my calculate hotness with
Code: [Select]
 
// calculate "hotness"
$puts(hotness,$div($mul($max($sub($get(decay),$get(recentness)),0),100),$get(decay)))

$set_global("hotness",$get(hotness))


hope that helps to explain how to set up the color scheme if you want to try it. Thank you brilliantGreen (great band by the way) for pointing that out.

EDIT: ok. The reason that It is turning blue is because the songs at hotness 99 were aparently not being included in the above. Therefore I changed the value from 99 to 100 in the 2nd $if(). I am posting the update in the earlier post so that I am not using a ton of landscape for this.

Edit: corrected code
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 #272
You have got another two mistake in the code, you don't need the last ')', if i don't remove the last ')' nothing happend until i remove it.
And the repalcement is "%_hotness%" anfd not "%__hotnesss%".

"hotness"

Reply #273
You have got another two mistake in the code, you don't need the last ')', if i don't remove the last ')' nothing happend until i remove it.
And the repalcement is "%_hotness%" anfd not "%__hotnesss%".



Ok... Code has been corrected. I wrote that code after pulling an alnight study session for my exams that I am currently getting ready for so I was exhausted. Interestingly enough, the code worked for me with the extra ')'. Thanks for pointing these out to me.
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 #274
Hey. I got a problem. I use Azreal for my formatting. The problem is that when i checkmark "Enable legacy support for globals" the colors get all screwed up, but the %_hotness% variable works. When i disable it, all the colors look fine, but %_hotness% doesn't work any longer. I am wondering if there is some fix for this.

Also, playcount 1.2 doesn't seem to be working with the latest beta. is hotness going to be converted back to the official playcount method or should i manually edit the code?