by ZvezdanD » Mon Jan 18, 2021 2:04 am
by morrigan777 » Sun Jan 17, 2021 10:34 am
by ZvezdanD » Sun Jan 17, 2021 12:32 am
by benfucius » Sat Jan 16, 2021 7:45 pm
ZvezdanD wrote: ↑Sat Jan 16, 2021 12:15 pm I will replace it with Upper in the next version and you will not have out-of-memory errors anymore. The only issue will be if you use any non-ANSI character in Split By, Left Of, Right Of or Right Until.
by ZvezdanD » Sat Jan 16, 2021 12:15 pm
benfucius wrote: ↑Fri Jan 15, 2021 6:30 pm I've made a number of optimizations to my masks across the past few days, things are working much better now. I also came up with a workaround to the issue in my first post a few days ago.
by benfucius » Fri Jan 15, 2021 6:30 pm
Code: Select all
Discogs|Child of:Playlists|Show tracks:No\<Path|Exclusive right of:Library\|Split by:\|Split Mode:Single Part|Split part:2|Filter:<Folder> Like '% @%'>
by ZvezdanD » Fri Jan 15, 2021 3:45 pm
benfucius wrote: ↑Fri Jan 15, 2021 2:50 pm I am noticing a huge difference when using "Single Part" vs using "String Part". I can create a mask as a Magic Node, or as a child of Playlists, doesn't matter where, as "Single Part" and the RAM of MediaMonkey rarely grows above 10%, never above 1gb. However, if I change that same mask, only the very last node change Single to String Part, leaving everything else the same, and within a minute or two MediaMonkey will have consumed all of it's RAM and crash/freeze. (Ideally I would use String Part on the last subnode of my masks, so that I can utilize Sort, which cannot be done with Single Part).
by benfucius » Fri Jan 15, 2021 2:50 pm
ZvezdanD wrote: ↑Thu Jan 14, 2021 4:43 am Anyway, I think that I managed to reproduce the issue and I will see if I could implement a workaround for it.
by benfucius » Thu Jan 14, 2021 6:16 pm
ZvezdanD wrote: ↑Thu Jan 14, 2021 3:53 pm Well, in such case I suppose it would be better to use Folder instead of the Path field. You could try the predefined mask "Drives & Folders (string part)": replace Path with Folder and, if you don't want Sort/Stat, you could replace Split Mode:String Part with Split Mode:Single Part to get faster nodes.
Whole Library|Icon:Top level|Child of:Playlists|Position:Child\<Path|Unknown:No|Exclusive right of:Downloads\|Right until:\>\<Path|Split by:\|Split Mode:Single Part|Split part:5>\<Folder|Split by:\|Split Mode:Single Part|Split part:6>\<Folder|Split by:\|Split Mode:Single Part|Split part:7>
by ZvezdanD » Thu Jan 14, 2021 3:53 pm
benfucius wrote: ↑Thu Jan 14, 2021 1:54 pm I want to restrict the nodes to only Folders, to exclude Files as nodes. Any idea how to use any functions like Split, etc to remedy this?
by benfucius » Thu Jan 14, 2021 1:54 pm
<Path|Unknown:No|Exclusive right of:(path specific)|Split by:\|Split Mode:String Part|Split part:1,2,3,4,5 (depending on node level)
by benfucius » Thu Jan 14, 2021 10:56 am
ZvezdanD wrote: ↑Thu Jan 14, 2021 4:43 am Thanks for the detailed report. My suggestions was intended just to locate the source of the problem, not to force you to use them permanently. Anyway, I think that I managed to reproduce the issue and I will see if I could implement a workaround for it.
By the way, the Magic Nodes' Path field is almost the same as the database field from the Songs table, with the addition of the drive letter taken from the Medias table. However, the MN's Folder field doesn't have a corresponding database field, but it is parsed from the Path field. So, when you apply any of the parse qualifiers as Right Of on it, you are basically double parsing the same data, which is why it is slower than Path.
by ZvezdanD » Thu Jan 14, 2021 4:43 am
benfucius wrote: ↑Wed Jan 13, 2021 12:49 pm I have just tried this as a Magic Node instead of a Playlist, and it does work without MM crashing. I expected this. However, my goal is to create this as a Playlist,
by benfucius » Wed Jan 13, 2021 12:49 pm
Did you try the same mask outside of the Playlists branch, e.g. inside the Magic Nodes folder?
Why are you using the Filter string on the local level of mask (for the HAVING part of the query), when it is intended for the WHERE part of the query? Did you try the same Filter to apply on the global level of mask?
In the first post you said that you have two local levels, one for artist and another for album, but the mask contains only the first local level. Do you have the same issue with this mask?
In the first post you said that you are using Right Until, but the mask has Exclusive Right Until. Do you have the same issue with both of them? What happens if you use Exclusive Right Of instead of Right Of?
What happens if you replace '%@~%' in the Filter with '%@@~%' (since the "@" is an escape character for the SQLite LIKE operator)?
Why do you use filtering by "@~" in the Filter when it is already applied by the Exclusive Right Until? The Exclusive Right Until (and all other parsing qualifiers) has the effect to the all level of the mask, not only on the level where it is specified.
What happens if you use Path instead of Folder?
:[Discogs]:|Icon:31|Show tracks:No|Filter:<Path> Like 'E:\Music\Library =\%' AND <Path> Like '%@~%'|Child of:Playlists|Position:Child\<Path|Unknown:No|Right of:+\|Exclusive right until:@~\>\<Path|Unknown:No|Right until:\|Right of:@~\>
by ZvezdanD » Wed Jan 13, 2021 2:32 am
benfucius wrote: ↑Tue Jan 12, 2021 5:37 pm Mask:
Top