Skip to main content

Messages

This section allows you to view all Messages made by this member. Note that you can only see Messages made in areas you currently have access to.

Messages - Warren Porter

201
Tips & Tricks / Swapping between 4 and 2 staves for a chorus.
Printed scores for (especially) major choral works may alternate between one staff per part (i.e., a fugue) or having sopranos and altos sharing a staff with tenors and basses doing likewise for a chorale.  This may seem impossible to do in NoteWorthy since a staff is either layered or unlayered for the whole file.

The workaround is to give sopranos and tenors an extra staff each--the top one stands alone and the bottom one is layered with the next part.  By using boundary collapse commands and stop boundary collapse commands on either side of a bar line, the two soprano and tenor parts will never be on the printed parts at the same time.  They should also share the same midi channel and use the same midi patch (like Choral Aahs).

When two parts share (by layering) a staff, it will be necessary to force stem direction and perhaps slur and tie direction as well.  Also, extra space may be needed for notes and/or accidentals when the notes are too close to each other otherwise.  See the attachment for an example.
202
User Tools / Re: Is it possible to scale down some of the staffs in a score?
Are there sections where the choir could use just two staves?  You would need to create an extra Alto and Tenor staff (one to be layered, the other not), one staff would be collapsed and the other not.  On a system break where you need to change from one to the other, matching staff collapse and end staff collapse commands would make the switch for you.
206
General Discussion / Recording video and sound from NWC playback
Is there a way to record NWC playback without having to use another camera or cellphone.  I have been trying to use some free products from VSDC, but can't get off the ground.  Also, I don't have the option of recording audio.

Am open to ideas.  TIA
207
General Discussion / Putting notes in the other staff in piano music
I am trying to transcribe some fast arpeggios and sometimes a note or two at the beginning or ending of a beamed set will be on the other staff, perhaps with an N shaped beam (notes out of both sides).

Does anyone have a workaround for this?  TIA

Finishing Grieg III Sonata for Violin & Piano
208
User Tools / Re: Multi Measure Rest tool
Bug fix:  Unless a whole rest is the last thing selected or is at the end of a staff when no selection is done, a cancel collapse statement will be created.  The script in the initial post has been replaced.
209
General Discussion / Re: Clipboard data
Thank you.  I just didn't know how to use the mmr tool.  The last thing selected should never be a whole rest unless this a part that is tacet to the end of a piece.  The mmr tool stops counting and creates an MMR if it finds a bar with any style attribute.  To break the MMR's on a rehearsal symbol (on the tempo staff), I just needed to change that bar to a double bar, run the MMR, and change it back.

First time I've looked at that tool in five years.  Rust accumulates.
211
General Discussion / Re: Buglet in printing?
Run the conductor staff through my Multi Measure Rest tool with the option "Layer Hide".  Tempo, tempo variences, and rehearsal symbols will be seen on all parts.
212
Tips & Tricks / Re: User function to play grace notes before the beat.
Thank you flurmy for the backup copy.

Had a problem when the duration was the last thing on the nwctxt line like a vanilla half note.  Now I'm only looking at the first 3 chars of the duration.

Enjoy.  Attachment is back on the first post.
213
Tips & Tricks / Re: User function to play grace notes before the beat.
If anyone has a copy of this tool that works, please send it to me in a PM.  I tried to add a new feature to it (grace notes at the front of a new measure moved to the previous one / assign a duration to whole rest depending on the time signature) but have added a bear of a bug to tackle.  Can't get any saves or backups to work either.

TIA
215
Object Plugins / Re: TupletMarks.fso (version 0.1)
Thank you for developing this feature! Do you think it would be possible to develop this feature such that it actually affects the notes' duration and playback? Alternatively, is there a way to hide the triplet marks in a score? Usually when I really want, say a 17 tuplet, I end up writing a bunch of 32nd notes, some of which are tripleted and some of which aren't; when I really want a quintuplet, I write a duplet and a triplet. If there were a way to hide the triplet notation and then just group the whole series of  notes with a tuplet object, it would make the scores look much cleaner (but wouldn't necessarily help with playback realism).  Thanks!
Have you checked this User Tip on various Tuples?  I haven't experimented with adding TupletMarks to this yet.
222
General Discussion / Can't see verse three notechase with da capo & coda
I am transcribing a song with three verses--there is a simple repeat w/ 1st and 2nd endings, an instrumental interlude, the rrd verse and a coda.  Lyrics for the first two verses turn red when that note is reached, but nothing happens to 3rd verse lyrics.  Any ideas or useful previous threads on this?  TIA
Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.751)
|Editor|ActiveStaff:1|CaretIndex:5|CaretPos:0
|SongInfo|Title:""|Author:"<Name>"|Lyricist:""|Copyright1:"Copyright © 2008 <Name>"|Copyright2:"All Rights Reserved"
|PgSetup|StaffSize:16|Zoom:4|TitlePage:Y|JustifyVertically:Y|PrintSystemSepMark:N|ExtendLastSystem:N|DurationPadding:Y|PageNumbers:0|StaffLabels:None|BarNumbers:None|StartingBar:1
|Font|Style:StaffItalic|Typeface:"Times New Roman"|Size:10|Bold:Y|Italic:Y|CharSet:0
|Font|Style:StaffBold|Typeface:"Times New Roman"|Size:8|Bold:Y|Italic:N|CharSet:0
|Font|Style:StaffLyric|Typeface:"Times New Roman"|Size:7|Bold:N|Italic:N|CharSet:0
|Font|Style:PageTitleText|Typeface:"Times New Roman"|Size:24|Bold:Y|Italic:N|CharSet:0
|Font|Style:PageText|Typeface:"Times New Roman"|Size:12|Bold:N|Italic:N|CharSet:0
|Font|Style:PageSmallText|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User1|Typeface:"Boxmark2"|Size:16|Bold:N|Italic:N|CharSet:0
|Font|Style:User2|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User3|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User4|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User5|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User6|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|PgMargins|Left:1.27|Top:1.27|Right:1.27|Bottom:1.27|Mirror:N
|AddStaff|Name:"Staff"|Group:"Standard"
|StaffProperties|EndingBar:Section Close|Visible:Y|BoundaryTop:12|BoundaryBottom:12|Lines:5|Color:Default
|StaffProperties|Muted:N|Volume:127|StereoPan:64|Device:0|Channel:1
|StaffInstrument|Name:"Violin"|Patch:40|Trans:0|DynVel:10,30,45,60,75,92,108,127
|PerformanceStyle|Style:Legato|Pos:0|Visibility:Never
|Clef|Type:Treble
|TimeSig|Signature:4/4
|Note|Dur:4th|Pos:-2
|Note|Dur:4th|Pos:-1
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:1
|Bar
|Note|Dur:4th|Pos:-2
|Note|Dur:4th|Pos:-1
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:1
|Bar|Style:MasterRepeatOpen
|Flow|Style:Segno|Pos:11|Wide:Y
|Note|Dur:4th|Pos:-2
|Note|Dur:4th|Pos:-1
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:1
|Bar
|Note|Dur:4th|Pos:-2
|Note|Dur:4th|Pos:-1
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:1
|Flow|Style:ToCoda|Pos:5|Wide:Y
|Bar
|Ending|Endings:1
|Note|Dur:4th|Pos:-2
|Note|Dur:4th|Pos:-1
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:1
|Bar|Style:MasterRepeatClose
|Ending|Endings:2
|Note|Dur:4th|Pos:-2
|Note|Dur:4th|Pos:-1
|Note|Dur:4th|Pos:0
|Note|Dur:4th|Pos:1
|Bar
|Note|Dur:4th|Pos:5
|Note|Dur:4th|Pos:6
|Note|Dur:4th|Pos:7
|Note|Dur:4th|Pos:8
|Bar
|Note|Dur:8th|Pos:-2|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-1|Opts:Stem=Up,Beam=End
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=End
|Note|Dur:8th|Pos:-2|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-1|Opts:Stem=Up,Beam=End
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=End
|Flow|Style:DSalCoda|Pos:8|Justify:Right|Placement:BestFitForward
|Bar|Style:Double
|Flow|Style:Coda|Pos:8|Wide:Y
|Chord|Dur:Whole|Pos:-1,1
|AddStaff|Name:"Staff-1"|Group:"Standard"
|StaffProperties|EndingBar:Section Close|Visible:Y|BoundaryTop:10|BoundaryBottom:22|Lines:5|Color:Default
|StaffProperties|Muted:N|Volume:127|StereoPan:64|Device:0|Channel:2
|StaffInstrument|Trans:0|DynVel:10,30,45,60,75,92,108,127
|Lyrics|Placement:Bottom|Align:Standard Rules|Offset:0
|Lyric1|Text:"verse one verse one verse one verse one verse one verse one verse one verse one verse one verse one\n"
|Lyric2|Text:"verse two verse two verse two verse two verse two verse two verse twoverse two verse two verse two verse two verse two verse two verse two\n"
|Lyric3|Text:"verse three verse three verse three verse three verse three verse three verse three verse three verse three verse three verse three verse three\n"
|Clef|Type:Treble
|TimeSig|Signature:4/4
|Rest|Dur:Whole
|Bar
|Rest|Dur:Half
|Rest|Dur:4th
|Rest|Dur:8th
|Note|Dur:8th|Pos:-2
|Bar|Style:MasterRepeatOpen
|Flow|Style:Segno|Pos:11|Wide:Y
|Note|Dur:8th|Pos:-1|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:0|Opts:Stem=Up,Beam=End
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=End
|Note|Dur:4th|Pos:3
|Note|Dur:4th|Pos:2
|Bar
|Note|Dur:8th|Pos:-1|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:0|Opts:Stem=Up,Beam=End
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=End
|Note|Dur:4th|Pos:3
|Note|Dur:4th|Pos:2
|Flow|Style:ToCoda|Pos:5|Wide:Y
|Bar
|Ending|Endings:1
|Note|Dur:8th|Pos:3|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=End
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam=End
|Note|Dur:4th|Pos:-1
|Note|Dur:4th|Pos:0
|Bar|Style:MasterRepeatClose
|Ending|Endings:2
|Note|Dur:8th|Pos:3|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=End
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam=End
|Note|Dur:Half|Pos:-1
|Bar
|Rest|Dur:Whole
|Bar
|Rest|Dur:Whole
|Flow|Style:DSalCoda|Pos:8|Justify:Right|Placement:BestFitForward
|Bar|Style:Double
|Flow|Style:Coda|Pos:8|Wide:Y
|Note|Dur:Whole|Pos:-1
!NoteWorthyComposer-End
223
General Discussion / Re: Ties at a repeat, appear unresolved.
My bad.  The measures before the repeat were in the 1st ending and the 2nd ending was after the double bar.  I had added a muted, invisible, grace chord to absorb the ties but after adding 2nd ending in all parts I took out the MIGC with no ill effects.
Thanks for looking at it.  Learned something useful for the future so it wasn't a complete waste of everyone's time.
224
General Discussion / Ties at a repeat, appear unresolved.
In the following snippet (treble clef, A major) within the first ending, the ties are resolved after a previous Master Repeat Open.  In the first bar of the 2nd ending, the ties carry over looking for a resolution.  Fortunately the same tied chord is at the end of the measure.

Is there any way to eliminate the unwanted "lens" in that measure?  TIA
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|Chord|Dur:8th|Pos:n-2,0
|Chord|Dur:4th|Pos:-1,1
|Chord|Dur:8th|Pos:-4^,-1^
|Chord|Dur:Half|Pos:-4^,-1^
|Bar
|Chord|Dur:Half,Dotted|Pos:-4,-1
|Rest|Dur:8th
|Chord|Dur:8th|Pos:-1^,1^
|Bar|Style:MasterRepeatClose
|Chord|Dur:Half|Pos:-8^,-6^,-4^
|Chord|Dur:4th,Dotted|Pos:-8,-6,-4
|Chord|Dur:8th|Pos:-1^,1^
|Bar
|Chord|Dur:8th|Pos:-1,1
|Chord|Dur:4th|Pos:-1,1
|Chord|Dur:8th|Pos:0^,2^
|Chord|Dur:8th|Pos:0,2
|Chord|Dur:4th|Pos:0,2
|Chord|Dur:8th|Pos:n-2^,0^
|Bar
|Chord|Dur:8th|Pos:-2,0
!NoteWorthyComposerClip-End
226
User Tools / Re: How to (1) alter code and (2) get it back into the notation file
If you are going to modify something with a text editor:
  • First save your file if you have done anything else to it.
  • Open text editor, do Alt/Tab to get back to NWC.
  • Select what you want to change.
  • Cut to the clipboard (Cntl/X).  Alt/Tab.
  • Paste from the clipboard (Cntl/V) into your text editor, then modify as needed.
  • Select all (Ctl/A). Cut to the clipboard.  Alt/Tab to get back to NWC.
  • The cursor will be where you left it.  Paste from the clipboard.
228
User Tools / Force Stem Up for unstemmed middle line notes.
Code: [Select · Download]
/*
 doStem.js  by Warren Porter
                                  Stem Tool
 This tool will change all notes on the middle line where no stem direction is specified to stem up.

 This tool can operate on ONLY a selected part of a staff, or, if nothing has been selected, the entire staff.

 To install:
 1) Save this file with the name doStem.js on your computer and remember its location.
 2) Start NWC and press Alt/F8.  Pick new
 3) After choosing a name and group, browse for this file and click "Open".
 4) Insert "wscript " at the beginning of the command.
 5) Clip text should be selected and check no options.
 */

rc=0, errMsg="";

function doProcess(clip) {
var displ=0, upDispl=0;
var result = new Array();
var lines = clip.split("\r\n");
  for (i = 1; i < lines.length; i++) {           // Main processing loop
  if (lines[i].indexOf("Stem=") > 0)  // Already has stem direction specified
    continue;
  else {
    result = lines[i].match(/(\|Note.*Pos:)([n#bvx]?)0/) // 1. Note thru Pos 2. Accidental 3. Position 4. Shape 5. Ties 6. To end of line
if (result != null) {
  lines[i] += "|Opts:Stem=Up" }
   } }    // End main loop
  return lines;
}

var myLines;
  myLines=doProcess(WScript.StdIn.ReadAll()).join("\r\n");

if (rc == 0)
  WScript.StdOut.Write(myLines);
else
  WScript.StdErr.Write(errMsg);
WScript.quit(rc);
If you have to transpose after running this, run Audit Note Stems and then rerun it.
229
General Discussion / Re: showing on the same staff
You could try using two staves for the alto part, one would be layered with the soprano for the chorale and the other (normally collapsed) would be available for the fugue.  Same for the tenor part.
230
General Discussion / Re: RANT: user tools = useless tools
I wrote on my webpage, "clipboard data created and read by NWC (in addition to their .nwctxt format) is text based, (and) tools can be written to create or modify it."  These were put together to help automate various repetitive tasks I faced in NWC, first as web pages with the user having to go through the clipboard, then as user tools.

I don't consider the installation of any tool to be a hassle, just follow the directions and it's up in less than a minute.  Besides, it's only done once.  For example, the bass staff of a piano part often is in octaves.  It can be done by building the octave chord every time it's needed or copying an existing chord and changing its duration or position as needed.  Or, run a user tool one time for all the single notes that will turn them into octave chords, complete with all necessary accidentals and ties.  Your choice.
234
General Discussion / Re: Measure numbers
If having the measure number in the middle of the measure is important, there is an old user function that may help.  Create a model measure number (text object with only digits) in the first measure where you need it to be (beats from the beginning of the measure).  If, in 4/4 time, you create a model measure number just before the 3rd beat, later selected measures will have a measure number at the same place or as soon as possible. (If measure is quarter, half, quarter, the measure number would be before the 4th beat.)  Download nummeas.js and note where you stored it. Open a NWC file and select a new user tool.  On the "command", browse for the location, then prepend "wscript " to it.  Accept other defaults.

When running it, the measure with your model measure number must be the first one selected.  All attributes of the text measure number will be replicated in later measures.

HTH
237
General Discussion / Re: Selectively suppressing staves when printing
This tool can create multi measure rests and suppress staves when creating a conductor's score--to do this use the HideAll option.  If creating a "tempo" staff with just tempo, tempo variances (rit., acc., etc) and rehearsal symbols, choose LayerHide.

mmr.js

Chop off the "/mmr.js" to see installation instructions.  This shows all instruments at the beginning of the score, but you can move the first collapse symbol to the beginning of each staff if it starts with a long rest.
240
User Tools / Insert accumulated time after each bar line
Save the following with the name TimeText.js .  When installing a new user tool and doing the Browse to get this, add "wscript " (note trailing space) to the beginning of the line and the prompts on line 6 to the end of it.  Accept the defaults.

I wanted to give a warning when a Tempo Varience was found, but didn't find a way to do it.
Code: [Select · Download]
/* Time Through Current Bar by Warren Porter "TimeText.js"

   This script will insert the cumulative time at the beginning of each bar line.
   After downloading this file, when setting it up in NWC User Tools create this command line:

   wscript "'Browse can insert the path for you' \TimeText.js" <PROMPT:Run?:=|Yes|Undo> <PROMPT:BeginTime:=*00:00.0>

   The first parm will run the whole script ("Yes") or simply remove timings from a previous run ("Undo").
   Use the second parameter to specify a starting time for the song.
 */

var rc=0, errMsg="";
function getNoteLength(notelet) {  // Returns duration of note , whole = 768
var NoteLengths = { "16th":48, "32nd":24, "4th":192, "64th":12, "8th":96, "Half":384, "Whole":768 } ;

parts = notelet.split(",");
var  noteLength= -1;
noteLength = NoteLengths[parts[0]];
if (typeof(noteLength) == "undefined")
  return -1;

  for (var i = 1; i < parts.length; i++) {
    if (parts[i].substr(0,9) == "DblDotted") {
  noteLength = noteLength * 7 / 4; }
else
      if (parts[i].substr(0,6) == "Dotted") {
    noteLength = noteLength * 3 / 2; }
  else
    if (parts[i].substr(0,7) == "Triplet") {
      noteLength = noteLength * 2 / 3; } }
  return noteLength;
}
function tempoLength(notelet) {  // Returns duration of tempo
var NoteLengths = { "Eighth Dotted":144, "Eighth":96, "Quarter Dotted":288, "Quarter":192, "Half Dotted":576, "Half":384}
var noteLength = -1;
noteLength =NoteLengths[notelet];
if (typeof(noteLength) == "undefined")
  return -1;
return noteLength;  }

function calculate(clip) {
 
  var i, a, cumDur=0, durVal=0, durLen, min, sec, cumTime, wholeMeas=768, preTime=0, unDo=0, doWarn=1;
  var base=192;  //Default for tempo
  var beatletLength=0;  //Duration of "768th" note
  var result = new Array();
  var lines = new Array();
   var shell = new ActiveXObject("WScript.Shell");
    if (WScript.Arguments.length != 2) {
  errMsg = "I need two parms: Yes or Undo and initial time offset";
  rc=1;
return; }

  if (WScript.Arguments.Item(0) == "Undo")
  unDo=1;

  result = WScript.Arguments.Item(1).match(/(\d+):(\d+\.*\d*)/)
  if (result != null) {  // Read starting time
    min=parseInt(result[1]);
sec=parseFloat(result[2]);
preTime=min*60 + sec;}

  lines = clip.split("\r\n");
 
  for (i=0; i < lines.length; i++) {    //Main processing loop
 
result=lines[i].match(/\|Font:PageSmallText\|Pos:10\|Color:[36]/)
if (result != null)    // Remove earlier comments
  lines[i] = "#";
 
    if (unDo)
  continue;
 
if (lines[i].slice(0,15) == "|TempoVariance|") {  //Found tempo varience, give a warning
  if (doWarn) {
    shell.Popup("A Tempo Varience has been found, results are unpredictable");
    doWarn=0; } // Don't say it more than once.
      continue;   }
  
    if (lines[i].slice(0,5) == "|Flow") {
    errMsg="Repeats or flow changes not allowed";
rc=1;
return;}
 
if (lines[i].slice(0,7) == "|Tempo|") {  //Found tempo, look for base
  if (lines[i].substr(6,5) == "|Base") {
    result=lines[i].match(/Base:(.+)\|Tempo/)
base= tempoLength(result[1]); }
  else
    base = 192;
  result=lines[i].match(/(\|Tempo.*Tempo:)(\d+)/)
  a=parseInt(result[2]);
  beatletLength= 60 / (a * base);
      continue;   }  // End of Tempo code
 
    if (lines[i].slice(0,15) == "|Rest|Dur:Whole" && lines[i].indexOf(",") == -1) {
  cumDur += wholeMeas;   //Found whole rest but use duration of last time signature.
      continue;}
 
    result=lines[i].match(/Dur:([^\|]*)/);  // Looking for anything with duration not grace
if ((result != null) && (!/Grace/.test(lines[i]))) { // Has duration but is not grace.
  var durVal = result[1];
  var durLen = getNoteLength(durVal);
  cumDur += durLen;
      continue;   }
 
 
    result=lines[i].match(/Signature:(\d+)\/(\d+)/)
if (result != null)
  wholeMeas = 768 * result[1] / result[2];
 
result=lines[i].match(/\|RestMultiBar\|NumBars:(\d+)\|/)
if (result != null)
  cumDur += wholeMeas * result[1];
 
if (lines[i].slice(0,4) == "|Bar") { // Found a bar line
  if (beatletLength == 0) { // Shouldn't happen
    errMsg="Bar before Tempo indication, aborting";
rc=1;
return;}

  if (lines[i].search("Repeat") != -1) {
    errMsg="Repeats or flow changes not allowed";
rc=1;
return;}

  cumTime = preTime + cumDur * beatletLength;
      min = Math.floor(cumTime/60);
  sec = cumTime;
  sec -= min * 60;
  smin=min.toString()
  if (min < 10)
    smin = "0" + smin;
  sec =  Math.round(sec*1000)/1000;
  ssec = sec.toString();
  if (sec < 10)
    ssec = "0" + ssec;

  lines[i] += "\r\n|Text|Text:\"" + smin + ":" + ssec + "\"|Font:PageSmallText|Pos:10|Color:3" }

if (lines[i].slice(0,27) == "!NoteWorthyComposerClip-End") {
  cumTime = cumDur * beatletLength;
      min = Math.floor(cumTime/60);
  sec = cumTime;
  sec -= min * 60;
  smin=min.toString()
  if (min < 10)
    smin = "0" + smin;
  sec =  Math.round(sec*1000)/1000;
  ssec = sec.toString();
  if (sec < 10)
    ssec = "0" + ssec;

  lines[i] = "|Text|Text:\"" + smin + ":" + ssec + " " + cumDur + "\"\|Font:PageSmallText|Pos:10|Color:6\n" + lines[i];
  break;  }  // Don't do the end clip again
  } 
   rc = 0;
  return lines;
  }   // End main processing loop

var myLines=calculate(WScript.StdIn.ReadAll()).join("\r\n");
if (rc == 0)
  WScript.StdOut.Write(myLines);
else
  WScript.StdErr.Write(errMsg);
WScript.quit(rc);

Edited change:  Got a popup to warn of tempo variences.
242
General Discussion / Re: Problem getting a page off the ground.
Thanks, but I believe I found the bug-- I was counting whole note rests twice.  The script determined the length of a whole rest from the time signature but after finding it I didn't continue* the loop.  Code that looked for anything with a duration processed it again.

I'll be adding some more stuff before putting it on the web again.

*continue - In JavaScript, "continue" means to do the next iteration of the loop.  It goes to the top adding 1 to the value of I.
243
General Discussion / Re: Problem getting a page off the ground.
Just an unneeded bar line at the end of the piece to show the total duration since otherwise info on the last measure (total dur) wouldn't be reported.  A later version will show the duration of a 768th note, total duration of the song in 768th notes, and total minutes / seconds in a textbox so an alert wouldn't be needed.  It also needs warnings for tempo variances and flow directions.

I am trying to use this to help me transcribe parts from an audio file "editor" (audacity? <sp>) which shows starting points and selected durations to a thousandth of a second.  Have picked off the fiddle part from "Hey Good Lookin'" and just started on steel guitar--link is on my website's splash page.
244
General Discussion / Problem getting a page off the ground.
I have been working on TimeTxt.html to insert the minutes and seconds that have been played so far right after each barline.  This only works with songs with no tempo variences but, if you put a final bar line before the end, the last time doesn't agree with NWC displays while playing it.  After finding a tempo indication, it alerts the duration of each 768th note, on which all other durations are based.

Cntl/U displays the source code on many browsers.

TIA
248
General Discussion / Re: Positioning accidentals
Select a note/chord and then Cntl/E. One of the options is "Extra Accidental Spacing" in addition to "Extra Note Spacing".  This comes in handy when notes/chords on different staves are layered and the accidentals or notes are on top of each other.  If you download the first attachment from this thread, this page fixes the note collisions upstairs and accidental collusions downstairs.
249
General Discussion / Re: Loss of website
Just added a script to convert midi triplets into real ones.  This assumes an NWC file has just been imported from midi so there is no check for grace notes.  The B147Ch04 file is a good demo of it--run it on the top staff and it should look like the bottom one.
250
User Tools / Re: "Compactify rests"?
I have a tool that can do this, and it creates whole rests when the duration of all objects matches what the key signature says its supposed to have. nwc Look for "Resting Staff" at the bottom of "User Tools". 

Run against both of your samples it creates a pair of hidden whole rests.

Edit: This might not be exactly what you need, but it should be easy to modify.  The tool was for those occasions when you realize you need a new layered staff 100 measures into your transcription.