8
An accidental implicitly applies to any of the same note later in that measure, but technically speaking, is it supposed to apply to notes an octave away from that note?! Take this example:
!NoteWorthyComposerClip(2.0,Single)
|Clef|Type:Treble
|TimeSig|Signature:4/4
|Note|Dur:4th|Pos:-3
|Note|Dur:4th|Pos:#-3
|Chord|Dur:4th|Pos:-3,4
|Chord|Dur:4th|Pos:n-3,4
!NoteWorthyComposerClip-End
Is the high F on the 3rd beat sharped, as the low F still is? If so, is it still sharped on the 4th beat, or does the natural below cancel it? If you run the Note Names user tool, it has its opinion on these questions, and I'd just like to make sure it's correct!
12
To my knowledge, nobody has written a set of PHP include files to help with processing entire NWCTXT files, similar to the set that does exist to help with processing "clips" (the User Tools suite). Perhaps instead of writing a new suite, the existing one can become a superset for both? I haven't worked out all the details yet for other files, but I thought I'd throw out these possible additions to just nwc2clips.inc, to start a discussion.
In function NWC2ClassifyOptTag, before the final return:
if ($ObjType == "SongInfo") return NWC2OPT_TEXT;
if (($ObjType == "Font") && ($Tag == "Typeface")) return NWC2OPT_TEXT;
if (($ObjType == "AddStaff") && ($Tag == "Group")) return NWC2OPT_TEXT;
I expect there are other song/staff option tags that are possibly needed here too.
Global constants, alongside the comparable "clip" constants:
define("NWC2_STARTSONG","!NoteWorthyComposer");
define("NWC2_ENDSONG","!NoteWorthyComposer-End");