ScrobblerDJ v1.26, Let your music free!!!
Great Script.. after I got it working
Suggestion:
I get stuck in loops everytime I get anywhere near the garden state soundtrack.. and it's just so popular it plays things only from this album.. even tho the artists are different.
Also, whenever I play track A, it loads track B. If I skip A, it plays B and then adds A again.. so maybe this could be prevented
Otherwise it's amazing.
-Thomas
Suggestion:
I get stuck in loops everytime I get anywhere near the garden state soundtrack.. and it's just so popular it plays things only from this album.. even tho the artists are different.
Also, whenever I play track A, it loads track B. If I skip A, it plays B and then adds A again.. so maybe this could be prevented
Otherwise it's amazing.
-Thomas
Why? Was it hard to make it work???Thomas wrote:Great Script.. after I got it working
This is something that must be expected. Since a lot of the ppl listen to the whole album, Last.FM groups the artist of the album together and recomends them. If this is combine with a high rating inside your library you can have this result.Thomas wrote: Suggestion:
I get stuck in loops everytime I get anywhere near the garden state soundtrack.. and it's just so popular it plays things only from this album.. even tho the artists are different.
If you dont skip the track then MM will mark it as "Played" and ScrobblerDJ wont select the same artist for X minutes (depending your settings). So, its best not to skip the track. Nevertheless, an option to Skip and mark as played will be incuded in the next version.Thomas wrote: Also, whenever I play track A, it loads track B. If I skip A, it plays B and then adds A again.. so maybe this could be prevented
-
- Posts: 130
- Joined: Mon Apr 03, 2006 5:31 pm
- Contact:
I registered
I have a good knowledge of programming/scripting, but I don't know vb. I imagine it wouldn't be too hard to add a little bit that checks to see if the "album artist" contains various and if so, check to see if that album has been played within X amt of time (same or different from the artist timer). If you don't want to add this to your official script.. maybe add it for mepsyxonova wrote: This is something that must be expected. Since a lot of the ppl listen to the whole album, Last.FM groups the artist of the album together and recomends them. If this is combine with a high rating inside your library you can have this result.
Oh, it wasn't hard to install.. I just didn't realise that the options was enbedded in the MM options.. so I didn't know it was installed properly. Doh.
That's great! Thanks for the feedback.psyxonova wrote: Nevertheless, an option to Skip and mark as played will be incuded in the next version.
I really appreciate your work. Thanks!
-Thomas
KK, a long time has passed and you didnt report problems about Rating check so i am posting this as 1.25final.
That doesn means that nothing has changed though. Read bellow for details
version 1.25 final
Additions
New Version posted here
That doesn means that nothing has changed though. Read bellow for details
version 1.25 final
Additions
- Added "Debug mode"
If you encounter problems or strange behavior by ScrobblerDJ enable debug mode in the Options Pane. This will force ScrobblerDJ to write almost every activity in the ScrobblerDJ.vbs.log. With this option it will be easy for us to solve any pending or future problems and thus speed up development.
Be aware though, if you enable debug mode ScrobblerDJ will write 500 to 3000 lines everytime it runs (depending on your settings) so enable it only if necessary
- MM wont hung anymore
Thanks to Trixmoto who explained to me the usage of ProccessMessages function MM wont stop resposping every time ScrobblerDJ does it queries. That may cause ScrobblerDJ to spend a little more time while trying to d+find which song to play, but the overall feeling is much better now.
- Code optimization
Thnks to Debug Mode we were able to identify some flaws in the logic of the code. Now, is some occasions ScrobblerDJ will be up to 200% faster.
In overall though speed remained quite the same (which is still a success since the code that handles debug mode is quite big)
- Fixed reading of ini entries
Thanks to the new methods provided in latest MM official release, we were able to make ini settings parsing much more stable and responding.
Lets hope that we wont see any more of those CInt or CBool errors...
New Version posted here
Last edited by psyXonova on Fri Apr 07, 2006 8:59 am, edited 1 time in total.
occasionally getting what looks like:
error 500
varible is undefined
line 713, column 4
Cant see all of the error because its continuously popping 'error executing script' dialog ontop of it.
The status bar indicates:
scrobbler dj could not access last fm, check network connectivity or lastfm status page, scrobbler dj will add a track from the default playlist.
default playlist is properly defined and available.
last fm appears to function thru my normal browser, internet connect is fine.
time out warning is disabled
debug has been off, but I will enable it.
looks like another infinate loop problem somewhere.
error 500
varible is undefined
line 713, column 4
Cant see all of the error because its continuously popping 'error executing script' dialog ontop of it.
The status bar indicates:
scrobbler dj could not access last fm, check network connectivity or lastfm status page, scrobbler dj will add a track from the default playlist.
default playlist is properly defined and available.
last fm appears to function thru my normal browser, internet connect is fine.
time out warning is disabled
debug has been off, but I will enable it.
looks like another infinate loop problem somewhere.
New script: Last.FM Node Now with DJ Mode!
Last.fm + MediaMonkey = Scrobbler DJ!
Tag with MusicBrainz ~ Get Album Art!
Tweak the Monkey! ~ My Scripts Page
Last.fm + MediaMonkey = Scrobbler DJ!
Tag with MusicBrainz ~ Get Album Art!
Tweak the Monkey! ~ My Scripts Page
Likely unlrelated to the above error, Here is a log of when SDJ stops after getting some type of empty track (from earlier posts).
4/6/2006 1:09:35 PM: ---------------------------------------------------------------------------------------
4/6/2006 1:09:35 PM: User options are:
4/6/2006 1:09:35 PM: Default playlist: Favorites - Not Heard Recently (1 hr)
4/6/2006 1:09:35 PM: Timeout Settings: 50, Warn: 0
4/6/2006 1:09:35 PM: Dont play same artist: 300
4/6/2006 1:09:35 PM: Minimun match: 50
4/6/2006 1:09:35 PM: Minimum Rating: 7
4/6/2006 1:09:35 PM: Include Higher Rating: True
4/6/2006 1:09:35 PM: Include Unknown Rating: True
4/6/2006 1:09:35 PM: <<<<<<<<<<<<<< Script Will now Proceed >>>>>>>>>>>>>>>>>
4/6/2006 1:09:35 PM: * ScrobblerDJ started
4/6/2006 1:09:35 PM: ** All conditions met, Scrobbler will now go online
4/6/2006 1:09:35 PM: * Initialization started
4/6/2006 1:09:35 PM: * Initialization finished
4/6/2006 1:09:36 PM: ScrobblerDJ will register Progtimer
4/6/2006 1:09:36 PM: ** Feed Artist is Guns N' Roses
4/6/2006 1:09:36 PM: * LoadXML started. Parameters passed: Guns N' Roses ,1
4/6/2006 1:09:36 PM: LoadXML will register DownTimer
4/6/2006 1:09:36 PM: LoadXML set Mode to 1 (artist)
4/6/2006 1:09:36 PM: * LoadXML exited
4/6/2006 1:09:36 PM: * ScrobblerDJ exited
4/6/2006 1:09:37 PM: * DownTimer Unregistered by itself (results from Last.FM returned succesfully)
4/6/2006 1:09:37 PM: ** Downtime is calling sub last artist in mode: 1
4/6/2006 1:09:37 PM: * LastArtist started. Mode was 1
4/6/2006 1:09:37 PM: LastArtist is calling ParseXML with parameters Guns N' Roses, 1
4/6/2006 1:09:37 PM: * ParseXML has started with parameters Guns N' Roses, 1
4/6/2006 1:09:37 PM: ParseXML is tranfering XML data to a dictionary
4/6/2006 1:09:37 PM: ParseXML tranfered XML data to dictionary succefully
4/6/2006 1:09:37 PM: ParseXML will now call NotTooSoon with parameters Mötley Crüe
4/6/2006 1:09:37 PM: * NotTooSoon has started with parameters Mötley Crüe
4/6/2006 1:09:37 PM: * CorrectSt has started with parameters Mötley Crüe
4/6/2006 1:09:37 PM: * CorrectSt will return Mötley Crüe and exit
4/6/2006 1:09:37 PM: NotTooSoon will query database with SQL: SELECT Songs.IDArtist, Played.PlayDate FROM (Songs INNER JOIN Played ON Songs.ID = Played.IdSong) INNER JOIN Artists ON Songs.IDArtist = Artists.ID WHERE Artists.Artist Like 'Mötley Crüe' ORDER BY Played.PlayDate DESC
4/6/2006 1:09:37 PM: * NotTooSoon will retunn True and exit
4/6/2006 1:09:37 PM: ParseXML will now call sub CheckExist with parameters Mötley Crüe, 0, 1
4/6/2006 1:09:37 PM: * CheckExist has started with parameters Mötley Crüe, 0, 1
4/6/2006 1:09:37 PM: * CorrectSt has started with parameters Mötley Crüe
4/6/2006 1:09:37 PM: * CorrectSt will return Mötley Crüe and exit
4/6/2006 1:09:37 PM: CheckExist will call CheckRating with parameters Mötley Crüe, 0, 1
4/6/2006 1:09:37 PM: * CheckRating has started with parameters Mötley Crüe, 0, 1
4/6/2006 1:09:37 PM: * CorrectSt has started with parameters Mötley Crüe
4/6/2006 1:09:37 PM: * CorrectSt will return Mötley Crüe and exit
4/6/2006 1:09:37 PM: CheckRating will query database with SQL: SELECT TOP 1 Artists.ID FROM Artists Left Join Songs On Artists.ID = Songs.IDArtist WHERE Artists.Artist like 'Mötley Crüe' And (Songs.Rating >=50 OR SONGS.RATING = -1) ORDER BY Songs.Rating DESC
4/6/2006 1:09:37 PM: CheckRating will sub-query database with SQL: AND (Songs.IDArtist =4311) And (Songs.Rating >=50 OR SONGS.RATING = -1)
4/6/2006 1:09:37 PM: CheckRating will call IsAccesible for 955
4/6/2006 1:09:37 PM: * IsAccessible has started for song (955) Mötley Crüe - Smokin' in the Boys Room (hq)
4/6/2006 1:09:37 PM: * IsAccessible will return True and exit
4/6/2006 1:09:37 PM: ** 955 was accessible
4/6/2006 1:09:37 PM: * CheckRating will return TRUE and exit
4/6/2006 1:09:37 PM: CheckExist is querying database. SQL is: SELECT ID, Artist FROM Artists Where Artist like 'Mötley Crüe'
4/6/2006 1:09:37 PM: CheckExist is sub-querying database. SQL is: AND (Songs.IDArtist =4311)
4/6/2006 1:09:37 PM: CheckExist will call IsAccessible for Smokin' in the Boys Room (hq)
4/6/2006 1:09:37 PM: * IsAccessible has started for song (955) Mötley Crüe - Smokin' in the Boys Room (hq)
4/6/2006 1:09:37 PM: * IsAccessible will return True and exit
4/6/2006 1:09:37 PM: ** Smokin' in the Boys Room (hq) was accessible
4/6/2006 1:09:37 PM: CheckExist returned 4311 to ParseXML
4/6/2006 1:09:37 PM: ** ParseXML will return 4311|§|§|§Mötley Crüe
4/6/2006 1:09:37 PM: * ParseXML exited
4/6/2006 1:09:37 PM: ParseXML returned 4311|§|§|§Mötley Crüe to LastArtist. LoadXML will now be called with parameters 4311|§|§|§Mötley Crüe, 2
4/6/2006 1:09:37 PM: * LoadXML started. Parameters passed: 4311|§|§|§Mötley Crüe ,2
4/6/2006 1:09:37 PM: LoadXML will register DownTimer
4/6/2006 1:09:37 PM: LoadXML set Mode to 2 (title)
4/6/2006 1:09:37 PM: * LoadXML exited
4/6/2006 1:09:37 PM: * LastArtist exited
4/6/2006 1:09:38 PM: * DownTimer Unregistered by itself (results from Last.FM returned succesfully)
4/6/2006 1:09:38 PM: ** Downtime is calling sub last artist in mode: 2
4/6/2006 1:09:38 PM: * LastArtist started. Mode was 2
4/6/2006 1:09:38 PM: LastArtist is calling ParseXML with parameters , 2
4/6/2006 1:09:38 PM: * ParseXML has started with parameters , 2
4/6/2006 1:09:38 PM: ParseXML is tranfering XML data to a dictionary
4/6/2006 1:09:38 PM: ParseXML tranfered XML data to dictionary succefully
4/6/2006 1:09:38 PM: ** ParseXML detected an empty dictionary. ParseXML will return E1 and exit
4/6/2006 1:09:38 PM: ParseXML returned E1 to LastArtist
4/6/2006 1:09:38 PM: ** Last Artist: A track was loaded succefully. The track was <Mötley Crüe - >
4/6/2006 1:09:38 PM: * LastArtist exited
4/6/2006 1:09:49 PM: * ProgTimer Unregistered by itself
4/6/2006 1:09:35 PM: ---------------------------------------------------------------------------------------
4/6/2006 1:09:35 PM: User options are:
4/6/2006 1:09:35 PM: Default playlist: Favorites - Not Heard Recently (1 hr)
4/6/2006 1:09:35 PM: Timeout Settings: 50, Warn: 0
4/6/2006 1:09:35 PM: Dont play same artist: 300
4/6/2006 1:09:35 PM: Minimun match: 50
4/6/2006 1:09:35 PM: Minimum Rating: 7
4/6/2006 1:09:35 PM: Include Higher Rating: True
4/6/2006 1:09:35 PM: Include Unknown Rating: True
4/6/2006 1:09:35 PM: <<<<<<<<<<<<<< Script Will now Proceed >>>>>>>>>>>>>>>>>
4/6/2006 1:09:35 PM: * ScrobblerDJ started
4/6/2006 1:09:35 PM: ** All conditions met, Scrobbler will now go online
4/6/2006 1:09:35 PM: * Initialization started
4/6/2006 1:09:35 PM: * Initialization finished
4/6/2006 1:09:36 PM: ScrobblerDJ will register Progtimer
4/6/2006 1:09:36 PM: ** Feed Artist is Guns N' Roses
4/6/2006 1:09:36 PM: * LoadXML started. Parameters passed: Guns N' Roses ,1
4/6/2006 1:09:36 PM: LoadXML will register DownTimer
4/6/2006 1:09:36 PM: LoadXML set Mode to 1 (artist)
4/6/2006 1:09:36 PM: * LoadXML exited
4/6/2006 1:09:36 PM: * ScrobblerDJ exited
4/6/2006 1:09:37 PM: * DownTimer Unregistered by itself (results from Last.FM returned succesfully)
4/6/2006 1:09:37 PM: ** Downtime is calling sub last artist in mode: 1
4/6/2006 1:09:37 PM: * LastArtist started. Mode was 1
4/6/2006 1:09:37 PM: LastArtist is calling ParseXML with parameters Guns N' Roses, 1
4/6/2006 1:09:37 PM: * ParseXML has started with parameters Guns N' Roses, 1
4/6/2006 1:09:37 PM: ParseXML is tranfering XML data to a dictionary
4/6/2006 1:09:37 PM: ParseXML tranfered XML data to dictionary succefully
4/6/2006 1:09:37 PM: ParseXML will now call NotTooSoon with parameters Mötley Crüe
4/6/2006 1:09:37 PM: * NotTooSoon has started with parameters Mötley Crüe
4/6/2006 1:09:37 PM: * CorrectSt has started with parameters Mötley Crüe
4/6/2006 1:09:37 PM: * CorrectSt will return Mötley Crüe and exit
4/6/2006 1:09:37 PM: NotTooSoon will query database with SQL: SELECT Songs.IDArtist, Played.PlayDate FROM (Songs INNER JOIN Played ON Songs.ID = Played.IdSong) INNER JOIN Artists ON Songs.IDArtist = Artists.ID WHERE Artists.Artist Like 'Mötley Crüe' ORDER BY Played.PlayDate DESC
4/6/2006 1:09:37 PM: * NotTooSoon will retunn True and exit
4/6/2006 1:09:37 PM: ParseXML will now call sub CheckExist with parameters Mötley Crüe, 0, 1
4/6/2006 1:09:37 PM: * CheckExist has started with parameters Mötley Crüe, 0, 1
4/6/2006 1:09:37 PM: * CorrectSt has started with parameters Mötley Crüe
4/6/2006 1:09:37 PM: * CorrectSt will return Mötley Crüe and exit
4/6/2006 1:09:37 PM: CheckExist will call CheckRating with parameters Mötley Crüe, 0, 1
4/6/2006 1:09:37 PM: * CheckRating has started with parameters Mötley Crüe, 0, 1
4/6/2006 1:09:37 PM: * CorrectSt has started with parameters Mötley Crüe
4/6/2006 1:09:37 PM: * CorrectSt will return Mötley Crüe and exit
4/6/2006 1:09:37 PM: CheckRating will query database with SQL: SELECT TOP 1 Artists.ID FROM Artists Left Join Songs On Artists.ID = Songs.IDArtist WHERE Artists.Artist like 'Mötley Crüe' And (Songs.Rating >=50 OR SONGS.RATING = -1) ORDER BY Songs.Rating DESC
4/6/2006 1:09:37 PM: CheckRating will sub-query database with SQL: AND (Songs.IDArtist =4311) And (Songs.Rating >=50 OR SONGS.RATING = -1)
4/6/2006 1:09:37 PM: CheckRating will call IsAccesible for 955
4/6/2006 1:09:37 PM: * IsAccessible has started for song (955) Mötley Crüe - Smokin' in the Boys Room (hq)
4/6/2006 1:09:37 PM: * IsAccessible will return True and exit
4/6/2006 1:09:37 PM: ** 955 was accessible
4/6/2006 1:09:37 PM: * CheckRating will return TRUE and exit
4/6/2006 1:09:37 PM: CheckExist is querying database. SQL is: SELECT ID, Artist FROM Artists Where Artist like 'Mötley Crüe'
4/6/2006 1:09:37 PM: CheckExist is sub-querying database. SQL is: AND (Songs.IDArtist =4311)
4/6/2006 1:09:37 PM: CheckExist will call IsAccessible for Smokin' in the Boys Room (hq)
4/6/2006 1:09:37 PM: * IsAccessible has started for song (955) Mötley Crüe - Smokin' in the Boys Room (hq)
4/6/2006 1:09:37 PM: * IsAccessible will return True and exit
4/6/2006 1:09:37 PM: ** Smokin' in the Boys Room (hq) was accessible
4/6/2006 1:09:37 PM: CheckExist returned 4311 to ParseXML
4/6/2006 1:09:37 PM: ** ParseXML will return 4311|§|§|§Mötley Crüe
4/6/2006 1:09:37 PM: * ParseXML exited
4/6/2006 1:09:37 PM: ParseXML returned 4311|§|§|§Mötley Crüe to LastArtist. LoadXML will now be called with parameters 4311|§|§|§Mötley Crüe, 2
4/6/2006 1:09:37 PM: * LoadXML started. Parameters passed: 4311|§|§|§Mötley Crüe ,2
4/6/2006 1:09:37 PM: LoadXML will register DownTimer
4/6/2006 1:09:37 PM: LoadXML set Mode to 2 (title)
4/6/2006 1:09:37 PM: * LoadXML exited
4/6/2006 1:09:37 PM: * LastArtist exited
4/6/2006 1:09:38 PM: * DownTimer Unregistered by itself (results from Last.FM returned succesfully)
4/6/2006 1:09:38 PM: ** Downtime is calling sub last artist in mode: 2
4/6/2006 1:09:38 PM: * LastArtist started. Mode was 2
4/6/2006 1:09:38 PM: LastArtist is calling ParseXML with parameters , 2
4/6/2006 1:09:38 PM: * ParseXML has started with parameters , 2
4/6/2006 1:09:38 PM: ParseXML is tranfering XML data to a dictionary
4/6/2006 1:09:38 PM: ParseXML tranfered XML data to dictionary succefully
4/6/2006 1:09:38 PM: ** ParseXML detected an empty dictionary. ParseXML will return E1 and exit
4/6/2006 1:09:38 PM: ParseXML returned E1 to LastArtist
4/6/2006 1:09:38 PM: ** Last Artist: A track was loaded succefully. The track was <Mötley Crüe - >
4/6/2006 1:09:38 PM: * LastArtist exited
4/6/2006 1:09:49 PM: * ProgTimer Unregistered by itself
New script: Last.FM Node Now with DJ Mode!
Last.fm + MediaMonkey = Scrobbler DJ!
Tag with MusicBrainz ~ Get Album Art!
Tweak the Monkey! ~ My Scripts Page
Last.fm + MediaMonkey = Scrobbler DJ!
Tag with MusicBrainz ~ Get Album Art!
Tweak the Monkey! ~ My Scripts Page
Glad to hear that since I also have the last bug reported by teknojnky.
Thanks
/Bex
Thanks
/Bex
Advanced Duplicate Find & Fix Find More From Same - Custom Search. | Transfer PlayStat & Copy-Paste Tags/AlbumArt between any tracks.
Tagging Inconsistencies Do you think you have your tags in order? Think again...
Play History & Stats Node Like having your Last-FM account stored locally, but more advanced.
Case & Leading Zero Fixer Works on filenames too!
All My Scripts
Tagging Inconsistencies Do you think you have your tags in order? Think again...
Play History & Stats Node Like having your Last-FM account stored locally, but more advanced.
Case & Leading Zero Fixer Works on filenames too!
All My Scripts
This is the first beta release of 1.26. Only o few thing have been added but dont get disapointed, until final release more will follow
version 1.26 beta
Additions
Download the ScrobblerDJ (v1.25) here
Download latest beta (v1.26b) here
version 1.26 beta
Additions
- Added URL Encoding
From now on, ScrobblerDJ will be able to get results for Artists that contain unicode or escape characters (eg AC/DC, Kool & the Gang, Björk etc).
In the future greek letters (gor Greeks like me) will be also supported
- ScrobblerDJ was giving fake reports about track addition
Thanks to Teknojsky who posted his debug log, we were able to find the bug (a really silly one) that originated from the fact that ScrobblerDJ couldnt use unicode characthers properly
- Occasional "Variable Undefined" messages
Another silly bug solved
Download the ScrobblerDJ (v1.25) here
Download latest beta (v1.26b) here
Last edited by psyXonova on Mon Apr 10, 2006 2:26 am, edited 1 time in total.
Pysxonova, I am glad the debug log helped, thanks for taking the time to add it (the debug log code)!
I absolutely love scrobbler dj, other than annoying bug you just fixed, I had an idea for a (another) feature/usability enhancement.
My only real beef with scrobbler DJ at this point is, I tend to get quite a few songs which I *do* like, but that play *too often*.
My suggestion is 2 parts:
Leave the current "no same artist" timer limits as is, however add a 2nd timer restrictions for *tracks*.
See, I may have a large or small number of tracks from a popular artist, but because of the popularity distribution of last.fm, and the small (IMO) timer limit, I may hear the same tracks more often than I care to.
I would rather not remove the tracks by rating them below the minimum rating, I simply want to specify a longer timespam before a track is repeated.
Afterall, isn't one of the main ideas for scrobbler dj is to expose you to tracks/artists in your library that you may not have heard yet?
As an example, coldplay, which is one of the more popular artists on last.fm, but I have just a couple tracks of. Because of the popularity of coldplay, I tend to get these few songs several times a week/day.
On the other extreme, I have artists with alot of tracks, I don't want to exclude the artist for long periods of time, I just don't want tracks repeated too often.
I have in the past, just edited the config script to allow myself a longer artist timer, but that does not solve the issue of track repeats vs artist repeats.
My personal preference would be:
Artist repeat: 1-8 hours
Track repeat: 1 to 7 days
Add a check box to each, or allow zero for disable for those who wish to.
Anyway, I really love the script and appreciate all the work you've done on it.
IMO, this script adds so much to MM, I would highly recommend to the developers to consider adding it to the official installation (once you feel its ready) so that it gets installed for everyone.
I absolutely love scrobbler dj, other than annoying bug you just fixed, I had an idea for a (another) feature/usability enhancement.
My only real beef with scrobbler DJ at this point is, I tend to get quite a few songs which I *do* like, but that play *too often*.
My suggestion is 2 parts:
Leave the current "no same artist" timer limits as is, however add a 2nd timer restrictions for *tracks*.
See, I may have a large or small number of tracks from a popular artist, but because of the popularity distribution of last.fm, and the small (IMO) timer limit, I may hear the same tracks more often than I care to.
I would rather not remove the tracks by rating them below the minimum rating, I simply want to specify a longer timespam before a track is repeated.
Afterall, isn't one of the main ideas for scrobbler dj is to expose you to tracks/artists in your library that you may not have heard yet?
As an example, coldplay, which is one of the more popular artists on last.fm, but I have just a couple tracks of. Because of the popularity of coldplay, I tend to get these few songs several times a week/day.
On the other extreme, I have artists with alot of tracks, I don't want to exclude the artist for long periods of time, I just don't want tracks repeated too often.
I have in the past, just edited the config script to allow myself a longer artist timer, but that does not solve the issue of track repeats vs artist repeats.
My personal preference would be:
Artist repeat: 1-8 hours
Track repeat: 1 to 7 days
Add a check box to each, or allow zero for disable for those who wish to.
Anyway, I really love the script and appreciate all the work you've done on it.
IMO, this script adds so much to MM, I would highly recommend to the developers to consider adding it to the official installation (once you feel its ready) so that it gets installed for everyone.
New script: Last.FM Node Now with DJ Mode!
Last.fm + MediaMonkey = Scrobbler DJ!
Tag with MusicBrainz ~ Get Album Art!
Tweak the Monkey! ~ My Scripts Page
Last.fm + MediaMonkey = Scrobbler DJ!
Tag with MusicBrainz ~ Get Album Art!
Tweak the Monkey! ~ My Scripts Page
error 5
invalid procedure call or argument
file scrobblerdj.vbs, line 659, column 4
I think the below is the relevant log portion, I was away when the error appeared and music stopped.
4/7/2006 11:09:19 AM: ---------------------------------------------------------------------------------------
4/7/2006 11:09:19 AM: User options are:
4/7/2006 11:09:19 AM: Default playlist: Favorites - Not Heard Recently (1 hr)
4/7/2006 11:09:19 AM: Timeout Settings: 50, Warn: 0
4/7/2006 11:09:19 AM: Dont play same artist: 300
4/7/2006 11:09:19 AM: Minimun match: 50
4/7/2006 11:09:19 AM: Minimum Rating: 7
4/7/2006 11:09:19 AM: Include Higher Rating: True
4/7/2006 11:09:19 AM: Include Unknown Rating: True
4/7/2006 11:09:19 AM: <<<<<<<<<<<<<< Script Will now Proceed >>>>>>>>>>>>>>>>>
4/7/2006 11:09:19 AM: * ScrobblerDJ started
4/7/2006 11:09:19 AM: ** All conditions met, Scrobbler will now go online
4/7/2006 11:09:19 AM: * Initialization started
4/7/2006 11:09:19 AM: * Initialization finished
4/7/2006 11:09:20 AM: ScrobblerDJ will register Progtimer
4/7/2006 11:09:20 AM: ** Feed Artist is Bruce Springsteen
4/7/2006 11:09:20 AM: * LoadXML started. Parameters passed: Bruce Springsteen ,1
4/7/2006 11:09:20 AM: * URLEncode has started with parameters Bruce Springsteen
4/7/2006 11:09:20 AM: * URLEncode will return Bruce+Springsteen and exit
4/7/2006 11:09:20 AM: LoadXML will register DownTimer
4/7/2006 11:09:20 AM: LoadXML set Mode to 1 (artist)
4/7/2006 11:09:20 AM: * LoadXML exited
4/7/2006 11:09:20 AM: * ScrobblerDJ exited
4/7/2006 11:09:21 AM: * DownTimer Unregistered by itself (results from Last.FM returned succesfully)
4/7/2006 11:09:21 AM: ** Downtime is calling sub last artist in mode: 1
4/7/2006 11:09:21 AM: * LastArtist started. Mode was 1
4/7/2006 11:09:21 AM: LastArtist is calling ParseXML with parameters Bruce Springsteen, 1
4/7/2006 11:09:21 AM: * ParseXML has started with parameters Bruce Springsteen, 1
4/7/2006 11:09:21 AM: ParseXML is tranfering XML data to a dictionary
4/7/2006 11:09:21 AM: ParseXML tranfered XML data to dictionary succefully
4/7/2006 11:09:21 AM: ParseXML will now call NotTooSoon with parameters Elton John
4/7/2006 11:09:21 AM: * NotTooSoon has started with parameters Elton John
4/7/2006 11:09:21 AM: * CorrectSt has started with parameters Elton John
4/7/2006 11:09:21 AM: * CorrectSt will return Elton John and exit
4/7/2006 11:09:21 AM: NotTooSoon will query database with SQL: SELECT Songs.IDArtist, Played.PlayDate FROM (Songs INNER JOIN Played ON Songs.ID = Played.IdSong) INNER JOIN Artists ON Songs.IDArtist = Artists.ID WHERE Artists.Artist Like 'Elton John' ORDER BY Played.PlayDate DESC
4/7/2006 11:09:31 AM: * NotTooSoon will retunn False and exit
4/7/2006 11:09:31 AM: ** NotTooSoon was False. ParseXML will return E2 and Exit
4/7/2006 11:09:31 AM: * ParseXML exited
4/7/2006 11:09:31 AM: ParseXML returned E2 to LastArtist. Procceding to error evaluation
4/7/2006 11:09:31 AM: * PlayDefTrack has started
4/7/2006 11:09:32 AM: PlayDefTrack will use Favorites - Not Heard Recently (1 hr) playlist which contains a total of 17 tracks
4/7/2006 11:09:32 AM: PlayDefTrack initialized checking for accessible files
invalid procedure call or argument
file scrobblerdj.vbs, line 659, column 4
I think the below is the relevant log portion, I was away when the error appeared and music stopped.
4/7/2006 11:09:19 AM: ---------------------------------------------------------------------------------------
4/7/2006 11:09:19 AM: User options are:
4/7/2006 11:09:19 AM: Default playlist: Favorites - Not Heard Recently (1 hr)
4/7/2006 11:09:19 AM: Timeout Settings: 50, Warn: 0
4/7/2006 11:09:19 AM: Dont play same artist: 300
4/7/2006 11:09:19 AM: Minimun match: 50
4/7/2006 11:09:19 AM: Minimum Rating: 7
4/7/2006 11:09:19 AM: Include Higher Rating: True
4/7/2006 11:09:19 AM: Include Unknown Rating: True
4/7/2006 11:09:19 AM: <<<<<<<<<<<<<< Script Will now Proceed >>>>>>>>>>>>>>>>>
4/7/2006 11:09:19 AM: * ScrobblerDJ started
4/7/2006 11:09:19 AM: ** All conditions met, Scrobbler will now go online
4/7/2006 11:09:19 AM: * Initialization started
4/7/2006 11:09:19 AM: * Initialization finished
4/7/2006 11:09:20 AM: ScrobblerDJ will register Progtimer
4/7/2006 11:09:20 AM: ** Feed Artist is Bruce Springsteen
4/7/2006 11:09:20 AM: * LoadXML started. Parameters passed: Bruce Springsteen ,1
4/7/2006 11:09:20 AM: * URLEncode has started with parameters Bruce Springsteen
4/7/2006 11:09:20 AM: * URLEncode will return Bruce+Springsteen and exit
4/7/2006 11:09:20 AM: LoadXML will register DownTimer
4/7/2006 11:09:20 AM: LoadXML set Mode to 1 (artist)
4/7/2006 11:09:20 AM: * LoadXML exited
4/7/2006 11:09:20 AM: * ScrobblerDJ exited
4/7/2006 11:09:21 AM: * DownTimer Unregistered by itself (results from Last.FM returned succesfully)
4/7/2006 11:09:21 AM: ** Downtime is calling sub last artist in mode: 1
4/7/2006 11:09:21 AM: * LastArtist started. Mode was 1
4/7/2006 11:09:21 AM: LastArtist is calling ParseXML with parameters Bruce Springsteen, 1
4/7/2006 11:09:21 AM: * ParseXML has started with parameters Bruce Springsteen, 1
4/7/2006 11:09:21 AM: ParseXML is tranfering XML data to a dictionary
4/7/2006 11:09:21 AM: ParseXML tranfered XML data to dictionary succefully
4/7/2006 11:09:21 AM: ParseXML will now call NotTooSoon with parameters Elton John
4/7/2006 11:09:21 AM: * NotTooSoon has started with parameters Elton John
4/7/2006 11:09:21 AM: * CorrectSt has started with parameters Elton John
4/7/2006 11:09:21 AM: * CorrectSt will return Elton John and exit
4/7/2006 11:09:21 AM: NotTooSoon will query database with SQL: SELECT Songs.IDArtist, Played.PlayDate FROM (Songs INNER JOIN Played ON Songs.ID = Played.IdSong) INNER JOIN Artists ON Songs.IDArtist = Artists.ID WHERE Artists.Artist Like 'Elton John' ORDER BY Played.PlayDate DESC
4/7/2006 11:09:31 AM: * NotTooSoon will retunn False and exit
4/7/2006 11:09:31 AM: ** NotTooSoon was False. ParseXML will return E2 and Exit
4/7/2006 11:09:31 AM: * ParseXML exited
4/7/2006 11:09:31 AM: ParseXML returned E2 to LastArtist. Procceding to error evaluation
4/7/2006 11:09:31 AM: * PlayDefTrack has started
4/7/2006 11:09:32 AM: PlayDefTrack will use Favorites - Not Heard Recently (1 hr) playlist which contains a total of 17 tracks
4/7/2006 11:09:32 AM: PlayDefTrack initialized checking for accessible files
New script: Last.FM Node Now with DJ Mode!
Last.fm + MediaMonkey = Scrobbler DJ!
Tag with MusicBrainz ~ Get Album Art!
Tweak the Monkey! ~ My Scripts Page
Last.fm + MediaMonkey = Scrobbler DJ!
Tag with MusicBrainz ~ Get Album Art!
Tweak the Monkey! ~ My Scripts Page
-
- Posts: 130
- Joined: Mon Apr 03, 2006 5:31 pm
- Contact:
I agree with these comments 110%Teknojnky wrote:
My suggestion is 2 parts:
Leave the current "no same artist" timer limits as is, however add a 2nd timer restrictions for *tracks*.
See, I may have a large or small number of tracks from a popular artist, but because of the popularity distribution of last.fm, and the small (IMO) timer limit, I may hear the same tracks more often than I care to.
I would rather not remove the tracks by rating them below the minimum rating, I simply want to specify a longer timespam before a track is repeated.
Afterall, isn't one of the main ideas for scrobbler dj is to expose you to tracks/artists in your library that you may not have heard yet?
As an example, coldplay, which is one of the more popular artists on last.fm, but I have just a couple tracks of. Because of the popularity of coldplay, I tend to get these few songs several times a week/day.
On the other extreme, I have artists with alot of tracks, I don't want to exclude the artist for long periods of time, I just don't want tracks repeated too often.
I have in the past, just edited the config script to allow myself a longer artist timer, but that does not solve the issue of track repeats vs artist repeats.
My personal preference would be:
Artist repeat: 1-8 hours
Track repeat: 1 to 7 days
Add a check box to each, or allow zero for disable for those who wish to.
Anyway, I really love the script and appreciate all the work you've done on it.
IMO, this script adds so much to MM, I would highly recommend to the developers to consider adding it to the official installation (once you feel its ready) so that it gets installed for everyone.
Especially the bit about this being an awesome script.
Here is another example log, same error as above, line 659, column 4
4/7/2006 2:55:21 PM: ---------------------------------------------------------------------------------------
4/7/2006 2:55:21 PM: User options are:
4/7/2006 2:55:21 PM: Default playlist: Favorites - Not Heard Recently (1 hr)
4/7/2006 2:55:21 PM: Timeout Settings: 50, Warn: 0
4/7/2006 2:55:21 PM: Dont play same artist: 300
4/7/2006 2:55:21 PM: Minimun match: 50
4/7/2006 2:55:21 PM: Minimum Rating: 7
4/7/2006 2:55:21 PM: Include Higher Rating: True
4/7/2006 2:55:21 PM: Include Unknown Rating: True
4/7/2006 2:55:21 PM: <<<<<<<<<<<<<< Script Will now Proceed >>>>>>>>>>>>>>>>>
4/7/2006 2:55:21 PM: * ScrobblerDJ started
4/7/2006 2:55:21 PM: ** All conditions met, Scrobbler will now go online
4/7/2006 2:55:21 PM: * Initialization started
4/7/2006 2:55:21 PM: * Initialization finished
4/7/2006 2:55:21 PM: ScrobblerDJ will register Progtimer
4/7/2006 2:55:21 PM: ** Feed Artist is RZA
4/7/2006 2:55:21 PM: * LoadXML started. Parameters passed: RZA ,1
4/7/2006 2:55:21 PM: * URLEncode has started with parameters RZA
4/7/2006 2:55:21 PM: * URLEncode will return RZA and exit
4/7/2006 2:55:21 PM: LoadXML will register DownTimer
4/7/2006 2:55:21 PM: LoadXML set Mode to 1 (artist)
4/7/2006 2:55:21 PM: * LoadXML exited
4/7/2006 2:55:21 PM: * ScrobblerDJ exited
4/7/2006 2:55:22 PM: * DownTimer Unregistered by itself (results from Last.FM returned succesfully)
4/7/2006 2:55:22 PM: ** Downtime is calling sub last artist in mode: 1
4/7/2006 2:55:22 PM: * LastArtist started. Mode was 1
4/7/2006 2:55:22 PM: LastArtist is calling ParseXML with parameters RZA, 1
4/7/2006 2:55:22 PM: * ParseXML has started with parameters RZA, 1
4/7/2006 2:55:22 PM: ParseXML is tranfering XML data to a dictionary
4/7/2006 2:55:22 PM: ParseXML tranfered XML data to dictionary succefully
4/7/2006 2:55:22 PM: ParseXML will now call NotTooSoon with parameters Cappadonna
4/7/2006 2:55:22 PM: * NotTooSoon has started with parameters Cappadonna
4/7/2006 2:55:22 PM: * CorrectSt has started with parameters Cappadonna
4/7/2006 2:55:22 PM: * CorrectSt will return Cappadonna and exit
4/7/2006 2:55:22 PM: NotTooSoon will query database with SQL: SELECT Songs.IDArtist, Played.PlayDate FROM (Songs INNER JOIN Played ON Songs.ID = Played.IdSong) INNER JOIN Artists ON Songs.IDArtist = Artists.ID WHERE Artists.Artist Like 'Cappadonna' ORDER BY Played.PlayDate DESC
4/7/2006 2:55:23 PM: * NotTooSoon will retunn True and exit
4/7/2006 2:55:23 PM: ParseXML will now call sub CheckExist with parameters Cappadonna, 0, 1
4/7/2006 2:55:23 PM: * CheckExist has started with parameters Cappadonna, 0, 1
4/7/2006 2:55:23 PM: * CorrectSt has started with parameters Cappadonna
4/7/2006 2:55:23 PM: * CorrectSt will return Cappadonna and exit
4/7/2006 2:55:23 PM: CheckExist will call CheckRating with parameters Cappadonna, 0, 1
4/7/2006 2:55:23 PM: * CheckRating has started with parameters Cappadonna, 0, 1
4/7/2006 2:55:23 PM: * CorrectSt has started with parameters Cappadonna
4/7/2006 2:55:23 PM: * CorrectSt will return Cappadonna and exit
4/7/2006 2:55:23 PM: CheckRating will query database with SQL: SELECT TOP 1 Artists.ID FROM Artists Left Join Songs On Artists.ID = Songs.IDArtist WHERE Artists.Artist like 'Cappadonna' And (Songs.Rating >=50 OR SONGS.RATING = -1) ORDER BY Songs.Rating DESC
4/7/2006 2:55:23 PM: * CheckRating will return False and exit
4/7/2006 2:55:23 PM: Rating Control for artist Cappadonna failed. CheckExist will return 0 and exit
4/7/2006 2:55:23 PM: CheckExist returned 0 to ParseXML
4/7/2006 2:55:21 PM: ---------------------------------------------------------------------------------------
4/7/2006 2:55:21 PM: User options are:
4/7/2006 2:55:21 PM: Default playlist: Favorites - Not Heard Recently (1 hr)
4/7/2006 2:55:21 PM: Timeout Settings: 50, Warn: 0
4/7/2006 2:55:21 PM: Dont play same artist: 300
4/7/2006 2:55:21 PM: Minimun match: 50
4/7/2006 2:55:21 PM: Minimum Rating: 7
4/7/2006 2:55:21 PM: Include Higher Rating: True
4/7/2006 2:55:21 PM: Include Unknown Rating: True
4/7/2006 2:55:21 PM: <<<<<<<<<<<<<< Script Will now Proceed >>>>>>>>>>>>>>>>>
4/7/2006 2:55:21 PM: * ScrobblerDJ started
4/7/2006 2:55:21 PM: ** All conditions met, Scrobbler will now go online
4/7/2006 2:55:21 PM: * Initialization started
4/7/2006 2:55:21 PM: * Initialization finished
4/7/2006 2:55:21 PM: ScrobblerDJ will register Progtimer
4/7/2006 2:55:21 PM: ** Feed Artist is RZA
4/7/2006 2:55:21 PM: * LoadXML started. Parameters passed: RZA ,1
4/7/2006 2:55:21 PM: * URLEncode has started with parameters RZA
4/7/2006 2:55:21 PM: * URLEncode will return RZA and exit
4/7/2006 2:55:21 PM: LoadXML will register DownTimer
4/7/2006 2:55:21 PM: LoadXML set Mode to 1 (artist)
4/7/2006 2:55:21 PM: * LoadXML exited
4/7/2006 2:55:21 PM: * ScrobblerDJ exited
4/7/2006 2:55:22 PM: * DownTimer Unregistered by itself (results from Last.FM returned succesfully)
4/7/2006 2:55:22 PM: ** Downtime is calling sub last artist in mode: 1
4/7/2006 2:55:22 PM: * LastArtist started. Mode was 1
4/7/2006 2:55:22 PM: LastArtist is calling ParseXML with parameters RZA, 1
4/7/2006 2:55:22 PM: * ParseXML has started with parameters RZA, 1
4/7/2006 2:55:22 PM: ParseXML is tranfering XML data to a dictionary
4/7/2006 2:55:22 PM: ParseXML tranfered XML data to dictionary succefully
4/7/2006 2:55:22 PM: ParseXML will now call NotTooSoon with parameters Cappadonna
4/7/2006 2:55:22 PM: * NotTooSoon has started with parameters Cappadonna
4/7/2006 2:55:22 PM: * CorrectSt has started with parameters Cappadonna
4/7/2006 2:55:22 PM: * CorrectSt will return Cappadonna and exit
4/7/2006 2:55:22 PM: NotTooSoon will query database with SQL: SELECT Songs.IDArtist, Played.PlayDate FROM (Songs INNER JOIN Played ON Songs.ID = Played.IdSong) INNER JOIN Artists ON Songs.IDArtist = Artists.ID WHERE Artists.Artist Like 'Cappadonna' ORDER BY Played.PlayDate DESC
4/7/2006 2:55:23 PM: * NotTooSoon will retunn True and exit
4/7/2006 2:55:23 PM: ParseXML will now call sub CheckExist with parameters Cappadonna, 0, 1
4/7/2006 2:55:23 PM: * CheckExist has started with parameters Cappadonna, 0, 1
4/7/2006 2:55:23 PM: * CorrectSt has started with parameters Cappadonna
4/7/2006 2:55:23 PM: * CorrectSt will return Cappadonna and exit
4/7/2006 2:55:23 PM: CheckExist will call CheckRating with parameters Cappadonna, 0, 1
4/7/2006 2:55:23 PM: * CheckRating has started with parameters Cappadonna, 0, 1
4/7/2006 2:55:23 PM: * CorrectSt has started with parameters Cappadonna
4/7/2006 2:55:23 PM: * CorrectSt will return Cappadonna and exit
4/7/2006 2:55:23 PM: CheckRating will query database with SQL: SELECT TOP 1 Artists.ID FROM Artists Left Join Songs On Artists.ID = Songs.IDArtist WHERE Artists.Artist like 'Cappadonna' And (Songs.Rating >=50 OR SONGS.RATING = -1) ORDER BY Songs.Rating DESC
4/7/2006 2:55:23 PM: * CheckRating will return False and exit
4/7/2006 2:55:23 PM: Rating Control for artist Cappadonna failed. CheckExist will return 0 and exit
4/7/2006 2:55:23 PM: CheckExist returned 0 to ParseXML
New script: Last.FM Node Now with DJ Mode!
Last.fm + MediaMonkey = Scrobbler DJ!
Tag with MusicBrainz ~ Get Album Art!
Tweak the Monkey! ~ My Scripts Page
Last.fm + MediaMonkey = Scrobbler DJ!
Tag with MusicBrainz ~ Get Album Art!
Tweak the Monkey! ~ My Scripts Page
Seems like this error is caused by the debug option. Try to run the script with debug mode disabled.
Also send me an e-mail with the scrobblerdj.vbs.log attached. at
psyxonovareplacetheobviousyahoo.co.uk
Again thanks for your great words and help.
I will think about your suggestions and answer soon on that
Also send me an e-mail with the scrobblerdj.vbs.log attached. at
psyxonovareplacetheobviousyahoo.co.uk
Again thanks for your great words and help.
I will think about your suggestions and answer soon on that