NoteWorthy Composer Forum

Forums => Tips & Tricks => User Tools => Topic started by: Warren Porter on 2013-01-18 05:20 pm

Title: Fake and Context lines
Post by: Warren Porter on 2013-01-18 05:20 pm
I was experimenting with a copy of Rick's stats.js and noted two new objects that weren't found when a whole staff was copied to the clipboard.  On it's staff via the F2 key, the instrument (acoustic guitar) had a -12 specified for transposition.
Code: [Select · Download]
/*
NWC2 User Tool, Ver 1.0 - Rick G.  Warren's test version
JScript version of nwswStatisticsReport.php
&Command: WScript Scripts\Stats.js
*/

var i, mark = new Date(), s;
/*
objArgs = WScript.Arguments
WScript.Echo("Argument count = " + WScript.Arguments.Count());
for (i=0; i<objArgs.length; i++)
{
    WScript.Echo(objArgs(i))
}
 */
// convert notation clip text to an array of lines
var stdin = WScript.StdIn.ReadAll().split("\r\n");
// init these so they will always report
var d = {"Total Items":0, "Clef":0, "Key":0, "TimeSig":0, "Bar":0, "Note":0, "Chord":0};

// count objects. non-objects are counted as 'undefined'

for (i in stdin){ // i = array index (integer)
s = stdin[i].split("|")[1]; // objType or undefined
if ((s == "Fake") || (s == "Context")) WScript.echo(i + " " + stdin[i]);  // new line
d[s] = (0 | d[s]) + 1; // increment, create keys as needed
}
delete d.undefined; s = ""; // cleanup
for (i in d) d["Total Items"] += d[i];
for (i in d) s += ("    " + d[i] + " ").slice(-6) + i + "\n";

// report to STDOUT, elapsed time to STDERR
WScript.StdOut.Write("Statistics Report:\n\n" + s);
WScript.StdErr.Write("The STDOUT file contains the report.\n" +
  ((new Date() - mark) / 1000).toFixed(2) + " seconds\n");
WScript.Quit(99); // show STDOUT page to user
Does anyone have any insight to these lines (they occurred just after the header) or others?  The Fake line went away if there was no transposition.
Title: Re: Fake and Context lines
Post by: Rick G. on 2013-01-18 11:48 pm
These will get you started:
An advanced search using Search for:fake  by User:NoteW*
will find most of the discussion.

For an example of how this information is used, see: nwsw_PitchMod.php
Title: Re: Fake and Context lines
Post by: Warren Porter on 2013-01-19 01:08 am

Many thanks.

FWIW, I've found parameters, arguments, or answers to prompts can't contain a space unless it's in quotes.  If a space is there a new one is created and allowing it would just create another layer of complexity in trying to read it.
Title: Re: Fake and Context lines
Post by: Rick G. on 2013-01-19 01:54 am
FWIW, I've found parameters, arguments, or answers to prompts can't contain a space unless it's in quotes.
This behavior for command line parameters (arguments) goes back to the early days of DOS (and probably CP/M).
I did not know that it applied to prompts. Thanks for the info. I'll need to run some tests to decide if I think is a feature or a bug :)
Title: Re: Fake and Context lines
Post by: Warren Porter on 2013-01-19 03:09 am
This behavior for command line parameters (arguments) goes back to the early days of DOS (and probably CP/M).
I did not know that it applied to prompts. Thanks for the info. I'll need to run some tests to decide if I think is a feature or a bug :)
Uncomment the "objArgs" part of my (your) script and add " <PROMPT:Prompt:=*sample>" to the end of the command line.  I am starting to work at converting my mmr.htm page and it won't have an option of "Hide barlines and whole rests"--that would make five parms/arguments.  They will be shorter and run together.