Hi,
I just want to inform you, that I will not be online for the next 5 weeks or so.
If there are any problems or questions you will either have to wait until I'm back or maybe someone from the community can answer...
CIAo, uwe..

bezukof wrote:Just wanted to say thanks for writing this and taking the time to really flesh it out. After the inclusion of auto-dj and now this script, MM is now pretty much major-feature complete as far as I am concerned.
bezukof wrote:The one issue I have is the slowness of it. [...] if I populate all ten of the upcoming tracks in the now playing list(by playing the track at the bottom of the list) MM will freeze entirely for about 15 seconds.
bezukof wrote:I don't really know scripting but maybe it would help if the script could somehow use a background process to pre-cache a list of at least 10 songs(as that is the max allowed in the autoDJ options) so that it wouldn't have to stop and think about which songs to play all at once when you ask it to.
bezukof wrote:Also it took me a little while to realize that the reason why the script was only playing recently played songs was that I was supposed to have the autoplaylist sorted from z-a instead of a-z, it might help to point that out somewhere.
For this feature to work, the input playlist must be sorted by the atribute "Last Played" from Z..A (songs just played are on top, songs not played for a long tome are on the bottom). When usin static playlist as input for Radio-DJ, this sorting is done by the script. But if you use auto playlists as input for Radio-DJ (as I do), than you have to make sure, that the auto playlist is sorted, by yourself.
bezukof wrote:And finally, this might be impossible, but...
I was originally going to request a favor factor for X category, [...] Then I thought if this got made it would end up looking exactly like the auto-playlist edit page with one extra option. Soooo...
Would it be possible to just add a favor-factor field to the auto-playlist edit page?
bezukof wrote:That way you could have this scripts functionality with every data set that MM has access to
bezukof wrote:instead of just rating and play count, and you could bypass the whole second playlist thing and just query the DB directly.
bezukof wrote:If this feature is not available to scripts then maybe this concept could at least be integrated into the Radio DJ interface.
pirateg00 wrote:First off, I was very excited when I found this script! I have only been using MediaMonkey for a few months, but I love it and this makes it much better!
pirateg00 wrote:I was reading the description of your script about the weightings and how they are dependent on the number of songs for each rating. If I understand the logic right, that would mean a continuously changing set of probabilities each time the list was re-populated.
pirateg00 wrote:I was looking at the chart you posted about the correlation between rating, number of tracks, weighting, play probability, etc and was thinking instead of weighting the tracks by a somewhat arbitrary number, we weight them by selecting the probability out of 100% total. IE 1 star 0%; 2 star 10%; 3 star 15%; 4 star 35%; 5 star 40%. (i just used whole stars for simplicity!)
pirateg00 wrote:for the stars that have plenty of songs to fill up its requirement, they would obviously be chosen randomly from the playlist but after there are no stars lacking
pirateg00 wrote:for repetition elimination, I use autoplaylists now that specify last played greater than "bla" or playcount = 0. could these playlists be refreshed when radioDJ list is being refreshed?
pirateg00 wrote:That might keep it from reusing songs over and over, or might there be a way to incorporate this into the script?, have an option box for not using songs that were played within a timeframe (or only play songs after a timeframe).
pirateg00 wrote:Thanks again for your great script and keep up the work!!
pirateg00 wrote:And another thought.... if the above were working, next to each percentage could be another option for specifying minimum number of days since the song was played for that rating. (this could replace the use of the autoplaylist with the restriction of not played in the last "bla" days). So, for example you could specify that higher rated songs could be played more frequently (higher percentage) as well as hearing the same songs more often (since you would like them more if they were higher rated)
pirateg00 wrote:Another thought I had was that perhaps there could be some sort of function or window that could be embedded into a toolbar or similar (like the search box for example) that you could specify on the go what criteria for the playlist you are pulling from. It would be similar to an autoplaylist or magic node perhaps, where you could specify criteria, but the benefit would be that you could change this easily instead of opening up the autoplaylist properties.
pirateg00 wrote:anyway, I was just brainstorming and hope that made sense!
pirateg00 wrote:
for the stars that have plenty of songs to fill up its requirement, they would obviously be chosen randomly from the playlist but after there are no stars lacking
Hm, I'm not quite sure, what you mean.
When there is a weighting for a specific rating (e.g. 1-star) and there is no song with this rating, what should I do?
Do you mean I should use songs with other ratings?
As long as there is at least one song within a rating, this song will be used.
Since I use a shuffle mechanism, I use a separate list for each rating.
At startup this list is filled with all songs within that rating.
When a rating gets randomly chosen, the song is removed from the list
until there is no song in that list anymore.
Then this list for that rating, that just got empty, gets filled again.
It uses the songs from the (auto-) playlist.
If the autoplaylist filters out all songs that have been played in the last 5 days,
these songs will not be used.
(N.B. this is similar to the feature "Skip most recently played" within Radio-DJ.
I just didn't realize that this could also be done by auto playlists)
3. If you do not, readjust the numbers from (1.) by filling up those stars that are lacking with all in the list (say there are only twenty 5 star tracks, we need 40, so put all 20 in the radioDJ list). then go back to 1 and recalculate the remaining. So since we now need 80 tracks still in the radioDJ list, that extra 20 tracks we are short from the 5 star tracks will be redistributed into the remaining stars. now this gets slightly tricky since the percentages will be not out of 100% but out of 60% because we do not consider 5 star anymore, so the new relative percentages would be 0%; 10%/60% = 16.67%; 15%/60% = 25%; 35%/60% = 58.33%; N/A% (for 1,2,3,4,5 stars respectively). OK so these new relavite percentages would be plugged back into whatever function used in 1 (which would obviously need some rounding scheme, like always round up to whole song and lowest rating gets the rest of the spots) but with 80 tracks instead of 100 . Then re-evaulate number 2 and repeat.
pirateg00 wrote:So instead of using a song that has played recently because it is 1 of few in that rating, skip that rating and readjust as if that rating did not exist.
I realize I could change the weightings, but I would like to set a scheme that works all the time for me and just change the playlist to get different sets of music.
Does this make sense??
pirateg00 wrote:
So instead of using a song that has played recently because it is 1 of few in that rating, skip that rating and readjust as if that rating did not exist.
I realize I could change the weightings, but I would like to set a scheme that works all the time for me and just change the playlist to get different sets of music.
Does this make sense??
Yes, it makes sense.
I think I understand the idea you are suggesting.
You are right: what you want do do is not possible with the script right now.
For the moment, the only easy way I see is, that you adjust the weightings.
1. calculate how many songs of each star rating would be needed for the radioDJ list from the specified list length and given percentages. In this case it would be 0, 10, 15, 35, and 40 tracks for the stars 1-5 respectively.
2. read all the tracks from the specified playlist that you are pulling from to determine you have enough tracks from each to fill the radioDJ list.
3. If you do not, readjust the numbers from (1.) by filling up those stars that are lacking with all in the list (say there are only twenty 5 star tracks, we need 40, so put all 20 in the radioDJ list). then go back to 1 and recalculate the remaining. So since we now need 80 tracks still in the radioDJ list, that extra 20 tracks we are short from the 5 star tracks will be redistributed into the remaining stars. now this gets slightly tricky since the percentages will be not out of 100% but out of 60% because we do not consider 5 star anymore, so the new relative percentages would be 0%; 10%/60% = 16.67%; 15%/60% = 25%; 35%/60% = 58.33%; N/A% (for 1,2,3,4,5 stars respectively). OK so these new relavite percentages would be plugged back into whatever function used in 1 (which would obviously need some rounding scheme, like always round up to whole song and lowest rating gets the rest of the spots) but with 80 tracks instead of 100 . Then re-evaulate number 2 and repeat.
Right now I see one discrepancy in the idea you proposed:
That sort of repetition always occurs when there are only very few songs in a rating.
This is probably true for very low ratings (as 1-star) as well as for very high ratings (as 5-star).
I could imagine, that repetition is not wanted for low ratings but it *is* wanted for high ratings.
The problem is, that low and high are relative terms and probably every user of Radio-DJ would define it somehow different. So I must find a way how I can do this in the same way for all ratings...
And another thought.... if the above were working, next to each percentage could be another option for specifying minimum number of days since the song was played for that rating. (this could replace the use of the autoplaylist with the restriction of not played in the last "bla" days). So, for example you could specify that higher rated songs could be played more frequently (higher percentage) as well as hearing the same songs more often (since you would like them more if they were higher rated)
If you (or anybody else) has some ideas about it, please post them.
bezukof wrote:The one issue I have is the slowness of it. Maybe it's a problem specific to my setup but sometimes loading the next song will hang the program for a few seconds. And if I populate all ten of the upcoming tracks in the now playing list(by playing the track at the bottom of the list) MM will freeze entirely for about 15 seconds.
uwuerfel wrote:bezukof wrote:And finally, this might be impossible, but...
I was originally going to request a favor factor for X category, [...] Then I thought if this got made it would end up looking exactly like the auto-playlist edit page with one extra option. Soooo...
Would it be possible to just add a favor-factor field to the auto-playlist edit page?
[ Auto Playlist Criteria ]
-------------------------------------------------------------------------------------
[...Property.....][....Condition....][.....Value......][.......Favor Factor....]
Status..................is available..................................1
Rating......................>=................3 Stars................3
Rating.......................=................2 Stars.................0
Last Played............>(days ago)............1.....................4
Genre........................=.................polka.................10
etcetera.....
If this feature is not available to scripts then maybe this concept could at least be integrated into the Radio DJ interface.
I will think about it. But right now I have no idea how this could be done.
Users browsing this forum: Exabot [Bot] and 12 guests