Magic Nodes 4.2 w/ 380 masks & real GUI (2011-07-01)[MM2+]

Download and get help for different MediaMonkey Addons.

Moderators: Peke, Gurus

ZvezdanD
Posts: 3097
Joined: Thu Jun 08, 2006 7:40 pm

Post by ZvezdanD » Fri Jan 11, 2008 8:21 am

renowden wrote:I have corrected the PDF and uploaded a second draft.
I suggest you to put version number of the document on its begin, maybe after your name.
The TOC is a bit rough as I can't figure out how to do it properly in OpenOffice!
It is OK, but I suggest you to make each chapter name in Contents to be a link to corresponding chapter. Also, each chapter should begin from the top of page (e.g. on a new page). Font size for titles should be different depending of the chapter level, e.g. Introduction could be 24 pt, and Getting Started could be 18 pt. Acknowledgements section should be after Contents or its page should be numbered by roman numbers. Contents page should be obligately numbered by roman number, e.g. first page after it should start from 1.

There is some more comments:
- "Album Artist with Album - Album Artist followed by Album in parentheses" - Album is not inside of parentheses but after dash ("-"), please remove "in parenthesis".

- "Time since last played - A wordy description" - users should know if this field is used in Filter qualifier it could take a value from 0 to 5: 0 (Less than an hour), 1 (Between an hour and a day), 2 (Between a day and a week), 3 (Between a week and a month), 4 (Between a month and a year) and 5 (Over a year or never played).

- "Show tracks:yes|no" for local qualifier, please remove "Unlike the Global Qualifier, this does work in MM3".

- Top qualifier should be before Trim in table.

- You should write that Trim qualifier could take a negative values in which case it trims characters from the right side of fields.

- Path to INI file could be fully written as "x:\Documents and Settings\<your_name>\Local Settings\Application Data\MediaMonkey\) where x is system drive, blah, blah".
I feel we need to say a bit more about SQL filters but I don't know enough about it yet - perhaps a few more simple but informative examples would do the job. I think we also need to say a bit more about filter expressions and their syntax - or, in both cases, refer people to some external document for the parser if one is available.
Yes, I agree about examples as I wrote in the previous message to paul_leclerc. Regarding to SQL... Well, this is relatively complex area which couldn't be covered in short. You need at least 10x more pages than this manual has. If you don't have enough knowledge about SQL language, maybe someone else could join in writing of this manual. If you want to learn about SQL, you could take a look on reference page of SQLite: http://www.sqlite.org/lang.html, especially on SELECT (http://www.sqlite.org/lang_select.html) and expression parts (http://www.sqlite.org/lang_expr.html).

Here are two most important thing about Filter and SQL Filter qualifiers:

1. text which you write after SQL Filter: part of SQL Filter qualifier should be exactly same as it is in WHERE part of SELECT queries (take a look on the mentioned Web page).

2. SQL filter qualifier has similar syntax as Filter qualifier. Difference is: SQL filter needs to specify table.field names as it is used in SQL queries, but Filter qualifier accepts Magic Nodes names for MM fields. For example, if you want to use SQL Filter you could write Songs.Artist = 'Pink Floyd', and if you want to use Filter qualifier you could write <Artist> = 'Pink Floyd'. Filter qualifier syntax is in many cases much shorter than SQL Filter syntax and in some cases works with both MM2 and MM3, when same SQL Filter don't (for example, Songs.AlbumArtist = 'Pink Floyd' works only in MM3, but <Album Artist> = 'Pink Floyd' works in both MM2 and MM3).

If you want to know which tables contain MM database and which fields contain some table, you could take some appropriate database viewer/editor. For SQLite I recommend SQLite Spy (http://www.yunqa.de/delphi/doku.php/pro ... espy/index)
I had to dig the stuff about Left of: and Right of: out of the script as I could see no mention of it elsewhere.
Left of and Right of could be used to parse some text field and to display only left or right parts of it. For example, if you have Genre field with two possible values separated with "-", e.g. "Rock-Blues": Left of:- will return Rock and Right of:- will return Blues. This could be useful in MM2, but in MM3 there is much better solution using multi-item possibility of this genre with ";" as separator. In MM3 this qualifiers could be used for those fields which are not multi-items, as Custom.
Feel free to PM me
OK, but maybe we should continue in this place with this to enable others to join with suggestions and comments.
I was wondering if PDF was the right format or if it should be coded up as HTML?
It is OK to me, but I suggest some format which don't need some external program, only those which are already part of Windows: RTF, HTML. CHM. I personally prefer CHM, because I want to incorporate this text as help file, as I wrote before, but if you don't know how to do this I could convert it by myself when I find enough time.

gege
Posts: 862
Joined: Tue Sep 05, 2006 2:10 pm
Location: Brazil

Post by gege » Fri Jan 11, 2008 2:19 pm

ZvezdanD wrote:
The TOC is a bit rough as I can't figure out how to do it properly in OpenOffice!
It is OK, but I suggest you to make each chapter name in Contents to be a link to corresponding chapter. Also, each chapter should begin from the top of page (e.g. on a new page). Font size for titles should be different depending of the chapter level, e.g. Introduction could be 24 pt, and Getting Started could be 18 pt. Acknowledgements section should be after Contents or its page should be numbered by roman numbers. Contents page should be obligately numbered by roman number, e.g. first page after it should start from 1.
I've got a good expertise in OpenOffice (including working with Styles) and I can help with that.
Maybe we can let renowden develop the contents a little more without worrying with formatting and TOC, then he can send me the ODT file and I'll do all the formatting afterwards.

That do you guys think about it?

ZvezdanD
Posts: 3097
Joined: Thu Jun 08, 2006 7:40 pm

Post by ZvezdanD » Fri Jan 11, 2008 2:45 pm

gege wrote:That do you guys think about it?
Thanks for your offer. Let we see what Rick thinks about this. I just thought how the document should look for better understanding and readability. Anyway, it is already very valuable and I am really grateful to Rick for this.

ZvezdanD
Posts: 3097
Joined: Thu Jun 08, 2006 7:40 pm

Post by ZvezdanD » Sat Jan 12, 2008 9:20 am

Teknojnky wrote:well I fix the library expanded and startup node via tweakmonkey...
There is a new revision of the script (1.6.2.2). It has partially resolved a problem with expanding a Magic node which was last selected on exit in MM3. I don't get it what is happening with MM3 - sometimes during start up it select last Magic node and sometimes don't (i.e. it select Library node). If it select Magic node, it could be on any level. Anyway, I added check if MM3 successfully selected Magic node, and if it didn't - the script try to select at least Magic node which was on the first level.

If you do not want selecting of Magic Nodes during start up at all, you could use TweakMonkey, check Node to be selected at startup and choose Library (or some another node). Please, let me know if this works correctly for you.

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

Post by nynaevelan » Sat Jan 12, 2008 10:39 am

HI ZvezdanD:

I was wondering if you could tell me if it is possible to create subnodes in order to put a group of nodes into. For instance, if I have three nodes related to play counts, could I create a subnode called Play Information, and then have the three nodes inside this subnode? Does this make sense to you? I only ask because I have over 20 MN's and it getting cumbersome to wade through the ones I need when I need them. I would like to add a few more but I am avoiding it because my MNs are getting bloated.

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

renowden
Posts: 37
Joined: Wed Dec 12, 2007 3:55 pm
Location: Bristol, England
Contact:

Another day, another draft

Post by renowden » Sat Jan 12, 2008 12:04 pm

Draft 3 can be found in the same place as before. I have incorporated almost all the suggestions from Zvezdan

It now starts a new page for a chapter, has a footer containing page numbers, A draft version number, a location where to get the latest version. The headers always were different sizes but only one point apart so I have made it a bit more pronounced.

I have added a brief section about SQL Filter expressions but otherwise referred them to the fine manual you mentioned. It is not our place to be teaching SQL :)

I will take up gege's offer of fine tuning the doc format when we have finished unless I discover how to do a few things in the mean time. I actually started this in MS Office at work in my lunch break but don't have that software at home hence the use of OOo.

PDF is pretty wide spread so I will stick with that I think. I don't know CHM and HTML will be tedious.
Cheers,

Rick Parsons

ZvezdanD
Posts: 3097
Joined: Thu Jun 08, 2006 7:40 pm

Post by ZvezdanD » Sat Jan 12, 2008 12:27 pm

nynaevelan wrote:if it is possible to create subnodes in order to put a group of nodes into.
Currently, it is not possible. I know, this is a real problem, especially to me which I need to test all possible nodes. I need more then 50, but Edit/Create MN sub-menu in this case start to scroll and covers full screen.

I have a plan to incorporate this in the next major upgrade, but maybe I will do it somewhat later (first of all, I should finish a work on the user interface).

BTW, you could put some Magic Nodes as a sub-nodes of the Library branch using the Child of qualifier. For example, the next mask create the Lyricist node immediately after the Artist node:

Code: Select all

Lyricist|Child of:Artist\<Lyricist>

ZvezdanD
Posts: 3097
Joined: Thu Jun 08, 2006 7:40 pm

Re: Another day, another draft

Post by ZvezdanD » Sat Jan 12, 2008 1:53 pm

renowden wrote:I have added a brief section about SQL Filter expressions but otherwise referred them to the fine manual you mentioned. It is not our place to be teaching SQL :)
I agree with you. Unfortunately, I made one big mistake in my description. From v1.6 version (when I introduced requirement for enclosing fields between angle brackets) SQL Filter is just a subset of Filter qualifier. So, your sentence how "Filter expressions ... are not as powerful" is not true. What this means? Every expression which you could write after SQL Filter qualifier could be written after Filter qualifier as well, but this is not true in opposite direction. For example: Songs.Artist = 'Pink Floyd' could be written as expression for both Filter and SQL Filter qualifiers, but <Artist> = 'Pink Floyd' could be written only after Filter qualifier. In another words, SQL Filter only accepts SQL syntax, but Filter qualifier accepts SQL and Magic Nodes' syntax for field names, even in the same expression (for example, Filter:Songs.Artist = 'Pink Floyd' AND <Composer> = 'Rodger Waters' is perfectly legal).

Well, maybe I will remove SQL Filter qualifier from some future version of the script as redundant. Currently, I keep it back only because of compatibility.

Just few more comments:
- Only "Album Artist with Album" should have comment with "separated by a hyphen", not "Album with Album Artist" from which you shouldn't removed parentheses. Here is a result using the first field: Album Artist - Album, and here is a result of the second: Album (Album Artist).

- For "Time since last played", instead of "...but if used in a filter, a numeric values is returned:" should be "...but when in a filter, a numeric values should be used:". Here is an example (albums are returned, not numeric values):

Code: Select all

My album node|Filter:<Time since last played> = 5\<Album>

bob61
Posts: 157
Joined: Sun Dec 09, 2007 4:52 pm

Post by bob61 » Sat Jan 12, 2008 1:53 pm

I had to fly out of town for family emergency. Just getting chance to connect up here and see lots of progress being made in short time on the documentation for MN. Just looked over the document, excellent job on getting lots of details documented. Having just started to look over the details, two things struck me. One, appears there is a "rush" to show features early on in the document. Example:
Now, perhaps you want to organize by conductor
lyricist node. However, lyricist is one of many
use any of those fields to organize your tracks.
node:
Lyricist|child of:artist\<lyricist|
tracks:10>\<lyricist>\<album>
This is only on third page of the document (2nd page of the real document when you remove the TOC and such). Seems to try to dive in deep without building a solid base of understanding of functionality. Including "child" now without previous explanation or usage just, in my reading, introduces several new functions - this time along with tracks. From a casual user view this would confuse as to what is being presented - just my thoughts, please don't take this as personal attack or anything.

Similarly, just an example or two later there is this:
You may have tracks in many different formats (mp3, wma, ogg, etc),
bitrates and sampling rates, some of them with VBR (Variable Bit Rate)
many situations where being able to quickly browse your files by encoding
notice that although you can do an advanced search by bitrate, you can't
or VBR. Here's how a typical encoding node would look like:
Encoding|shortcut:Ctrl+1\<format>\<bitrate>\<VBR>
Here again is a mix of introducing two new features/functions. Mixing the usage of "shortcut" along with examples of how to use fields other than "people" is again feeling a rush to list functions. I'd suggest here just giving the example of "VBR" and then right after this giving an example of how you can include shortcut keys within a node definition.

One other comment, there is statement made in the document
However, lyricist is one of many available fields in Magic Nodes, and you can
use any of those fields to organize your tracks.
I would suggest that you make reference that the list of fields available is shown later in the document and include page reference once document is finalized.

Again great work on this. Looking forward to spending more time later this weekend catching up here and reading the document in it's entirety.

renowden
Posts: 37
Joined: Wed Dec 12, 2007 3:55 pm
Location: Bristol, England
Contact:

Post by renowden » Sat Jan 12, 2008 2:18 pm

I have taken on board the last comments and have also done a lot of work proof reading and styling today. I won't upload a new draft just yet but will allow a bit of time for comments to come in - but note that I have already spotted quite a lot of silly detail, style and content errors so am really looking for errors of fact and bold content changes/additions now.

P.S. the Introduction chapter is taken, almost verbatim, from Pablo's original manual and I found that this was quite good to get me started depite introducing new concepts fast. I felt that slowing things down would make the document tediously long for the level of inteligence of the average reader/user here.

I have managed to get a decent automatic table of contents to work but can't get it to click link to the relevant chapter so if somone can quickly explain how to do that in OOo which will export into a PDF I would appreciate it.
Cheers,

Rick Parsons

Inspired
Posts: 60
Joined: Mon May 14, 2007 3:27 am
Location: New Zealand
Contact:

Invalid Character error #1032

Post by Inspired » Sat Jan 12, 2008 2:35 pm

Hi there,
Thanks for all your great work on MagicNodes.

I had version 1.5.0.2 installed and I was getting an Invalid Character error. I commented out that section of code and it went away.

I've now installed 1.6.2.2 and the error still occurs. It's line 1780, column 16.
The code relates to:
Sub CreateExternalNodes()

The line of code is:
CreateCustomNode Eval("SDB.MainTree.Node_" & parentNode), 1, _

Does anyone else experience this?
It's error #1032.

The script does not run as a result. I shall comment out this function for now, but would like to know why I might be getting this error.

Regards,

Jonathan
Got a Sansa s2xx? Sync instructions at http://www.mediamonkey.com/forum/viewtopic.php?t=18535

Want to filter your collection easily? Use MagicNodes
http://www.mediamonkey.com/forum/viewtopic.php?t=3358
Examples here: http://magicnodes.110mb.com/examples.htm

Seen The Secret? Liked it? Thought it sucked?
Check out my eBook at http://www.livingthesecret.tv

ZvezdanD
Posts: 3097
Joined: Thu Jun 08, 2006 7:40 pm

Re: Invalid Character error #1032

Post by ZvezdanD » Sat Jan 12, 2008 5:13 pm

Inspired wrote:I shall comment out this function for now, but would like to know why I might be getting this error.
If you comment that line, you won't be able to create Magic nodes in locations other than Magic Nodes branch. For example, you could not put them in Library branch or after My Computer.

As I said before (http://www.mediamonkey.com/forum/viewto ... 907#117907), you probably have a problem with MediaMonkey.INI file.

Send me the [CustomNodeMasks] section of your INI file if you want that I resolve this problem.

renowden
Posts: 37
Joined: Wed Dec 12, 2007 3:55 pm
Location: Bristol, England
Contact:

Post by renowden » Sun Jan 13, 2008 3:53 am

A couple of clarifications for the manual I need.

I have said against custom fields that you need to beware of unexpected results or errors if your name clashes with and existing field name or other reserved word. I suspect that the reserved word problem is no longer an issue since the fields have been enclosed in <angle brackets>. Correct?

I have a remark that you should try not to leave unnecesary spaces in masks - what are the rules? I suspect that they are

No spaces are permitted in masks except
. Where Fields or Qualifiers contain spaces in which cae they should be single plain spaces
. In filter expressions where spaces can be added for readability.

Correct?

I am not sure of the exact syntax for the arguments for the Child of: qualifier - are they closed up as I have shown or are there space in theer? e.g. MyComputer or My Computer?
Cheers,

Rick Parsons

Big_Berny
Posts: 1784
Joined: Mon Nov 28, 2005 11:55 am
Location: Switzerland
Contact:

Post by Big_Berny » Sun Jan 13, 2008 4:18 am

Thils ndoe doesn't seem to work here:

Code: Select all

Best of 90s|filter:rating>=4 and year between 1990 and 1999\<artist>
Any ideas?
Image
Scripts in use: Genre Finder / Last.fm DJ / Magic Nodes / AutoRateAccurate / Last.FM Node
Skins in use: ZuneSkin SP / Eclipse SP
AutoRateAccurate 3.0.0 (New) - Rates all your songs in less than 5 seconds!
About me: icoaching - internet | marketing | design

Bex
Posts: 6316
Joined: Fri May 21, 2004 5:44 am
Location: Sweden

Post by Bex » Sun Jan 13, 2008 6:53 am

From the first post. :wink:

- Field names should be surrounded with < and > when used inside of the Filter qualifier.
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

Post Reply