View Issue Details

IDProjectCategoryView StatusLast Update
0004407MMW v4Now Playingpublic2008-12-07 18:02
Reporterrusty Assigned To 
PriorityurgentSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product Version3.0 
Fixed in Version3.1 
Summary0004407: Auto-DJ adds multiple identical tracks in some cases
DescriptionThe 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?
TagsNo tags attached.
Fixed in build1195

Relationships

duplicate of 0004234 closedpeke MMW v4 AutoDJ Functionality Issues 
related to 0004397 closedpeke Last.fm plugin Last.fm DJ 
related to 0002036 closedLudek MMW v4 Auto-DJ isn't random enough 

Activities

Ludek

2008-02-18 19:06

developer   ~0013176

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?

rusty

2008-02-19 14:33

administrator   ~0013182

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?

peke

2008-02-19 22:37

developer   ~0013185

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.

Ludek

2008-02-22 13:18

developer   ~0013195

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.

rusty

2008-11-19 17:20

administrator   ~0014984

Jiri, this needs to be fixed, but I'm not in a position to determine the best solution.

jiri

2008-11-21 13:04

administrator   ~0015054

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).

peke

2008-11-23 02:56

developer   ~0015073

I think I'll need to make Smaller logging Example that will flow exact nature of the problem.

Will Done it ASAP.

peke

2008-11-23 20:48

developer   ~0015078

Last edited: 2008-11-23 21:05

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

peke

2008-11-23 20:49

developer   ~0015079

It should be more clear now.

jiri

2008-11-23 21:57

administrator   ~0015081

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.

Ludek

2008-11-25 14:17

developer   ~0015111

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.