Easy/fast nested nodes & FilesToEdit hiding (09Nov08)

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

Moderators: Peke, Gurus

spacefish
Posts: 1427
Joined: Mon Jan 14, 2008 7:21 am
Location: Denmark

Post by spacefish »

Works now! Thank you! :)
Image
MM Gold 3.0.3.1183 : Vista HP SP1 (x86) : Zen Stone (2GB)
Zekton: An original MM3 skin by Eyal.
Scripts in Use: Add/Remove PlayStat | Auto Album DJ | AutoRateAccurate | Backup
Case & Leading Zero Fixer | Classification & Genre Changer | Clean Scripts.ini | Clear
Field | Custom Report | Discogs Auto-Tag Web Search | Forget Crossfade | Invert
Selection/Select None | Last 100... | Lyricator | Lyrics to Instrumental | MonkeyRok
MusicBrainz Tagger | My Custom Nodes | Now Playing Art Node | Play History & Stats
Right Click for Reports | Right Click for Scripts | Right Click for Web | Stop After Current
WebNodes
nynaevelan
Posts: 5559
Joined: Wed Feb 07, 2007 11:07 pm
Location: New Jersey, USA
Contact:

Post by nynaevelan »

Ok we're back in business, thanks for the quick fix. :P

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
sbondi

New release with powerful custom captions

Post by sbondi »

Just uploaded a new release with powerful custom captions, so now the caption can hold custom counts and values with custom text. I have added "easyCaption" with an initial set, but there are no limits - display average song length per node, disk space used per node, total minutes per node, average bitrate per node, etc. I will add more easyCaptions after I get some feedback on what is useful.

IMPORTANT NOTE: This release requires the following changes to any existing .INI files:

1. "level": remove ":DESC" and add new next line as "levelSortOrder=descending"
2. "trackCriteria": rename all vbscript markers from "#VB#" to "[vb]" (case sensitive)
3. "displayTrackCount", "displayNodeCount", and "ignoreTopLevelCounts": replace with:
-- "customCaption=..." -or-
-- "easyCaption=WithTrackCount" -or-
-- "easyCaption=WithNodeAndTrackCounts" -or-
-- "levelEasyCaption=WithTrackCount" under the highest level to ignore top node counts

If you send me a Private Message with your .INI, I will quickly convert it for you.
spacefish
Posts: 1427
Joined: Mon Jan 14, 2008 7:21 am
Location: Denmark

Re: New release with powerful custom captions

Post by spacefish »

sbondi wrote:Just uploaded a new release with powerful custom captions, so now the caption can hold custom counts and values with custom text.
Sounds cool!
If you send me a Private Message with your .INI, I will quickly convert it for you.
Wow, you are officially awesome. Thanks so much. :D
Image
MM Gold 3.0.3.1183 : Vista HP SP1 (x86) : Zen Stone (2GB)
Zekton: An original MM3 skin by Eyal.
Scripts in Use: Add/Remove PlayStat | Auto Album DJ | AutoRateAccurate | Backup
Case & Leading Zero Fixer | Classification & Genre Changer | Clean Scripts.ini | Clear
Field | Custom Report | Discogs Auto-Tag Web Search | Forget Crossfade | Invert
Selection/Select None | Last 100... | Lyricator | Lyrics to Instrumental | MonkeyRok
MusicBrainz Tagger | My Custom Nodes | Now Playing Art Node | Play History & Stats
Right Click for Reports | Right Click for Scripts | Right Click for Web | Stop After Current
WebNodes
sbondi

Even more power!

Post by sbondi »

With the new design of the script and power of SQLite, it is still pretty easy to quickly add lots of power while carefully avoiding performance degradation!

Two powerful things added:

1. You can now append "customCaptions" and "easyCaptions" (like "trackCriteria" and "easyCriteria") to create many combinations of "easyCaptions" to suit your needs; for example:

easyCaption=WithTrackCount
easyCaption=AndAverageSongLength
easyCaption=AndTotalDiskSpaceUsed

2. You can now insert a new sort criteria for a level, instead of just the level value (descending or ascending): levelCustomSort and levelEasySort (none defined yet).

-----

In addition,
-- added "Bitrate" level
-- fixed "Rating" level issue with empty nodes
-- added more "easyCaptions" (for "And..." appending)
-- added option to "refreshCurrentNode"

Also, see [IMPORTANT] regarding consistency changes that may affect any existing .INI files

Enjoy!

Steve
sbondi

Patch for an exception in release

Post by sbondi »

Posted an update to the release for an exception that Nyn found with DateAdded and LastTimePlayed levels.
sbondi

Performance research

Post by sbondi »

Nyn has noticed significantly slower performance when using the custom/easyCaption and/or the levelCustomSort in various situations. I will research these cases and see what can be done.

However, these features do have to be used carefully. As noted in the Readme, if you have lots of tracks and they go unfiltered into a level that will produce lots of nodes (hundred/thousands) and you have included counts on them (especially nodeCounts), then this will have unreasonable performance. In addition, the Artist/PrimaryArtist/GuestArtist fields come with a bit of overhead, so avoid producing lots of nodes for those levels.

Rule of thumb: try it first, and if it is slow (for me, more than 2 seconds), then reconsider nodeCounts and other customCaption features. Also, consider using the AlbumArtist field instead of the Artist field in these "slow" cases.
sbondi

Major performance improvements for customCaptions ...

Post by sbondi »

... I found lots of redundancy in the customCaption design that was just overkill designed to fully support session refreshes.

In the next day or so, I will release an update with significant performance improvements for customCaptions. Thanks for your patience.
sbondi

New performance release!

Post by sbondi »

Nyn tested it, and it's a whole lot faster! From 6 minutes for some customCaptions to a few seconds (most things under a second)!

Sorry for some more .INI generalizations/rewording, but there should not be any more of these after this release. As a consolation, Private Message me your .INI file and I will quickly convert it for you.
cadmanmeg
Posts: 309
Joined: Sun Nov 19, 2006 5:28 am

Post by cadmanmeg »

First version I downloaded this ran fine, but now, I get a ton of errors upon starting MM3. Things like:

unidentified node parameter - level 1
unidentified node parameter - level 2
unidentified node parameter - display node count
etc....

Am using the ini file you provided upon another users request so I am not sure if that is my issue or not. Copied and saved it as mycustomnodes.vbs and then put that vbs file and the ini file into the auto folder of MM3.

Anyone else have this issue? What could be causing this?

Thanks much.
cadmanmeg
Posts: 309
Joined: Sun Nov 19, 2006 5:28 am

Post by cadmanmeg »

This has happened with the most current version as well.
nynaevelan
Posts: 5559
Joined: Wed Feb 07, 2007 11:07 pm
Location: New Jersey, USA
Contact:

Post by nynaevelan »

It sounds like you are using an earlier ini file with a later vbs file. You may have some features in your ini that have been changed with the latest code. Your best bet is to PM Sboni your ini file, he'll quickly convert over you nodes to the new format. Or you can look through the Readme file on the first page, it outlines all the changes to the format.

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
sbondi

Post by sbondi »

cadmanmeg wrote:First version I downloaded this ran fine, but now, I get a ton of errors upon starting MM3. Things like:

unidentified node parameter - level 1
unidentified node parameter - level 2
unidentified node parameter - display node count
etc....

Am using the ini file you provided upon another users request so I am not sure if that is my issue or not. Copied and saved it as mycustomnodes.vbs and then put that vbs file and the ini file into the auto folder of MM3.

Anyone else have this issue? What could be causing this?

Thanks much.
Nyn, I believe cadmanmeg is using the version of your .INI file that you posted. It would be great if you could post your latest .INI file (with the last changes) for cadmanmeg and everyone else's benefit. Thanks :D
nynaevelan
Posts: 5559
Joined: Wed Feb 07, 2007 11:07 pm
Location: New Jersey, USA
Contact:

Post by nynaevelan »

Here is a copy of my latest ini using the latest version of the script, please ignore the "Testing Purposes" node because that is the one I use when I want to create a new node:

Code: Select all

[Options] 
unknownCaption="[Unknown]" 
defaulticon="Title" 
defaultsortLike="None" 
refreshWithTracksConvertedOrRipped=0
refreshWithTracksChanged=0
refreshCurrentNode=1

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

[Library] 
expandExisting=1
checkExistingChildren=1 

[Files to Edit] 
expandExisting=0
checkExistingChildren=1 

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

[Duplicate Titles] 
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=1 

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

[Personal Node] 
icon=Mood
expandAtStartup=1 

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

[Testing Purposes] 
icon=CDCase 
sortLike=Title 
level=Playlist
level=Album
LevelEasyCaption=BaseCaptionAndTrackCount
level=Artist
trackCriteria="(ID <> '')" 
parent="Personal Node" 

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

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

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

[Added Today] 
icon=Quality 
sortLike=Genre 
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 
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 
level=Artist
levelEasyCaption=BaseCaptionAndNodeCount
level=Album
easyCriteria=addedwithinthelast7days
parent="Additions" 

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

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

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

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

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

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

[Compilation Albums] 
icon=MultipleArtistAlbum
sortLike=Title
level=Genre
trackCriteria="(GroupDesc <> '')" 
parent="Album Info"

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

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

[Featured On 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" 

[Ratings] 
icon=Rating
sortLike=Title
easyCaption=BaseCaptionAndTrackCount
level=Rating
LevelEasyCaption=BaseCaptionAndTrackCount
level=Genre
LevelEasyCaption=BaseCaption
levelSortOrder=descending
trackCriteria="((round(Rating/10)*0.5) > 0)" 
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"

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

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

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

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

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

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

[Missing Involved People] 
icon=Artist 
sortLike=Artist 
easyCaption=BaseCaptionAndNodeCount
hideifempty=1 
refresh=1
trackCriteria="(InvolvedPeople = '')" 
parent="Edits" 

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

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

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

[Play Info] 
icon=NowPlaying
parent="Personal Node" 

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

[New For Review] 
icon=Preview
sortLike=Title 
easyCaption=BaseCaptionAndTrackCount
level=Genre
level=Title 
trackCriteria="((CAST([vb]CDbl(Now)[vb] AS Integer)) - CAST(DateAdded AS Integer) <= 5 AND PlayCounter=0)" 
trackCriteria="(Genre <> 'Audiobook')"
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 Today] 
icon=MusicCD
sortLike=Genre 
level=Genre 
levelEasyCaption=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=Genre
easyCriteria=playedinthelast7days
parent="Play Info" 

[Played in Last 7 Days/Least Played] 
icon=Album
sortLike=Album
easyCaption=BaseCaptionAndTrackCount
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
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" 

[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 > 5)"
parent="Play Info" 

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

[Playlist Info] 
icon=Playlist 
parent="Personal Node" 

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

[Songs In Playlist] 
icon=Quality 
sortLike=Title 
level=Artist 
LevelCustomCaption="<caption> (<trackcount+>)"
level=Playlist 
LevelEasyCaption=BaseCaption
trackCriteria="exists (select * from PlaylistSongs where IDSong=songs.ID)" 
parent="Playlist Info" 

[Playlist Totals] 
icon=Occasion
sortLike=Title 
level=Playlist 
LevelCustomCaption="<caption> (<trackcount+> 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" 

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

;------------------------------------------------------------------------ 
[Genre Played Info] 
icon=Genre
parent="Personal Node" 

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

[HipHop Ratings] 
icon=Rating
sortLike=Title
easyCaption=BaseCaptionAndTrackCount
level=Rating
levelSortOrder=descending
trackCriteria="(PlayCounter > 0 AND Genre = 'HipHop' AND (round(Rating/10)*0.5) > 2)" 
parent="Genre Played Info" 

[Pop Ratings] 
icon=Occasion
sortLike=Title
easyCaption=BaseCaptionAndTrackCount
level=Rating
levelSortOrder=descending
trackCriteria="(PlayCounter > 0 AND Genre = 'Pop' AND (round(Rating/10)*0.5) > 2)" 
parent="Genre Played Info" 

[Slow Jam Ratings] 
icon=Mood
sortLike=Title
easyCaption=BaseCaptionAndTrackCount
level=Rating
levelSortOrder=descending
trackCriteria="(PlayCounter > 0 AND Genre = 'Slow Jams' AND (round(Rating/10)*0.5) > 2)" 
parent="Genre Played Info" 

[Soundtrack Ratings] 
icon=Quality
sortLike=Title
easyCaption=BaseCaptionAndTrackCount
level=Rating
levelSortOrder=descending
trackCriteria="(PlayCounter > 0 AND Genre = 'Soundtracks' AND (round(Rating/10)*0.5) > 2)" 
parent="Genre Played Info" 

[TV Tribute Ratings] 
icon=CD 
sortLike=Title
easyCaption=BaseCaptionAndTrackCount
level=Rating
levelSortOrder=descending
trackCriteria="(PlayCounter > 0 AND Genre = 'TV Tributes' AND (round(Rating/10)*0.5) > 2)" 
parent="Genre Played Info" 
Every since I started using this script I no longer use the MM nodes except for my specific Files To Edit Nodes, but then I never used them anyway. With this script and MM3's Filter Views, I see MM the way I want to see it. :P 8) :P

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
sbondi

Minor update

Post by sbondi »

Just posted a minor update to fix the only outstanding bug reported: Playlist, Artist, PrimaryArtist, and GuestArtist levels were not using levelSortOrder.
Post Reply