View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004407 | MMW v4 | Now Playing | public | 2008-02-18 17:27 | 2008-12-07 18:02 |
Reporter | rusty | Assigned To | |||
Priority | urgent | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 3.0 | ||||
Fixed in Version | 3.1 | ||||
Summary | 0004407: Auto-DJ adds multiple identical tracks in some cases | ||||
Description | The Auto-DJ doesn't perform as a user would expect when it is used in conjunction with the last.fm plugin and: i) the Auto-DJ is set to add > 1 track. e.g. by default, MM is set to add 5 tracks, however, with this default setting, the Auto-DJ often adds multiple identical tracks in a row. Peke has indicated that this is a problem with the Auto-DJ and not the plugin. Is there a way to resolve this? ii) if the Auto-DJ selects a track that a user doesn't like, the user can click the 'next' button to skip the track, however, what typically happens then is that the auto-DJ adds that same track again. How can we fix this? | ||||
Tags | No tags attached. | ||||
Fixed in build | 1195 | ||||
|
I could not replicate this (but I was not testing much), but I wonder how could Auto-DJ influence adding a duplicate track, because in case of script the script itself should be responsible for right adding new tracks. Note: Everytime Auto-DJ needs a track from the script, the GenerateNewTrack function is called and script submits a track. So I don't know what Audo-DJ does bad. Is the problem the fact that Auto-DJ re-initializes the script sometimes (e.g. aftert configuration of script is changed) or the fact that Auto-DJ throws away track that has been played recently or is deadlink and requires another track? |
|
Peke, can you explain, as a script writer, what you think the auto-dj is doing incorrectly that is causing these bugs? OR is it really a bug in the script and the fact that: -it doesn't account for what tracks have been skipped by the user -it doesn't account for what tracks are in the NP queue but not yet played OR are you saying that both of the above items are features that should be built into the auto-dj? |
|
let me first explain How Last.fm DJ work: 1. Auto-DJ Start GenerateNewTrack Function from Script 2. Last.fm DJ gets Last track On Now Playing (It is always Last track no matter if Auto-DJ is set to 5 tracks) 3. Find most similar accessible track to last on playlist and return it to Auto-DJ for add to Now Playing 4. Auto-DJ should add it to playlist But apparently not 5. If is set to >1 Auto-DJ Start GenerateNewTrack Function from Script Again to get another song 6. Last.fm DJ gets Last track On Now Playing which is same as previous as Auto-DJ didn't add track to now playing Right Away 7. Finds same track on Last.fm and paste it to Auto-DJ 8. This repeats until Auto-DJ do not start GenerateNewTrack from script Last.fm Dj is Specific due to quarrying Internet where some Delay before result is back Another Possibility is that Backup playlist is not large enough and contain multiple artist so Last.fm DJ when in case that no recommendations are available must add some track from same artist due to unavailability of different artist (My backup playlist consists of never played 500 accessible tracks sorted by random and I have never got same artist again) re points: Auto-DJ should not initiate another GenerateNewTrack untill all previous quarries are done and after each quarry it should watch if user have done something with NP so that know what to do next. Example You play last track on NP and Auto-Dj is set to 3: - Auto-DJ 3 songs needs to be added initiate 3 GenerateNewTracks - Until all 3 tracks are added in scripting Last Track is one the you play instead of last added - If you skip track after first added Auto-Dj again initiate adding of tracks but this time 2 times which ends in 5 script Calling to GenerateNewTrack NOTE: Last.fm have very extensive and verbose Log capability (log is located in auto folder) which clearly shows what Auto-DJ send to Script and what Script return back to Auto-DJ. Enable Save Log and when you encounter the error send me that log so that I can explain you directly on example. |
|
The true is that for this purposes would be better so that Audo-DJ would add bunch of tracks to NP list per track instead of adding whole bunch at once as currently do, but on the other hand I think that the LastFM.Dj plugin should have its own duplicate checking, e.g. if recently submitted track (via GenerateNewTrack function) was track id 9875 then the next submitted track should not be the same. I think that the plugin should remember 10 most recently submitted tracks and check whether a new track going to be submitted isn't one of the most 10 recently submitted. |
|
Jiri, this needs to be fixed, but I'm not in a position to determine the best solution. |
|
Peke, I still don't understand the problem. The plug-in should always return a track a before returning it it can e.g. compare it to all existing tracks in NP and don't add it in case it's already there (or, as suggested by Ludek, few tracks can be remembered internally). |
|
I think I'll need to make Smaller logging Example that will flow exact nature of the problem. Will Done it ASAP. |
|
Example AutoDJ Script is uploaded to FTP. Installation: 1. Save this file to Scripts folder 2. add these scripts.ini options [AutoDJexample] FileName=AutoDJexample.vbs DisplayName=AutoDJ Example test Language=VBScript ScriptType=4 Debugging Instructions: 1. Make Longer Playlists 20-30 Tracks should be enough 2. Set Options Of AutoDJ to 10 Tracks and select "AutoDJ Example test" 3. Play Last track 4. 10 Tracks will be added 5. Open options And See the [Results] of AutoDJ Script Notes: - Execution Values are Saved in MediaMonkey.ini Section [AutoDJexecuted] - GenerateNewTrack has Descriptions what it exactly reads and writes to log |
|
It should be more clear now. |
|
Based on discussion with Peke, it really seems that the best solution will be to add tracks to NP one by one and thus allow scripts to check NP for duplicates. Assigning to Ludek. |
|
Ok, I fixed it. So in case of script managed auto-dj: tracks are added to NP one by one and thus allow scripts to check NP for duplicates. There remain checking for accessibility. i.e. If script suggested a song that is not accessible then MM requests another song. There is limit to 50 attempts. i.e. if 10 tracks should be added to NP then script can suggest only 40 inaccessible songs otherwise less then 10 tracks will be added to NP. Fixed in build 1195. |