New Search/Autoplaylist Selection Script

Download and get help for different MediaMonkey for Windows 4 Addons.

Moderators: Peke, Gurus

nynaevelan
Posts: 5559
Joined: Wed Feb 07, 2007 11:07 pm
Location: New Jersey, USA
Contact:

New Search/Autoplaylist Selection Script

Post by nynaevelan »

Hello Scripters:

I have a request for a new script which involves the searching function as well as the autoplaylist selection sets. The way MM is now it is very limited. For instance, when searching using the classification fields there is no option for "is not" or "contains", also for the date fields there is no option for either a "is not", "contains" or "date ranges". I would like to know if it is possible to create a search script that would include these options? And if so, is anyone up for the challenge? I am trying to get into more autoplaylists but I cannot create them based on the criteria which I need. Am I reaching for the stars?

Nyn
3.2x - Win7 Ultimate (Zen Touch 2 16 GB/Zen 8GB)
Link to Favorite Scripts/Skins

Join Dropbox, the online site to share your files
stan9980
Posts: 101
Joined: Tue Nov 06, 2007 6:28 am

Re: New Search/Autoplaylist Selection Script

Post by stan9980 »

Have you tried MegaDJ? It covers all of those and you could do date ranges with greater than / less than. Not to mention lots of other stuff :D

stan9980
nynaevelan
Posts: 5559
Joined: Wed Feb 07, 2007 11:07 pm
Location: New Jersey, USA
Contact:

Re: New Search/Autoplaylist Selection Script

Post by nynaevelan »

Although that looks interesting and appears to solve the searching limitations, I do not see how it would help with the autoplaylists. I need the increased autoplaylist functionality more than the searching functions. If I needs just the searching functionality, I am very comfortable with Bex's Advanced Duplicate Find & Fix script, which comes really close to meeting my searching needs. And before anyone suggests it, I do not want to build multiple autoplaylists just to meet the needs for one. I already have layers of autoplaylists and they are more cumbersome than using static playlists. Through the advice of a scripter, whom I respect, I am trying to move away from so many static playlists, but I cannot do that without the added power of autoplaylists. But thanks for the suggestion. :wink:

Nyn
3.2x - Win7 Ultimate (Zen Touch 2 16 GB/Zen 8GB)
Link to Favorite Scripts/Skins

Join Dropbox, the online site to share your files
Eyal
Posts: 3116
Joined: Sun Jun 26, 2005 9:27 am
Location: Québec

Re: New Search/Autoplaylist Selection Script

Post by Eyal »

Nynaevelan, I think time came for you to try Magic Nodes.
Skins for MediaMonkey: Cafe, Carbon, Helium, Spotify, Zekton. [ Wiki Zone ].
MoDementia
Posts: 1321
Joined: Thu Jun 15, 2006 3:26 pm
Location: Geelong, Victoria, Australia

Re: New Search/Autoplaylist Selection Script

Post by MoDementia »

Many of the fields in search/autoplaylists need tweaking as you highligt in your examples; This is a wishlist request for the developers.

Having said that they are quite powerful and duplcating them with a script would be a huge effort, just doing the missing examples, although smaller in scope, wouldn't be much better than one of the custom node creators already available.

Converting the node code to autoplaylist code is another kettle of fish. see here

It might be possible to trick an autoplaylist into using the node criteria even though it is not available through normal methods but the question is will it use it or ignore it because it isn't available normally?

Step 1
Create a couple of example custom nodes with the critera needed and post the node code here
Step 2
A scripter can have a look at converting and addng the criteria to an existing autoplaylist.
Step 3
If successful an interface for getting the custom node code into a playlist could be developed.
nynaevelan
Posts: 5559
Joined: Wed Feb 07, 2007 11:07 pm
Location: New Jersey, USA
Contact:

Re: New Search/Autoplaylist Selection Script

Post by nynaevelan »

Eyal wrote:Nynaevelan, I think time came for you to try Magic Nodes.
I've tried Magic Nodes but I gave up using it because it was too complex for me to understand in order to build my own complex nodes without always asking for assistance. I know you may not believe this since I am always asking for help or new scripts here, but I like to have the tools to be self-sufficient. And although I cannot script or code or program or whatever it is that you all do so well, I can make modifications with trial and error to meet my needs. With all of that being said, I switched from Magic Nodes to SBondi's My Custom Nodes script which allows me to be more self-sufficient. And with less assistance than I needs with Magic Nodes, I was able to use the following nodes. I already have too many of them I do not want to build lots more just to make autoplaylists:

Code: Select all

[Options] 
unknownCaption="[Unknown]" 
defaulticon="Title" 
defaultsortLike="None" 
refresh_DynamicallyWhenTracksConvertedOrRipped==1
refresh_DynamicallyWhenTrackPropertiesChanged=1
refresh_EvenCurrentNodeManuallyOrDynamically=1
multiValueField_Artist=1 
refresh_ManuallyToUpdateCounts_AddToolbarItem=0
refresh_ManuallyWithUpdatedINIFile_AddToolbarItem=1 
;------------------------------------------------------------------------ 

[Library] 
expandExisting=1
checkExistingChildren=1 

[Files to Edit] 
expandExisting=1
checkExistingChildren=1 

;[Unclassified Tracks] 
;checkExistingChildren=0
;------------------------------------------------------------------------ 

[Files to Edit] 
hideExisting=0

[Duplicate Titles] 
hideExisting=1

[Unclassified Tracks] 
hideExisting=1

[Unknown Title] 
hideExisting=1 

[Unknown Artist] 
hideExisting=1 

[Unknown Album] 
hideExisting=1 

[Unknown Rating] 
hideExisting=1 

[Unknown Genre] 
hideExisting=1 

[Unknown Year] 
hideExisting=1 

;[Unknown Occasion] 
;hideExisting=1 

[Multiple Artist Albums] 
hideExisting=1 

[Unknown Album Art] 
hideExisting=0

;------------------------------------------------------------------------ 

[Personal Node] 
icon=Mood
expandAtStartup=1 

;------------------------------------------------------------------------ 
;------------------------------------------------------------------------ 

[Testing Purposes] 
icon=Album 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount
level=Genre
hideifempty=1 
refresh=1
trackCriteria="(Quality LIKE '%good%')" 
parent="Personal Node"

;------------------------------------------------------------------------ 
;------------------------------------------------------------------------ 

[All Tracks] 
icon=Title
sortLike=Genre
level=Genre 
levelEasyCaption=BaseCaptionAndTrackCount
level=Artist
levelSortOrder=ascending
trackCriteria="(ID <> '')" 

;------------------------------------------------------------------------ 
[Additions] 
icon=Title 
parent="Personal Node" 
;------------------------------------------------------------------------ 
;------------------------------------------------------------------------ 
[Added Today] 
icon=Quality 
sortLike=Genre 
hideIfEmpty=1 
refresh=1 
level=Genre
levelEasyCaption=BaseCaptionAndTrackCount
trackCriteria="((CAST([vb]CDbl(Now)[vb] AS Integer)) - CAST(DateAdded AS Integer) = 0)" 
parent="Additions" 

[Added Yesterday] 
icon=Preview
sortLike=Genre 
hideIfEmpty=1 
refresh=1 
level=Genre
levelEasyCaption=BaseCaptionAndTrackCount
trackCriteria="((CAST([vb]CDbl(Now)[vb] AS Integer)) - CAST(DateAdded AS Integer) = 1)" 
parent="Additions" 

[Added in Last 7 Days] 
icon=Album
sortLike=Album
hideIfEmpty=1 
refresh=1 
level=DateAdded
levelEasyCaption=BaseCaptionAndNodeCount
LevelEasySort=MostRecentlyAdded
level=Genre
easyCriteria=addedwithinthelast7days
parent="Additions"

[Date Added by Genre] 
icon=Genre 
sortLike=Genre 
level=DateAdded
levelSortOrder=descending
level=Genre 
levelEasyCaption=BaseCaptionAndTrackCount
trackCriteria="(ID <> '')" 
parent="Additions" 

;------------------------------------------------------------------------ 
;------------------------------------------------------------------------ 
[Modifications] 
icon=Title 
parent="Personal Node" 
;------------------------------------------------------------------------ 
;------------------------------------------------------------------------ 
[Modified Today] 
icon=Quality 
sortLike=Genre 
hideIfEmpty=1 
refresh=1 
level=Genre
levelEasyCaption=BaseCaptionAndTrackCount
trackCriteria="((CAST([vb]CDbl(Now)[vb] AS Integer)) - CAST(FileModified AS Integer) = 0)" 
parent="Modifications" 

[Modified Yesterday] 
icon=Preview
sortLike=Genre 
hideIfEmpty=1 
refresh=1 
level=Genre
levelEasyCaption=BaseCaptionAndTrackCount
trackCriteria="((CAST([vb]CDbl(Now)[vb] AS Integer)) - CAST(FileModified AS Integer) = 1)" 
parent="Modifications" 

[Modified in Last 7 Days] 
icon=Album
sortLike=Album
hideIfEmpty=1 
refresh=1 
level=FileModified
levelSortOrder=descending
levelEasyCaption=BaseCaptionAndTrackCount
level=Genre
trackCriteria="(([vb]Fix(CDbl(Now))[vb] - CAST(FileModified AS Integer)) <= 7)"
parent="Modifications"

[Date Modified by Genre] 
icon=Genre 
sortLike=Genre 
level=FileModified
levelSortOrder=descending
level=Genre 
levelEasyCaption=BaseCaptionAndTrackCount
trackCriteria="(ID <> '')" 
parent="Modifications" 

;------------------------------------------------------------------------ 
;------------------------------------------------------------------------ 
[Album Info] 
icon=Album
parent="Personal Node" 
;------------------------------------------------------------------------ 

[Body & Soul Albums] 
icon=Album
sortLike=Album
easyCaption=BaseCaptionAndTrackCount 
hideIfEmpty=1 
refresh=1 
trackCriteria="(Album LIKE 'Body & Soul%' OR Custom3 LIKE 'Body & Soul%')"   
parent="Album Info"

[Compilation Albums] 
icon=MultipleArtistAlbum
sortLike=Title
hideifempty=1 
refresh=1
level=Album
trackCriteria="(GroupDesc = 'Compilation Album' AND AlbumArtist = 'Various Artists')" 
parent="Album Info"

[Guest Artists] 
icon=Artist 
sortLike=Artist 
level=GuestArtist 
level=AlbumArtist 
level=Album 
easyCriteria=WithGuestArtist 
parent="Album Info" 

[Primary Artists] 
icon=Album
sortLike=Artist 
level=PrimaryArtist 
level=GuestArtist 
level=Album
easyCriteria=WithGuestArtist 
parent="Album Info" 

[1 Track Albums] 
icon=Quality 
sortLike=Title 
level=Genre
EasyCaption=BaseCaption
TrackCriteria="IDAlbum IN (SELECT ID FROM Albums WHERE (Tracks = 1))"
parent="Album Info"  

[Specialty Not Empty] 
icon=CD
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount
level=Custom2
level=Title 
trackCriteria="(Custom2 <> '')" 
parent="Album Info" 

[Secondary Albums] 
icon=AlbumArt
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount
level=Album
LevelEasyCaption=BaseCaption
trackCriteria="(Custom3 <> '')" 
parent="Album Info" 

[Released This Year] 
icon=Preview
sortLike=Album
hideifempty=1 
refresh=1
easyCaption=BaseCaptionAndTrackCount
level=Artist
LevelEasyCaption=BaseCaption
level=Album
LevelEasyCaption=BaseCaption
easyCriteria=ReleasedThisYear
parent="Album Info" 

[Released In The Last Year] 
icon=Year
sortLike=Album
refresh=1
hideifempty=1 
refresh=1
easyCaption=BaseCaptionAndTrackCount
level=Artist
LevelEasyCaption=BaseCaption
level=Album
LevelEasyCaption=BaseCaption
easyCriteria=ReleasedWithinTheLastYear
parent="Album Info"
;------------------------------------------------------------------------ 

[Decade Released] 
icon=AlbumArt
parent="Album Info" 

 ;------------------------------------------------------------------------ 

[B4 The 60's] 
icon=Quality
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount 
hideIfEmpty=1 
refresh=1 
level=Year
level=Genre
LevelEasyCaption=BaseCaption
trackCriteria="(Year < 19600000)"   
parent="Decade Released"

[The 60's] 
icon=Year 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount 
hideIfEmpty=1 
refresh=1 
level=Year
level=Genre
LevelEasyCaption=BaseCaption
trackCriteria="(Year > 19590000 AND Year < 19700000)"   
parent="Decade Released"

[The 70's] 
icon=Genre
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount 
hideIfEmpty=1 
refresh=1 
level=Year
level=Genre
LevelEasyCaption=BaseCaption
trackCriteria="(Year > 19690000 AND Year < 19800000)"   
parent="Decade Released"

[The 80's] 
icon=Mood 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount 
hideIfEmpty=1 
refresh=1 
level=Year
level=Genre
LevelEasyCaption=BaseCaption
trackCriteria="(Year > 19790000 AND Year < 19900000)"   
parent="Decade Released"

[The 90's] 
icon=Album
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount 
hideIfEmpty=1 
refresh=1 
level=Year
level=Genre
LevelEasyCaption=BaseCaption
trackCriteria="(Year > 19890000 AND Year < 20000000)"   
parent="Decade Released"

[The 00's] 
icon=Rating 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount 
hideIfEmpty=1 
refresh=1 
level=Year
level=Genre
LevelEasyCaption=BaseCaption
trackCriteria="(Year > 19990000)"   
parent="Decade Released"

;------------------------------------------------------------------------

[Played] 
icon=Title 
parent="Personal Node" 

;------------------------------------------------------------------------ 
;------------------------------------------------------------------------ 

[Play Info] 
icon=NowPlaying
parent="Played" 

;------------------------------------------------------------------------ 

[Most Played Artists (10)] 
icon=Artist 
sortLike=Artist 
EasyCaption=BaseCaptionAndTrackCount
level=AlbumArtist 
levelEasyCaption=BaseCaption 
levelEasyCaption=MaximumPlayCount 
levelEasySort=MostPlayed  
trackCriteria="((Genre = 'Slow Jams' OR Genre = 'Soundtracks' OR Genre = 'TV Tributes' OR Genre = 'HipHop' OR Genre = 'Wedding' OR Genre = 'Pop') AND ((AlbumArtist || '~' || PlayCounter) IN (SELECT AlbumArtist || '~' || Max(PlayCounter) FROM Songs WHERE (PlayCounter > 9) GROUP BY AlbumArtist)))"
parent="Play Info"

[Most Played Tracks (10)] 
icon=Artist 
sortLike=Artist 
EasyCaption=BaseCaptionAndTrackCount
level=AlbumArtist 
levelEasyCaption=BaseCaption 
levelEasyCaption=MaximumPlayCount 
levelEasySort=MostPlayed  
trackCriteria="((AlbumArtist || '~' || PlayCounter) IN (SELECT AlbumArtist || '~' || Max(PlayCounter) FROM Songs WHERE (PlayCounter > 9) GROUP BY AlbumArtist))"
parent="Play Info"

[Weekly Top Artists] 
icon=NowPlaying
sortLike=Genre
level=Genre 
EasyCaption=BaseCaptionAndTrackCount
LevelEasySort=MostPlayed 
trackCriteria="((Genre = 'Slow Jams' OR Genre = 'Soundtracks' OR Genre = 'TV Tributes' OR Genre = 'HipHop' OR Genre = 'Wedding' OR Genre = 'Pop') AND (([vb]Fix(CDbl(Now))[vb] - CAST(LastTimePlayed AS Integer)) <= 7) AND ((AlbumArtist || '~' || PlayCounter) IN (SELECT AlbumArtist || '~' || Max(PlayCounter) FROM Songs WHERE (PlayCounter > 9) GROUP BY AlbumArtist)))"
parent="Play Info"

[Last Time Played] 
icon=CDCase 
sortLike=Title
level=LastTimePlayed
levelEasyCaption=BaseCaptionAndTrackCount
levelSortOrder=descending
trackCriteria="(PlayCounter > 0)" 
parent="Play Info" 

[Never Played] 
icon=NowPlaying
sortLike=Genre 
level=Genre 
levelEasyCaption=BaseCaptionAndTrackCount
level=Artist 
trackCriteria="(PlayCounter=0)" 
parent="Play Info" 

[Played Lately?] 
icon=Playlist
sortLike=Genre 
level=Genre 
easyCaption=BaseCaptionAndTrackCount
trackCriteria="((CAST([vb]CDbl(Now)[vb] AS Integer)) - CAST(LastTimePlayed AS Integer) > 7 AND (CAST([vb]CDbl(Now)[vb] AS Integer)) - CAST(LastTimePlayed AS Integer) < 30)"    
parent="Play Info" 

[Played Today] 
icon=MusicCD
sortLike=Genre 
level=Genre 
easyCaption=BaseCaptionAndTrackCount
trackCriteria="((CAST([vb]CDbl(Now)[vb] AS Integer)) - CAST(LastTimePlayed AS Integer) = 0)"   
parent="Play Info" 

[Played Yesterday] 
icon=VirtualCD
sortLike=Genre 
level=Genre 
easyCaption=BaseCaptionAndTrackCount
trackCriteria="((CAST([vb]CDbl(Now)[vb] AS Integer)) - CAST(LastTimePlayed AS Integer) = 1)"    
parent="Play Info" 

[Played in Last 7 Days] 
icon=Album
sortLike=Album
easyCaption=BaseCaptionAndTrackCount
level=LastTimePlayed
levelCustomSort="LastTimePlayed DESC"
level=Genre
easyCriteria=playedinthelast7days
parent="Play Info" 

[Played in Last 7 Days/Least Played] 
icon=Album
sortLike=Album
easyCaption=BaseCaptionAndTrackCount
level=LastTimePlayed
levelCustomSort="LastTimePlayed DESC"
level=Genre
easyCriteria=playedinthelast7days
trackCriteria="(PlayCounter between 1 and 9)" 
parent="Play Info" 

[Played in Last 30 Days] 
icon=Album
sortLike=Album
easyCaption=BaseCaptionAndTrackCount
level=Genre
levelCustomSort="LastTimePlayed DESC"
easyCriteria=playedinthelast30days
parent="Play Info"

[Played Less Than 5 Times] 
icon=Tempo
sortLike=Genre 
level=PlayCount 
level=Genre 
level=Title 
trackCriteria="(PlayCounter between 1 and 5)" 
parent="Play Info" 

[Play Counts] 
icon=Year
sortLike=Genre 
level=Playcount
levelSortOrder=descending
trackCriteria="(PlayCounter > 0)" 
parent="Play Info" 

[Play Counts by Genre] 
icon=Playlist
sortLike=Genre 
level=Genre
levelCustomCaption="<caption> ([select]sum(PlayCounter) [select])"
levelCustomSort="sum(PlayCounter) DESC" 
trackCriteria="(PlayCounter > 0)"
parent="Play Info" 

[Track Counts/Minutes by Top Artists] 
icon=Artist
sortLike=Title 
level=AlbumArtist 
levelCustomCaption="<caption> ([select]sum(PlayCounter) [select] Plays AND [select]CAST ((sum(SongLength)/1000.0/60.0) AS Integer)[select] mins)"
levelCustomSort="sum(PlayCounter) DESC" 
trackCriteria="(PlayCounter > 0)"
parent="Play Info" 

;------------------------------------------------------------------------ 

[Playlist Info] 
icon=Playlist 
parent="Played" 

;------------------------------------------------------------------------ 
[Songs In Playlist] 
icon=Quality 
sortLike=Title 
hideifempty=1 
refresh=1
level=Artist 
EasyCaption=BaseCaptionAndTrackCount
level=Playlist 
LevelEasyCaption=BaseCaptionAndTrackCount
trackCriteria="ID IN (SELECT IDSong FROM PlaylistSongs WHERE (IDPlaylist in (SELECT IDPlaylist FROM Playlists WHERE (IsAutoPlaylist ISNULL))))"   
parent="Playlist Info"  

[Playlist Totals] 
icon=Genre
sortLike=Title 
hideifempty=1 
refresh=1
EasyCaption=BaseCaption
level=Playlist 
levelCustomCaption="<caption> ([select]count(*) [select] Songs & [select]CAST ((sum(SongLength)/1000.0/60.0) AS Integer)[select] mins)"
trackCriteria="exists (select * from PlaylistSongs where IDSong=songs.ID)" 
parent="Playlist Info" 

[Conversion Playlists] 
icon=Occasion
sortLike=Genre
hideifempty=1 
refresh=1
level=Occasion
level=Title
trackCriteria="(Occasion <> '')" 
parent="Playlist Info" 

[Songs Not In Playlist] 
icon=Title
sortLike=Title 
level=Genre 
LevelCustomCaption="<caption> (<trackcount>)"
level=Artist 
EasyCaption=BaseCaptionAndTrackCount
trackCriteria="not exists (select * from PlaylistSongs where IDSong=songs.ID)" 
parent="Playlist Info" 

;------------------------------------------------------------------------ 
[Edits] 
icon=FilesToEdit 
parent="Personal Node" 

;------------------------------------------------------------------------ 
;------------------------------------------------------------------------ 
[Album Art Not Front Cover] 
icon=Artist 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount
hideifempty=1 
refresh=1
trackCriteria="(ID IN (SELECT IDSong FROM Covers WHERE (CoverType <> 3)))" 
parent="Edits"

[Comments] 
icon=Artist 
sortLike=Artist 
easyCaption=BaseCaptionAndNodeCount
hideifempty=1 
refresh=1
trackCriteria="(Comment <> '' AND Genre <> 'Podcast')" 
parent="Edits" 

[Compilation Albums] 
icon=MultipleArtistAlbum
sortLike=Title
hideifempty=1 
refresh=1
level=Genre
trackCriteria="(GroupDesc = 'Compilation Album' AND AlbumArtist <> 'Various Artists')" 
parent="Edits"

[Compilation Albums] 
icon=MultipleArtistAlbum
sortLike=Title
hideifempty=1 
refresh=1
level=Genre
trackCriteria="(GroupDesc <> 'Compilation Album' AND AlbumArtist = 'Various Artists')" 
parent="Edits"

[Composer] 
icon=Artist 
sortLike=Artist 
easyCaption=BaseCaptionAndNodeCount
hideifempty=1 
refresh=1
trackCriteria="(Author <> ''  AND Genre <> 'Podcast')"
parent="Edits"

[Converted Folder] 
icon=Occasion
sortLike=Title 
hideifempty=1 
refresh=1
level=Title
trackCriteria=(SongPath LIKE '%\Music\Downloads\converted%')
parent="Edits"

[Duplicate Album Art] 
icon=Artist 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount
hideifempty=1 
refresh=1
trackCriteria="(ID IN (SELECT IDSong FROM Covers WHERE (CoverOrder > 0)))" 
parent="Edits"

[Find Album Art]
sortLike=Title 
hideifempty=1 
refresh=1
level=Album
EasyCaption=BaseCaptionAndTrackCount
trackCriteria="(ID IN (SELECT IDSong FROM Covers WHERE (PictureType LIKE '%png')))"   
parent="Edits"  

[Find Lyrics] 
icon=MusicCD
sortLike=Title 
easyCaption=BaseCaptionAndTrackCount 
hideifempty=1 
refresh=1
level=Genre
trackCriteria=(Lyrics LIKE '%Lyrics Could Not Be Found%')
parent="Edits"

[Linked Album Art] 
icon=Artist 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount
hideifempty=1 
refresh=1
trackCriteria="(ID IN (SELECT IDSong FROM Covers WHERE (CoverPath <> '' and CoverStorage = 1)))"  
parent="Edits"

[Missing Album] 
icon=MusicCD 
sortLike=Artist 
easyCaption=BaseCaptionAndNodeCount
hideifempty=1 
refresh=1
trackCriteria="(Album = '')" 
parent="Edits" 

[Missing Album Analyze] 
icon=Album 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount
level=Genre
hideifempty=1 
refresh=1
trackCriteria="(NormalizeAlbum = -999999.0 AND Genre <> 'Audiobook' AND (IDAlbum IN (SELECT ID FROM Albums WHERE (Tracks > 1))))" 
parent="Edits" 

;[Missing Album Analyze (1 Track Albums] 
;icon=Album 
;sortLike=Artist 
;easyCaption=BaseCaptionAndTrackCount
;level=Genre
;hideifempty=1 
;refresh=1
;trackCriteria="(NormalizeAlbum = -999999.0 AND Genre <> 'Audiobook' AND (IDAlbum IN (SELECT ID FROM Albums WHERE (Tracks = 1))))" 
;parent="Edits" 

[Missing Album Art] 
icon=Album 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount
level=Genre
hideifempty=1 
refresh=1
trackCriteria="((ID NOT IN (SELECT IDSong FROM Covers)) AND (Genre <> 'Podcast'))"
parent="Edits" 

;[Missing Artist Comments] 
;icon=Artist
;sortLike=Artist
;level=Artist
;level=Title
;EasyCaption=BaseCaption
;TrackCriteria="ID IN (SELECT Artist FROM Artists WHERE (Artists.Comment = '' AND Artist LIKE 'A%'))"
;parent="Edits"  

[Missing BPM] 
icon=Album 
sortLike=Artist 
easyCaption=BaseCaptionAndNodeCount
hideifempty=1 
refresh=1
trackCriteria="(BPM = -1 AND Genre <> 'Podcast')" 
parent="Edits" 

[Missing Disc Number] 
icon=MusicCD 
sortLike=Artist 
easyCaption=BaseCaptionAndNodeCount
hideifempty=1 
refresh=1
trackCriteria="(DiscNumber = '' AND Genre <> 'Podcast')" 
parent="Edits" 

[Missing Gender] 
icon=Genre
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount
hideifempty=1 
refresh=1
level=Genre
trackCriteria="(Custom1 = '' AND Genre <> 'Podcast')" 
parent="Edits" 

[Missing Lyrics] 
icon=Album 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount 
hideifempty=1 
refresh=1
level=Genre 
trackCriteria="(Lyrics = '' AND Genre <> 'Podcast')" 
parent="Edits" 

[Missing Lyrics (Playlist)] 
icon=Album 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount 
hideifempty=1 
refresh=1
level=Genre 
trackCriteria="(Lyrics = '' AND ID IN (SELECT IDSong FROM PlaylistSongs WHERE (IDPlaylist in (SELECT IDPlaylist FROM Playlists WHERE (IsAutoPlaylist ISNULL)))) AND Genre <> 'Podcast')" 
parent="Edits" 

[Missing Mood] 
icon=Album 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount
level=Genre
hideifempty=1 
refresh=1
trackCriteria="(Mood = '' AND Genre <> 'Podcast')" 
parent="Edits" 

[Missing Quality] 
icon=Album 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount
level=Genre
hideifempty=1 
refresh=1
trackCriteria="(Quality = '' AND Genre <> 'Podcast')" 
parent="Edits" 

[Missing Tempo] 
icon=Album 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount
level=Genre
hideifempty=1 
refresh=1
trackCriteria="(Tempo = '' AND Genre <> 'Podcast')" 
parent="Edits" 

[Missing Track Analyze] 
icon=Album 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount
hideifempty=1 
refresh=1
trackCriteria="(NormalizeTrack = -999999.0 AND Genre <> 'Audiobook')" 
parent="Edits" 


;[Remove Track Analysis] 
;icon=Album 
;sortLike=Artist 
;easyCaption=BaseCaptionAndTrackCount
;hideifempty=1 
;refresh=1
;trackCriteria="(NormalizeTrack > -999999.0)" 
;parent="Edits" 

[Missing Track Number] 
icon=MusicCD 
sortLike=Artist 
easyCaption=BaseCaptionAndNodeCount
hideifempty=1 
refresh=1
trackCriteria="(TrackNumber = '' AND Genre <> 'Podcast')" 
parent="Edits" 

[Multiple Album Art] 
icon=Artist 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount
hideifempty=1 
refresh=1
trackCriteria="(ID IN (SELECT IDSong FROM Covers WHERE (CoverStorage > 1)))"  
parent="Edits"

[Track Analyze Too High]  
icon=Album 
sortLike=Artist 
easyCaption=BaseCaptionAndNodeCount
hideifempty=1 
refresh=1
trackCriteria="(NormalizeTrack > 9)" 
parent="Edits" 

[Unanalyzed Tracks] 
icon=Album 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount
level=Genre
hideifempty=1 
refresh=1
trackCriteria="(SignPart1 = 0 OR SignPart2 = 0 OR SignPart3 = 0 OR SignPart4 = 0)" 
parent="Edits" 
;------------------------------------------------------------------------ 
[Reports] 
icon=Title 
parent="Personal Node" 
;------------------------------------------------------------------------ 
;------------------------------------------------------------------------ 
[New For Review] 
icon=Preview
sortLike=Title 
easyCaption=BaseCaptionAndTrackCount
hideifempty=1 
refresh=1
level=Genre
level=Title 
trackCriteria="((CAST([vb]CDbl(Now)[vb] AS Integer)) - CAST(DateAdded AS Integer) <= 14 AND PlayCounter=0)" 
trackCriteria="(Genre <> 'Audiobook')"
parent="Reports"

[Replace Fake Plays] 
icon=Genre
sortLike=Genre
EasyCaption=BaseCaptionAndTrackCount
level=Genre 
levelSortOrder=ascending
trackCriteria="(Custom4 LIKE '%Fake%')" 
parent="Reports"

[Tracks Backed Up] 
icon=Artist
sortLike=Title 
easyCaption=BaseCaptionAndTrackCount
trackCriteria="(ID IN (SELECT TrackBackup.ID FROM TrackBackup WHERE (Songs.ID=TrackBackup.ID)))"
parent="Reports"

[Track(s) BackUp Needed] 
icon=Artist
sortLike=Title 
hideifempty=1 
refresh=1
easyCaption=BaseCaptionAndTrackCount
trackCriteria="(ID NOT IN (SELECT ID FROM TrackBackup))"
parent="Reports"
MoDementia wrote:Many of the fields in search/autoplaylists need tweaking as you highligt in your examples; This is a wishlist request for the developers.

Having said that they are quite powerful and duplcating them with a script would be a huge effort, just doing the missing examples, although smaller in scope, wouldn't be much better than one of the custom node creators already available.

Converting the node code to autoplaylist code is another kettle of fish. see here

It might be possible to trick an autoplaylist into using the node criteria even though it is not available through normal methods but the question is will it use it or ignore it because it isn't available normally?

Step 1
Create a couple of example custom nodes with the critera needed and post the node code here
Step 2
A scripter can have a look at converting and addng the criteria to an existing autoplaylist.
Step 3
If successful an interface for getting the custom node code into a playlist could be developed.

MoD:

This would not help me convert static playlists to autoplaylists. I already have nodes which could possibly bring me closer and with the use of Bex's PlayHistory and Last 100 scripts, I can generate more of what I need. But this does not bring me closer to being AUTOMATED which is the whole point of the request. If I am going to go through all this trouble, it is much easier to stick to building static playlists. I already have 17 autoplaylists just to generate 8 static playlists. And that does not take into account the static playlists that are generated from data from Bex's Last 100 script and the Top 100 portion of the PlayHistory script. And then let's not forget the 3 autoplaylists which are built from the data from the Custom Search portion of Bex's Advanced Duplicate Find & Fix script in order to identify and evaluate duplicates. I'm sure I've said this many times but playlists, play counts and dates drive by db. I was looking for a way to minimize my use of static playlists but I think I need to stick with my static playlists, they work for me. And why break what isn't broken? I just want a more complex searching system and better autoplaylist criteria so that I can take these nodes and scripts and many playlists and minimize them. If you can use the criteria to create nodes, why can it not be used to make autoplaylists?

Nyn
Nyn
3.2x - Win7 Ultimate (Zen Touch 2 16 GB/Zen 8GB)
Link to Favorite Scripts/Skins

Join Dropbox, the online site to share your files
MoDementia
Posts: 1321
Joined: Thu Jun 15, 2006 3:26 pm
Location: Geelong, Victoria, Australia

Re: New Search/Autoplaylist Selection Script

Post by MoDementia »

nynaevelan wrote: why can it not be used to make autoplaylists?
That was the point of my post

It maybe possible to take the information you usually enter for a custom node and convert it into an autoplaylist, or more precisely add it to an existing autoplaylist that won't allow it normally

The problem is that autoplaylists are not in plain english (SQL) and there is no conversion table available so it is quite a bit of trial and error (field by field) to convert the node sql to something an autoplaylist can use.
Because there is no conversion table, to make the trial and error process possible/meaningful requires real examples of working SQL so that we can concentrate on the fields and operators used first.

The script could only be released with limited functionallity as each conversion formula is found
i.e.
classification: "is not"
SQL = Songs.Classification NOT LIKE '%...%'
AutoPlaylist = [AdvCond1] DBField=Songs.Classification DBFieldPerType=1 Condition=301 Value=3324

Hopefully after a few examples a pattern may emerge which will make the conversion process applicable to any field.
Initially it will need to be concentrated on specific requirements until such a pattern is discovered.

So from the list of nodes you posted which are the top 2-3 (that can't be created as an autoplaylist) you would like attempted to be converted first?
nynaevelan
Posts: 5559
Joined: Wed Feb 07, 2007 11:07 pm
Location: New Jersey, USA
Contact:

Re: New Search/Autoplaylist Selection Script

Post by nynaevelan »

Oh, I totally missed that. :oops: I thought the point of the two posts were to convert me over to custom nodes. In that case, I think these ones would be the closest to meeting what I am looking for at the moment.

Code: Select all

[Most Played Artists (10)] 
icon=Artist 
sortLike=Artist 
EasyCaption=BaseCaptionAndTrackCount
level=AlbumArtist 
levelEasyCaption=BaseCaption 
levelEasyCaption=MaximumPlayCount 
levelEasySort=MostPlayed  
trackCriteria="((Genre = 'Slow Jams' OR Genre = 'Soundtracks' OR Genre = 'TV Tributes' OR Genre = 'HipHop' OR Genre = 'Wedding' OR Genre = 'Pop') AND ((AlbumArtist || '~' || PlayCounter) IN (SELECT AlbumArtist || '~' || Max(PlayCounter) FROM Songs WHERE (PlayCounter > 9) GROUP BY AlbumArtist)))"
parent="Play Info"

[The 80's] 
icon=Mood 
sortLike=Artist 
easyCaption=BaseCaptionAndTrackCount 
hideIfEmpty=1 
refresh=1 
level=Year
level=Genre
LevelEasyCaption=BaseCaption
trackCriteria="(Year > 19790000 AND Year < 19900000)"   
parent="Decade Released"

[Weekly Top Artists] 
icon=NowPlaying
sortLike=Genre
level=Genre 
EasyCaption=BaseCaptionAndTrackCount
LevelEasySort=MostPlayed 
trackCriteria="((Genre = 'Slow Jams' OR Genre = 'Soundtracks' OR Genre = 'TV Tributes' OR Genre = 'HipHop' OR Genre = 'Wedding' OR Genre = 'Pop') AND (([vb]Fix(CDbl(Now))[vb] - CAST(LastTimePlayed AS Integer)) <= 7) AND ((AlbumArtist || '~' || PlayCounter) IN (SELECT AlbumArtist || '~' || Max(PlayCounter) FROM Songs WHERE (PlayCounter > 9) GROUP BY AlbumArtist)))"
parent="Play Info"

[Track Counts/Minutes by Top Artists] 
icon=Artist
sortLike=Title 
level=AlbumArtist 
levelCustomCaption="<caption> ([select]sum(PlayCounter) [select] Plays AND [select]CAST ((sum(SongLength)/1000.0/60.0) AS Integer)[select] mins)"
levelCustomSort="sum(PlayCounter) DESC" 
trackCriteria="(PlayCounter > 0)"
parent="Play Info" 

These could probably be interchanged to meet my needs. They could be a good starting point.

Nyn
3.2x - Win7 Ultimate (Zen Touch 2 16 GB/Zen 8GB)
Link to Favorite Scripts/Skins

Join Dropbox, the online site to share your files
stan9980
Posts: 101
Joined: Tue Nov 06, 2007 6:28 am

Re: New Search/Autoplaylist Selection Script

Post by stan9980 »

nynaevelan wrote:I do not see how it would help with the autoplaylists
Because that's what MegaDJ creates. It's a fairly simple way to add a huge amount of power to AutoPlaylists :)
nynaevelan
Posts: 5559
Joined: Wed Feb 07, 2007 11:07 pm
Location: New Jersey, USA
Contact:

Re: New Search/Autoplaylist Selection Script

Post by nynaevelan »

Maybe I am misunderstanding it, but this looks like another script to create custom nodes. Am I misinterepreting it? If not, I already have a script to create nodes, I am trying to avoid creating the nodes and going straight to the autoplaylist. I am neither a programmer or SQL-literate so I want something that I can use plain English in to create the playlists to suit my needs.

Nyn
3.2x - Win7 Ultimate (Zen Touch 2 16 GB/Zen 8GB)
Link to Favorite Scripts/Skins

Join Dropbox, the online site to share your files
stan9980
Posts: 101
Joined: Tue Nov 06, 2007 6:28 am

Re: New Search/Autoplaylist Selection Script

Post by stan9980 »

MegaDJ creates autoplaylists under it's own MegaDJ node. It handles the features you wanted in original post and provides a dropdown menu of fields and commands when you are building them, so it reasonably straightforward to use, it won't quite be plain English, but it's only slightly more complicated than creating a standard AutoPlaylist.

I think I'm getting slightly confused between what you mean by nodes and autoplaylists. My understanding of a node is that it will show all the tracks with the criteria you've set, whereas an AutoPlaylist will show a (possibly random) selection of tracks with the criteria you've set.
nynaevelan
Posts: 5559
Joined: Wed Feb 07, 2007 11:07 pm
Location: New Jersey, USA
Contact:

Re: New Search/Autoplaylist Selection Script

Post by nynaevelan »

I do not know all the differences between the two but the main one for me is, a node cannot be synced to my portable device as a playlist, which is the ultimate goal of all my "playing" playlists. If this script cannot go directly to a playlist, it kind of defeats the purpose, since I am familiar with a different node creation script. But I am willing to give this one a test run.

nyn
3.2x - Win7 Ultimate (Zen Touch 2 16 GB/Zen 8GB)
Link to Favorite Scripts/Skins

Join Dropbox, the online site to share your files
nynaevelan
Posts: 5559
Joined: Wed Feb 07, 2007 11:07 pm
Location: New Jersey, USA
Contact:

Re: New Search/Autoplaylist Selection Script

Post by nynaevelan »

MoDementia wrote:
nynaevelan wrote: why can it not be used to make autoplaylists?
That was the point of my post

It maybe possible to take the information you usually enter for a custom node and convert it into an autoplaylist, or more precisely add it to an existing autoplaylist that won't allow it normally

The problem is that autoplaylists are not in plain english (SQL) and there is no conversion table available so it is quite a bit of trial and error (field by field) to convert the node sql to something an autoplaylist can use.
Because there is no conversion table, to make the trial and error process possible/meaningful requires real examples of working SQL so that we can concentrate on the fields and operators used first.

The script could only be released with limited functionallity as each conversion formula is found
i.e.
classification: "is not"
SQL = Songs.Classification NOT LIKE '%...%'
AutoPlaylist = [AdvCond1] DBField=Songs.Classification DBFieldPerType=1 Condition=301 Value=3324

Hopefully after a few examples a pattern may emerge which will make the conversion process applicable to any field.
Initially it will need to be concentrated on specific requirements until such a pattern is discovered.

So from the list of nodes you posted which are the top 2-3 (that can't be created as an autoplaylist) you would like attempted to be converted first?
Hey:

Question, instead of having to convert the sql statements of the nodes, is it possible to be able to create autoplaylists based on the nodes themselves? In other words, the criteria would be node = X? That way there would be no need for conversion, but it would need to be able to select both native MM nodes and/or script created nodes. Is this possible, easier?

Nyn
3.2x - Win7 Ultimate (Zen Touch 2 16 GB/Zen 8GB)
Link to Favorite Scripts/Skins

Join Dropbox, the online site to share your files
Bex
Posts: 6316
Joined: Fri May 21, 2004 5:44 am
Location: Sweden

Re: New Search/Autoplaylist Selection Script

Post by Bex »

I'm not sure but I don't think the dev's will let scripters access the Auto-Playlist code since it's a Gold feature.
The best thing to do would be to point out for the dev's exactly what search features are missing so they become aware of it and can implement them.

I'm pretty sure such request will be implemented. After all, the math is simple here. Nicely implemented gold features makes more people to upgrade which generates more income.

Start a new thread in the wish-list forum and we can all help out to make the request to be really good! :D
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
nynaevelan
Posts: 5559
Joined: Wed Feb 07, 2007 11:07 pm
Location: New Jersey, USA
Contact:

Re: New Search/Autoplaylist Selection Script

Post by nynaevelan »

I added my reuqest here.

Nyn
3.2x - Win7 Ultimate (Zen Touch 2 16 GB/Zen 8GB)
Link to Favorite Scripts/Skins

Join Dropbox, the online site to share your files
Post Reply