Easy/fast nested nodes & FilesToEdit hiding (09Nov08)
Works now! Thank you!
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
-
- Posts: 5559
- Joined: Wed Feb 07, 2007 11:07 pm
- Location: New Jersey, USA
- Contact:
Ok we're back in business, thanks for the quick fix.
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
Link to Favorite Scripts/Skins
Join Dropbox, the online site to share your files
New release with powerful custom captions
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.
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.
Re: New release with powerful custom captions
Sounds cool!sbondi wrote:Just uploaded a new release with powerful custom captions, so now the caption can hold custom counts and values with custom text.
Wow, you are officially awesome. Thanks so much.If you send me a Private Message with your .INI, I will quickly convert it for you.
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
Even more power!
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
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
Patch for an exception in release
Posted an update to the release for an exception that Nyn found with DateAdded and LastTimePlayed levels.
Performance research
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.
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.
Major performance improvements for customCaptions ...
... 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.
In the next day or so, I will release an update with significant performance improvements for customCaptions. Thanks for your patience.
New performance release!
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.
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.
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.
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.
-
- Posts: 5559
- Joined: Wed Feb 07, 2007 11:07 pm
- Location: New Jersey, USA
- Contact:
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
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
Link to Favorite Scripts/Skins
Join Dropbox, the online site to share your files
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. Thankscadmanmeg 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.
-
- Posts: 5559
- Joined: Wed Feb 07, 2007 11:07 pm
- Location: New Jersey, USA
- Contact:
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:
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.
Nyn
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"
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
Link to Favorite Scripts/Skins
Join Dropbox, the online site to share your files
Minor update
Just posted a minor update to fix the only outstanding bug reported: Playlist, Artist, PrimaryArtist, and GuestArtist levels were not using levelSortOrder.