Skip to main content

Topics

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

Topics - Warren Porter

51
User Tools / Resting Staff
This tool should come in handy when you decide, after many time signature, key signature, and/or clef changes that it will be necessary to layer the staff you are working on.
  • Create your new staff.
  • Copy the original staff to the new one.
  • Run this tool: "Resting Staff".  The new staff will have all notes, chords, and rests replaced with whole notes rests! except for pickups.
  • Replace appropriate measures when necessary to layer parts from the original staff.
  • Be sure the instrument and dynamic level match the original staff.
  • Run the MMR tool with the "LayerHide" option.
This tool also helps edits bar lines.  Any measure with too many or few beats will be replaced with rests with the same duration instead of a whole rest.

To install, save this code on your computer with a name of restStaff.js and note its location.
While NWC has a file opened, enter Alt/F8 for User Tools.  Select New and choose a group and a name.
Click Browse and find the file you just saved and click Open.
Insert "wscript " (note trailing space) in the beginning of the Command line.
Click OK and it is ready to run.  There are no prompts.

This will change your staff to rests.  Before using, save your file and duplicate the staff on which you will be using it.
Code: [Select · Download]
/* Notes to Rests by Warren Porter "restStaff.js"
   After downloading this file, when setting it up in NWC User Tools create this command line:

   wscript "'Browse can insert the path for you' \restStaff.js"

   This can help create a new staff when one is needed for layering.  First, copy an entire staff to the clipboard, create a new staff,
   then cut the clipboard to the new staff.  Run this command on that new staff.  Clefs, time signatures, and key signatures will be
   left alone on the new staff, but all notes, chords, and restchords will be replaced by rests.  Bars with "full measures" (the norm,
   it has as many beats as the time signature dictates) will be replaced with whole rests, a measure with more or fewer (like a pickup)
   will be replaced with rests of the same durations (and order if necessary) or the original notes, rests, chords, or restchords.

   The new staff may then be used for layered notes for the original staff.  It can be run through the MMR tool with the "LayerHide"
   option so unneeded parts won't display.
  
   This is not suited to creating a "tempo" or "conductor" staff.  To create a tempo staff which could be layered into all other parts
   to print parts, the clef or keys should not be copied while tempos or tempo variences should be.
 */

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]];
var noteLength = ( NoteLengths[parts[0]] === undefined ) ? -1 : NoteLengths[parts[0]];
  if (noteLength == -1)
    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 calculate(clip) {
  var i, j=0, dsi;
  var lines = new Array(), result = new Array(), nlines = new Array, mt=0, measureTab = new Array, beatletCount=0, targetMeasure = 768;
  var thisDur, thisNote, durSplit;
  lines = clip.split("\r\n");
  for (i=0; i < lines.length; i++) {
if (lines[i].slice(1,5) == "Text" || lines[i].slice(1,14) == "TempoVariance")
  continue;
    if (lines[i].slice(1,5) == "Fake" || lines[i].slice(1,8) == "Context" ) {  // For these items, pass them thru and ignore them.
  nlines[j++] = lines[i]; continue; }
if (lines[i].slice(1,8) == "TimeSig") {
  if (beatletCount == targetMeasure)  // Measure exactly full
    nlines[j++] = "|Rest|Dur:Whole|Visibility:Never";  // Insert whole rest
  else {
    for (mt = 0; mt < measureTab.length; mt++)
  nlines[j++] = "|Rest|Dur:" + measureTab[mt] + "|Visibility:Never";}
  beatletCount = 0, measureTab.length = 0; mt=0;
  result = lines[i].match(/ture:(\d+)\/(\d+)/);  // Read the time signature
  if (result == null)  //In case it is C or cut time
    targetMeasure = 768;
  else
    targetMeasure = 768 * result[1] / result[2];    // Calculate length of measure  
  nlines[j++] = lines[i]; continue; }  
if (/Grace/.test(lines[i]))
  continue;
result = lines[i].match(/Dur:([^\|\r\n]+)/)   // Looking for anything with a duration
if (result != null) {  // Duration loop
  thisDur = result[1];
  thisNote = getNoteLength(thisDur);
  if (thisNote == -1) {
    errMsg += "Invalid duration of " + lines[i] + "\r\n";
rc=1;
continue; }
  durSplit = thisDur.split(",");
  for (dsi=1; dsi < durSplit.length; dsi++)
    if (!(durSplit[dsi].substr(0,9) == "DblDotted" || durSplit[dsi].substr(0,6) == "Dotted" || durSplit[dsi].substr(0,7) == "Triplet")) {
  durSplit.length = dsi; break; }
  measureTab[mt++] = durSplit.join(",");
  if (lines[i].slice(1,15) == "Rest|Dur:Whole")  //So existing whole rest in , e.g., 3/4 time won't be treated as having 4 beats.
    thisNote = targetMeasure;
  beatletCount += thisNote;
  continue; }   // End duration loop
if (lines[i].slice(1,4) == "Bar" || lines[i].slice(1,5) == "Flow" || lines[i].slice(1,7) == "Ending"  || lines[i].slice(0,1) == "!"||
      lines[i].slice(1,13) == "RestMultiBar" || lines[i].slice(1,9) == "Boundary" || lines[i].slice(1,11) == "Instrument" ||
  lines[i].slice(1,4) == "MPC" || lines[i].slice(1,5) == "Clef" || lines[i].slice(1,4) == "Key" ) {  //Bar loop, flow, & spec. endings
  if (beatletCount == targetMeasure)  // Measure exactly full
    nlines[j++] = "|Rest|Dur:Whole|Visibility:Never";  // Insert whole rest
  else {
    for (mt = 0; mt < measureTab.length; mt++)
  nlines[j++] = "|Rest|Dur:" + measureTab[mt] + "|Visibility:Never";}
  beatletCount = 0, measureTab.length = 0; mt=0;  // Get set up for next measure
  if (lines[i].slice(1,6) != "Tempo")
    nlines[j++] = lines[i]; }  //End bar loop
  }  //End main processing loop
  return nlines;
}

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

Modified to include special endings and flow control the same as bar lines.
Allow whole rest in non 4/4 (2/2) time to assume the value of time signature then in effect.
Hides generated rests.  Will not copy tempos or tempo variences.
Passes through MMRs, Boundarys, MPC, and Instrument changes.
52
User Tools / Multi Measure Rest tool
The following tool should provide a convenient way to convert consecutive measures of whole rests into MMR's, or convert MMRs back to whole rests.  Installation instructions are on the bottom.  First save the following with the name mmr.js and remember its location:
Code: [Select · Download]
/*
 mmr.js  by Warren Porter

 <PROMPT:MMR?:=|Yes|Undo> <PROMPT:Options:=|HideAll|ShowAll|ShowBar|ShowRst|LayerHide>
                                  Multi Measure Rest Tool
 This tool gives the user the ability to convert consecutive measures of whole rests into Multi-Measure Rests.  When hidden,
 the user can choose to show bars and rests, bars only, rests only, or neither.  If a "conductor" or "tempo" staff is being
 layered into a part to be printed, the "LayerHide" option will prevent any MMR on that part from being displayed.  Boundary
 collapse and cancel collapse commands are created around the multi measure rests.

 Changes made can be backed out with the "Undo" prompt.  All options on the 2nd prompt are ignored.  The above boundary commands
 are removed and MMRs are replaced by the approprate number of whole rests separated by bar lines.

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

rc=0, errMsg="";

function doProcess(clip) {
  var result=new Array(), nlines=new Array(), ii=0, lastBar=-1,cntRest=0,lastRest=0;
  var mmrOption = "|PrintOnce:Y";
  if (WScript.Arguments.Item(1) == "ShowAll")
    mmrOption += "|WhenHidden:ShowBars,ShowRests";
  else
if (WScript.Arguments.Item(1) == "ShowBar")
  mmrOption += "|WhenHidden:ShowBars";
else
  if (WScript.Arguments.Item(1) == "ShowRst")
    mmrOption += "|WhenHidden:ShowRests";
  else
    if (WScript.Arguments.Item(1) == "LayerHide")
          mmrOption = "|PrintOnce:N|Visibility:Never"; // Used for hiding tempo or conductor stave.

  lines = clip.split("\r\n"); // lines === existing lines; nlines === lines to be created

  for (var i=0; i < lines.length; i++) {  // Main processing loop
    switch (cntRest) {
  case 0 :
    if (lines[i].slice(0,15) == "|Rest|Dur:Whole") {  //Found first rest
  cntRest++; lastRest = i; }
else {
  nlines[ii++] = lines[i]; } // Didn't find a rest and have no backlog, copy line to OP array.
break;
  case 1 :  // Have found exactly one whole rest
        if (lines[i].slice(0,15) == "|Rest|Dur:Whole") {
          cntRest++; lastBar = 0; }
        else
          if ((lines[i].slice(0,4) == "|Bar") && (lines[i].slice(4,11) != "|Style:")) {
            lastBar = i; }
          else {  //  Found whole rest not followed by bar or another rest
            if (lastRest) {
              for ( ; lastRest <= i; lastRest++) {
                 nlines[ii++] = lines[lastRest] }
            cntRest=0,lastBar=0; } }
        break;
      default: // cntRest is 2 or more.
        if (lines[i].slice(0,15) == "|Rest|Dur:Whole") {
          cntRest++; lastBar = 0; }
        else
          if ((lines[i].slice(0,4) == "|Bar") && (lines[i].slice(4,11) != "|Style:")) {
            lastBar = i; }
          else {  //  Found whole rest not followed by bar or another rest, must create MMR
            nlines[ii++] = "|Boundary|Style:Collapse";
            nlines[ii++] = "|RestMultiBar|NumBars:" + cntRest + mmrOption;
            if (lines[i].slice(0,27) != "!NoteWorthyComposerClip-End" || lastBar) {
              nlines[ii++] = "|Boundary|Style:EndCollapse"; }
cntRest = 0;
            if (lastBar)   // If MMR was followed by a barline and something else
              nlines[ii++] = lines[lastBar];  // first move the barline over
            lastBar = 0;
            nlines[ii++] = lines[i] //  Move the non-rest non-bar over to OP buffer.
            }
        }   //End of switch
  }           //End main processing loop
  /* Next loop will place the Boundary Collapse BEFORE a bar line and the Cancel Collapse AFTER a bar line. This will stop empty
     bars from being displayed when a part begins or ends on a complete system.  The loop after that will remove EndCollapse and
Collapse when they are next to each other.
   */

  for (i=1; (i+1) < nlines.length; i++) {  // Start fixit loop.
    if ((nlines[i].slice(0,4) == "|Bar") && (nlines[i+1].slice(0,24) == "|Boundary|Style:Collapse")) {
  var tempi = nlines[i];
  nlines[i] = nlines[i+1];
  nlines[++i] = tempi; }
else
  if ((nlines[i].slice(0,27) == "|Boundary|Style:EndCollapse") && (nlines[i+1].slice(0,4) == "|Bar")) {
    tempi = nlines[i];
    nlines[i] = nlines[i+1];
    nlines[++i] = tempi; }
  }    //End fixup loop

  for (i=1; (i+1) < nlines.length; i++) {
    if ((nlines[i].slice(0,27) == "|Boundary|Style:EndCollapse") && (nlines[i+1].slice(0,24) == "|Boundary|Style:Collapse")) {
  nlines[i] = "#";  //Turn both lines into a comment
  nlines[++i] = "#"; }
else
  if (WScript.Arguments.Item(1) == "LayerHide" && nlines[i].slice(0,5) =="|Rest" && nlines[i].indexOf("|Visibility:Never") == -1)
    nlines[i]+= "|Visibility:Never";
  }

  return nlines;
}
/*
!NoteWorthyComposerClip(2.51,Single)
|Rest|Dur:Half
|Tempo|Tempo:70|Pos:10
|Rest|Dur:4th|Visibility:Never
|Tempo|Tempo:67|Pos:10
|Rest|Dur:4th
|Bar|Visibility:Never
|Rest|Dur:Whole|Visibility:Never
!NoteWorthyComposerClip-End

 */

function doUndo(clip) {
  var result=new Array(), nlines=new Array(), ii=0, lastRest=0,cntRest=0;
  var restLit = "|Rest|Dur:Whole", barLit = "|Bar";
  lines = clip.split("\r\n"); // lines === existing lines; nlines === lines to be created

  for (var i=0; i < lines.length; i++) {  // Main processing loop
    if (lines[i].match(/Boundary.*Collapse/) != null)
      continue;
    result = lines[i].match(/(RestMultiBar\|NumBars:)(\d+)(\|PrintOnce)/)
    if (result == null) {
      nlines[ii++] = lines[i]; }
    else {
      lastRest = Number(result[2])
      for (cntRest=0; cntRest < lastRest; cntRest++) {
        nlines[ii++] = restLit;
        if ((cntRest + 1) < lastRest)
          nlines[ii++] = barLit;
      }
    }
  }           //End main processing loop
   if (WScript.Arguments.Item(1) == "LayerHide") {
     for (i = 0; i < nlines.length; i++)
   if (result = nlines[i].match(/Rest.*Never/))
     nlines[i] = nlines[i].replace("|Visibility:Never","") }
  return nlines;
}
var myLines;
  if (WScript.Arguments.length != 2) {
    errMsg="NO Prompt read.";
rc=1; }
  else {
    if (WScript.Arguments.Item(0).slice(0,4) == "Undo")
  myLines=doUndo(WScript.StdIn.ReadAll()).join("\r\n");
else
  myLines=doProcess(WScript.StdIn.ReadAll()).join("\r\n"); }

if (rc == 0)
  WScript.StdOut.Write(myLines);
else
  WScript.StdErr.Write(errMsg);
WScript.quit(rc);

  • Open a file with NWC and enter Alt/F8.
  • Choose a group and give it a name "Multi Measure Rests".
  • In the Command line, hit Browse and find the file.
  • At the beginning of the command line insert "wscript " (include trailing space).
  • At the end of the command line, append the prompt below.
  • The Input Type is Clip Text.
  • Under "Options", leave all boxes unchecked.
  • Click OK.  It is ready to run.

Paste this prompt (include leading space) " <PROMPT:MMR?:=|Yes|Undo> <PROMPT:Options:=|HideAll|ShowAll|ShowBar|ShowRst|LayerHide>" at the end of the command line.

Edit 13-01-28: Corrected Options.
Edit 14-06-19: Replace script.
Edit 17-11-08: Replace script (bug fix)
53
User Tools / Dynamic Placement
This tool will allow you to move all or selected dynamics up or down by the amount you specify or place these dynamics at a specific position above, on, or below the staff.  Installation instructions are in comments.  An argument of +3 or -4 would move dynamics up or down while =-7 would put all dynamics below the staff.

This could be adapted to move other objects such as pedal commands.  Please note the first eight lines of this code:
Code: [Select · Download]
/* Dynamic Placement by Warren Porter "dynplace.js"
   After downloading this file, when setting it up in NWC User Tools create this command line:

   wscript "'Browse can insert the path for you' \dynplace.js" <PROMPT:Enter equal OR +- dd:=*sdd> <PROMPT:Justify Right?:=|N|Y> <PROMPT:Hairpins?:=|Move|Ignore>

   A parm of =10 would put ALL dynamic markings above the staff while =-7 would put them just below the staff.
   Parms of +3 or -2 would raise or lower all dynamic markings by the specified number of positions.
 */
rc=0, errMsg="";
function calculate(clip) {
  var i, OutText = "", relPos=0, absPos=0, goSwitch, dynPrefix, dynPos, dynSuffix;
  var lines = new Array(), result = new Array();
  if (WScript.Arguments.length != 3) {
    errMsg="NO Prompt read. This needs a prompt \"=[-]d[d]\" to place dynamics at a specific position or \"[+-]n[n]\" to move them up or down";
rc=1;
return lines; }
  errMsg=WScript.Arguments.Item(0) + "\r\n";
  result = WScript.Arguments.Item(0).match(/=(-?\d*)/);
  if (result)
    absPos=result[1];  //Absolute position specified
  else {
    result = WScript.Arguments.Item(0).match(/([-+]\d*)\D?/);
if (result)
  relPos = Number(result[1]);  // Relative position
else {  // Neither match worked, abort
      errMsg+="Invalid prompt. This needs a prompt \"=[-]d[d]\" to place dynamics at a specific position or \"[+-]n[n]\" to move them up or down";
  rc=1;
  return lines; } }
  var jRight = (WScript.Arguments.Item(1) == "Y")? true : false;
  var hairPins = (WScript.Arguments.Item(2) == "Ignore")? true : false;
  lines = clip.split("\r\n");
  for (i=0; i < lines.length; i++) { // Main processing loop
    result=lines[i].match(/(\|Dynamic\|Style.*Pos:)(-?\d*)(.*)/) // Looking for Dynamic, it's position, and the rest of the line
if (result) {  //Found dynamic
  goSwitch = true;  //Setting up look ahead loop
  if (hairPins) {
    for (var ii=i+1; ii < lines.length; ii++) {
  if (lines[ii].slice(0,5) == "|Text") continue;  //Ignore text lines
      if (lines[ii].slice(0,8) == "|Dynamic")  break;   //Found another dynamic or dynamic variance, get out of loop.
  if (/Crescendo|Diminuendo/.test(lines[ii])) { //Found hairpins before another dynamic, don't mess with it.
    goSwitch = false; break; } } // End lookahead loop
  }  // End if hairPins
  if (goSwitch) {
    dynPrefix = result[1];
    dynPos = Number(result[2]);
dynSuffix = result[3];
if (jRight) {
  if (dynSuffix == "")
    dynSuffix = "|Wide:N|Justify:Right";
  else {
   if (!/Justify:Right/.test(dynSuffix))
     if (/Justify:/.test(dynSuffix)) {
           dynSuffix = dynSuffix.replace("Justify:Left","Justify:Right");
           dynSuffix = dynSuffix.replace("Justify:Center","Justify:Right"); }
             else
               dynSuffix = "|Justify:Right" + dynSuffix; } }
    else
  dynSuffix = result[3];
    if (relPos != 0)
      {dynPos += relPos;}
    else
      {dynPos = absPos;}
    lines[i] = dynPrefix + dynPos + dynSuffix; }
}  // End dynamic loop
  }  //End main processing loop
  return lines;
}
var myLines=calculate(WScript.StdIn.ReadAll()).join("\r\n");
if (rc == 0)
  WScript.StdOut.Write(myLines);
else
  WScript.StdErr.Write(errMsg);
WScript.quit(rc);
54
User Tools / Fake and Context lines
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.
55
Tips & Tricks / Avoiding note & accidental collisions in layered staves.
This webpage has two concurrent windows to handle the upper and lower staves of layered music and create extra notespace and/or accidental space when notes or accidentals would otherwise collide.  It handles notes only (no chords) and stem direction must be specified on all notes.  It can handle crossovers.


This page must be up at the same time you have a NWC file open since data are moved to and from the textareas on the webpage through cuts and pastes via the windows clipboard.  The stem up note will get extra space and, if both notes have accidentals, the stem up note will get the accidental space (change from non-crossovers).

It is a little easier to cut the lower staff to the lower window first.  After you cut the upper staff to the upper window and Submit, copy the pre-selected upper window, Alt/Tab to get back to NWC, and your cursor will be waiting where you left it and you can paste the clipboard back.  Now you will have to go back to the webpage to select and copy the lower staff.

It can now look at conflicting notes of different durations.

The attachment from the first message of the following thread: NWC Newbie Presents... is a way to test this webpage. At measures 14 and 31 the lead and tenor notes overlap while there are several places where the bass and baritone both have accidentals and are within a 6th of each other.

If you may need to use this when you don't have internet access, just do a Save As from your browser.  Run from your PC it has an unlabeled checkbox which can put test data in both textareas.

Created as a response to the Feature / "bug fix" requests thread.
56
General Discussion / Problems with Air
There is an intermittant problem in that when the first repeat happens, NWC doesn't show the first measure until it is nearly over.  The other question is the piano in measure 8.  The p in front of the E is speared by the crescendo on that note.  Is there any way around that short of inserting spacers whenever it happens?  This is a work in progress.

TIA
57
General Discussion / signa congruentiae
I saw this message in another forum, anyone ever heard of it?  Is it in a font we have?

Quote
I'm transcribing some Tudor music and, in the original, there are some
"squiggle-like signs" that I think are called signa congruentiae. They seem to
indicate points where all the parts come together.

Just wondering whether anyone has ever encoded these signs in abc. They look a
bit like a mirror image of a question mark, or a distorted S. For the moment,
I'm just annotating an "S" above the stave, but it would be nice to use
something more authentic.

The original message is here.
58
General Discussion / Wepage to help with spacing between notes
I have added a webpage to handle spacers at a batch level: Spacer.htm.  An example of how it would be used is for printing parts when the last line contains very few measures.  This page would take the last few lines of that part (based on a print preview) and either increase or decrease the space between notes as the user chose.

After cutting the last few lines into this page (run at the same time you have NWC open), the first step is creating "zero" spacers to cause about the same spacing NWC does by default.  Once created, these spacers can be increased or decreased before the clip text is returned to the NWC file.  More details are under the How to use button.

Feedback is welcome.  Thanks to Rick G. for ideas on getting started with this.
59
General Discussion / Dur vs. Dur2
In a chord (or restchord) where two durations are specified, is Dur: always less than (perhaps equal to) Dur2:?

TIA.  I'm working on another script.
60
General Discussion / What to say to a former NWC user
A friend of a friend on facebook, a professional tuba player, had the following to say about NWC:
Quote
I started with NWC about the same time (1998). I can't take it any more. The upgrade did nothing for my complaints, that I can tell. It's simply too hard to load the extras. Why don't multibar rests exist yet? Why is it so difficult to get rehearsal numbers/letters in? If there's an easy way to do those, and lots of other things, I have never found it. NWC is great for a quick and dirty leadsheet, or a few bars of something, but a full score, in my experience, is way too difficult to maneuver around. I really, really, wanted it to continue working. I finally threw my hands up in disgust about a month ago. It just doesn't do what I want it to do, unless I want to download all the added fonts and other crap that people throw out there. I don't make it a habit of downloading that type of thing from just anyone, and the few times I did try it, the things just didn't work. Both the big boys will do what I want, and much more easily. I just want multibar rests, rehearsal marks, easy lyrics, and easy chord symbols. NWC add-ons haven't made those happen, Finale and Sibelius do it as a basic feature.

This is my reply below.  Anything to add later if I get the chance?
Quote
NWC now has Multi Measure Rests and collapsable staves. User fonts such as Boxmark2 and FretQwik allow rehearsal symbols and chords to be inserted. These fonts as well as hundreds of transcriptions of classical and originial music are on http://nwc-scriptorium.org/index.html
61
General Discussion / Reading the current midi instrument
After listening to various pieces with a mix of instruments and adding and removing staves on another nwc file, a young relative and I listened to our creation.  We had not set an instrument for our new staves but got a surprising duet of some of the instruments from earlier in the session.

Is there a way to read the current patch number of a current midi channel?  TIA
62
General Discussion / MMRs for two staff instrument
I was creating parts for a number of different instruments including an organ.  Long rests printed with no problem for one staff instruments but the organ part had nothing but a string of whole measure rests when it should have had |--19--|.  It was necessary to replace the MMR with real whole measure rests, hide them, then insert a text count with a Boxmark font.

Was there a way to get the MMRs to work as they do on single staff instruments?  TIA


BTW, when using a conductor/tempo staff on top to hold tempos and rehearsal symbols, MMR's should be invisible and all checkboxes on the first page should be clear.
63
General Discussion / Glissando revisited
I am trying to study Fred Nachbaur's gliss.nwc file found in scriptorium.  The 1 & 2 staves are playing the same pitches but fade in and out, leapfrogging to keep the sound sustained.

My problem is changing the halves to quarters in Fred's example.  In the last half of my attachment the sound fades in and out, unlike the first half.

What am I missing?   Thanks in advance.
65
General Discussion / Displaying fast running notes
I have been attempting to transcribe an arrangement of Schubert's "Ave Maria" and have created a real monster.  In an attempt to keep the running notes from overflowing the line, in the muted/displayed staff I turned them into grace notes with hidden rests to fill out the measure.  Unfortunately I can't insert hidden rests after each note in beamed grace notes and keep the beam.  Without an option to force grace notes to take "real time", it's difficult to line up the running stuff with real notes in other staffs.

I'm open to suggestions or proofreading of this piece.  Also, are there items which should never be put on a muted staff because they could mess up playback?

TIA
66
General Discussion / Forcing line break under collapsed staff.
In this snippet, the violin is silent after the cadenza is finished.  On the print preview there are only two measures on the last staff.  I tried to insert a line break a few measures before the end so more measures would appear on the final line, but nothing happened.

TIA
67
General Discussion / Midi sound cuts out on tied note
Starting at measure 20 this piece sounds OK (for a work in progress) but around m 25 the sound in the violin part starts to cutoff prematurely.  Also, if you start over at 20 without pushing F6 twice the sound cuts out there as well.

There are several tempo changes in hidden staves but each midi channel is only used once.

Suggestions greatly appreciated.  TIA
68
General Discussion / A site to avoid re: nwctxt files?
I was searching for nwctxt and came across fixanyfile.com/file-extension/nwctxt/  

The responses made no mention of music and looked like a cut and paste from some other file type.  Did I miss something?

Edited change: I had not made a link with that--the forum software recognized it as such and changed it to a link.  I just took out the h-t-t-p thru w-w-w.

I thought it was a scam as well.  I can't remember the last time I heard of someone with a corrupted nwctxt file that slowed a PC to a crawl.
69
General Discussion / Octave Up
A new webpage will add to a note (not an existing chord) the same note an octave higher, replicating any accidental and keeping all other attributes of the original note intact.

octaveup.html.  It is on the page: nwc.
70
General Discussion / Pentuplet web page utility
I have added Pentuplets.htm to my suite of NWC related web pages.  For the staff with the pentuplets, the page inserts a new tempo 25% faster while the pentuplets are playing and resets the original tempo after they are finished (both hidden).  For staves played concurrently with the pentuplets, on the played/hidden staff each note is tied to the appropriate note of the correct length (add two flags)--on the displayed/muted staff, hidden rests are inserted instead.  These last two use the same data, you can bring back what you originally cut into there to do the other option.

If you have a part with a whole rest, a temporary increase in the time signature may be necessary.  If you plan to audit barlines, this may be necessary on all staves.

For more information, check the Pentuplet user tip.

Feedback is welcome.
71
General Discussion / Need help with a slide (gliss)
I am trying to transcribe a piece where the violin holds a D (first one above treble staff) after a trill then slides down to an A.  Thus far I am trying to create a slide by inserting some notes between them to hang some MPC's but I am getting nowhere (sound of a sick cat?).

Any suggestions?  TIA
72
General Discussion / Missing user tips?
When listing user tips in order of most recent post first, the last tip on the bottom of page 3 was "Exclude from Bar Count" on 2006-11-20 while the top of page 4 was "Heading & Footings" from 2002-05-03.  Is there something missing?
73
General Discussion / Nwctxt webpages to work on dynamics and tempo
I have a pair of new webpages: 
  • Specify the current duration and requested duration of any NCW piece.  Cut the staff containing all tempo markings and MPC tempos to tchange.htm.  Specify the durations or a conversion factor and Submit.  The selected text may be copied back to the staff from which it was cut and all tempos will have been multiplied by the appropriate conversion factor.
  • When playing a crescendo on an instrument where effort is continuous to produce a sound (violin instead of piano), all dynamics need to be changed to override Volume on all dynamics.  Cut the staff to dynamics.htm, change the default volume level (if necessary), click Submit and paste the output back to your staff.

P.S. Forgot attachment.  The B will replace the G as the two notes swap dynamics.
74
General Discussion / Opening NWC files thru Windows 7 start button
Using Windows 7 Home Premium, when i click on the circle with the four color flag on in in the lower left corner (on the toolbar), I am shown a number of programs including NWC2.  When I mouseover it, a list of recently opened files appear on the right.  Twice in the last month or so, clicking on a recent file gives me a message about files associations being lost and I can only open the file thru the viewer.

I have fixed this by going into the file manager, picking a NWC file and choosing open with.  The viewer was highlighted but NWC2 was an option--I chose it and made sure the default "from now on" box was checked.

A while back I changed the default over to the viewer to check out Rick G's clipboard to NWC script and knew I would have to set it back, but having to do this without any further experiments surprises me.

BTW, if I open NWC on it's own and select a file from within the program it works fine.
75
General Discussion / ABC to NWCTXT conversion
Last week I was too much in a hurry to get my conversion web page out the door, but I think it is ready for testing now. Click abcnwc.htm to check it out.  It doesn't do more than one staff at a time, instant layering, macros, or anything delimited by + signs.  Please refresh it before using it on another file.  Also, only one tune/song at a time, don't have more than one X: record.  It can only work with what you have pasted into the first field or changed before hitting "Click".

If you have a problem checking it out, please email or PM me with the details and I'll see what I can do to fix it.

RickG's script was invaluable for me while testing it out (Many thanks!), the details are topic=7088.0.

Merry Christmas!
76
General Discussion / Unable to insert a clef between triplets.
In the attached measure, implied triplets have been continuing for a dozen measures or so.  I'm not interested in implying them but the first one starts in the treble clef while the last two are in the bass clef--I am not able to tripletize the notes with a new clef between the first two.  Any suggestions?  A layered staff is available.

TIA
77
General Discussion / Special Ending Pattern
I am trying to transcribe something but use familiar endings, barlines, and flow directions.  It has

... Ending 1,3 .. Master Repeat close, Ending 2 ... "To next strain", double bar, Ending 4 .... Fine, DoubleBar close .... D.C. al Fine

where the ... represent regular measures.  My guess is Ending 2 flows to the passage after Fine, then back to the top and, following the repeat sign, Ending 4 is the "coda".

TIA. Special endings and flow changes aren't my strong suit.
78
General Discussion / Question about "o" in nwctxt
The following contains two clips: several measures and just the 2nd note:
Code: [Select · Download]
!NoteWorthyComposerClip(2.0,Single)
|Clef|Type:Treble
|Key|Signature:F#,C#,G#,D#
|TimeSig|Signature:4/4
|Note|Dur:4th|Pos:-9
|Note|Dur:4th|Pos:-7
|Note|Dur:4th|Pos:-4
|Rest|Dur:8th
|Note|Dur:8th|Pos:-7
|Bar
|Note|Dur:8th|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-7|Opts:Stem=Up,Beam=End
|Note|Dur:8th|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-7|Opts:Stem=Up,Beam=End
|Note|Dur:8th|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-7|Opts:Stem=Up,Beam=End
|Note|Dur:8th|Pos:-7|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-7|Opts:Stem=Up,Beam=End
|Bar
|Note|Dur:8th|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-5|Opts:Stem=Up,Beam=End
|Note|Dur:8th|Pos:-7|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-7|Opts:Stem=Up,Beam=End
|Note|Dur:4th|Pos:-7
|Rest|Dur:4th
!NoteWorthyComposerClip-End

|Note|Dur:4th|Pos:-7o|Color:0|Visibility:Default

|Note|Dur:4th|Pos:-7o|Color:0|Visibility:Default
I am wondering what the o does in the one note standalone.

TIA
80
General Discussion / Webpage to create a guitar chord
I am working on a webpage to create a guitar chord from a fingering diagram here and hope to add a pulldown to allow the user to select just the name of the chord and the fingering diagram will be filled in.  Thus far the chord diagrams I found on the web aren't that easy to read--I'm open to suggestions as to links to chords or any thing on the webpage.

This is my first attempt to create a webpage related to NWC since doing the Twelve Tone Row.

TIA

P.S. Moved link from old website.
PPS. Moved again.
81
General Discussion / New group for NoteWorthy Users?
In the early days of the internet, "getting on the internet" meant looking at newsgroups (or usegroups), not looking at websites.  Nowadays, my ISP does not offer any access to newsgroups, I have to go through Google Groups to see discussions on a couple of music related topics and my text editor.

At one time I enjoyed playing, studying, and learning from attachments made to posts from people like Fred and Tina et al but have not been able to get on the newsgroups for NWC in years.  Are there any groups for NWC on something like facebook or twitter?  I have tried to get on the NWC group on many occasions (have the install disk), but nothing happens.

TIA
82
General Discussion / All midi instruments
While trying to find a midi instrument that most closely sounds like a harmonic or artificial harmonic on the violin, I started working on a nwctxt file which would have all midi instruments on it.  I run from patch 00 thru 99.  Did I miss any?  Are there any near the end which are redundant?
83
General Discussion / Windows 7
I am moving to a new PC.  Does anyone have any experience with this such as where to park the nwc files, any reason to install 1.75, etc?

TIA
84
General Discussion / Opening midi file with latest version of NWC
I recently right clicked on a downloaded midi file and selected NoteWorthy to open the file.  After it finished and I made a few changes in it, I noticed the screen seemed different.  After clicking "Help" and "About" I was in version 1.75.

Is there a shortcut to force 2.0 to import the file?  TIA
85
General Discussion / Twelve Tone Row
This is the first javascript I have attempted for NWC here and will create a twelve tone row starting at middle C.  I may add options for other starting locations, clefs, and note durations later depending on feedback.

I am still a novice at javascript, but some other examples can be found by chopping ttr.htm off the above link (my home page).

Edited change:  Moved my website.

Another edited change:  Again
86
General Discussion / A round of thanks
Just wanted to thank everyone who has contributed tools, ideas, and solutions on this forum, especially Rick G.

More recently I started to create a transcription of Clair de Lune for violin and piano and created a new staff on Richard Woodriffe's piano version of it.  After copying the the right hand staff to it, I used Andrew Purdam's Parts Tool to remove all but the top note and checked my printed score to see if everything was correct.  Very little needed to be fixed and my transcription was nearly done after only a few minutes instead of weeks when I could find the time.  Many thanks to Richard and Andrew for the score and the tools which have benefited so many over the years.
87
General Discussion / Why won't retard work when not in top staff.
In the attached transcription, the violin has finished while the piano is slowing down to the end.  When I put the ritard and final tempo on the piano staff it did nothing--only after I moved the tempo markings upstairs to the resting violin part did it kick in.  What do I need to be aware of?

TIA
88
General Discussion / Untying syncopated eights into quarters.
Is there a simple way to change eights tied together into quarters?  I have imported a midi file with much syncopation and would like to change this
Code: [Select · Download]
!NoteWorthyComposerClip(2.0,Single)
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2^|Opts:Stem=Down,Beam=End
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2^|Opts:Stem=Down,Beam=End
|Note|Dur:4th|Pos:2
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2^|Opts:Stem=Down,Beam=End
|Bar
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2^|Opts:Stem=Down,Beam=End
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2^|Opts:Stem=Down,Beam=End
|Note|Dur:4th|Pos:2
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:1^|Opts:Stem=Down,Beam=End
|Bar
|Note|Dur:4th|Pos:1
|Note|Dur:Half,Dotted|Pos:0^
|Bar
|Note|Dur:Half,Dotted|Pos:0
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam=End
!NoteWorthyComposerClip-End
into
Code: [Select · Download]
!NoteWorthyComposerClip(2.0,Single)
|Note|Dur:8th|Pos:2|Opts:Stem=Down
|Note|Dur:4th|Pos:2
|Note|Dur:8th|Pos:2^|Opts:Stem=Down
|Note|Dur:4th|Pos:2
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2^|Opts:Stem=Down,Beam=End
|Bar
|Note|Dur:8th|Pos:2|Opts:Stem=Down
|Note|Dur:4th|Pos:1
|Note|Dur:8th|Pos:2^|Opts:Stem=Down
|Note|Dur:4th|Pos:2
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:1^|Opts:Stem=Down,Beam=End
|Bar
|Note|Dur:4th|Pos:1
|Note|Dur:Half,Dotted|Pos:0^
|Bar
|Note|Dur:Half,Dotted|Pos:0
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam=End
!NoteWorthyComposerClip-End

TIA
89
General Discussion / How to notate 'fp'
Has anyone had any experience notating fp?  It was mentioned in an earlier thread on Smorzando, but just as wish list item, not a how-too or workaround.

TIA


BTW, I see the latest postings in this group are not reflected as a new post(s) icon when I first logon.  Anyone else have this problem now?
90
General Discussion / Lining up text (not lyrics) so midi/karioke program can display them.
In La Traviata, a letter is read to the music in the final act.  In Ken Burn's Civil War series, a love letter from Sullivan Balleau to his wife is read while the Ashoken Farewell is in the background (snippet attached).

Is there a way this can be included in a midi file so something like the van Basco program can display the text in time to the music?  TIA
91
General Discussion / Vocal in 3/4, accompaniment in 9/8 (Moved from tips forum)
I'm a novice at this but I am trying to work out a way of producing a score that looks and sounds right using different time signatures.  Specifically I have a vocal line written in 3/4 with an accompaniment in 9/8.  Please advise, in very simple language, how I can get it to look and sound right,

Chris
Welcome to the NoteWorthy community!

The short answer is you can't have two different time signatures like 3/4 and 9/8 in different staves--the whole thing has to be in 9/8.  However, you can have a staff look like 3/4 by following a visible 3/4 signature with a hidden 9/8.  The real (played but hidden) staff will contain the dotted quarter notes but the displayed/muted staff will have quarter notes followed by hidden 8th rests.  Other note lengths are illustrated in the file attached in the first post.

Also download and study the attached file on Peter Edward's first post to decide which method you want to use.  On mine, click the "open book" icon (or "Page Setup" from the File menu), choose the Contents tab and uncheck "Hidden" and click OK to see what the final product looks like.  To keep the accompaniment in 9/8, don't insert 3/4 and don't hide the 9/8.  The italics 3 and simile of course wouldn't be needed either.  You may have no need for a displayed/muted & hidden/played set of staves for the 9/8 parts.. WYSIWYH.

Edited change: The user tip (with attached files) referred to is here.
92
General Discussion / Problem with slurs and grace notes.
In the attached measure, the 1st quarter note needs to be on the same bow as the grace notes leading to the 2nd beat, however the 2nd beat needs to be on a different bow.  Placing a slur on the first beat doesn't stop at the grace notes but continues to the second beat.  The slur attribute is on the first quarter and first grace notes only.

What am I missing? TIA
94
Tips & Tricks / Triplets v. Duples, 3/4 v. 9/8, Hiding "3" in triplets
It is possible to hide the 3 above triplets by changing the time signature to one that has triplets built in such as 6/8, 9/8, or 12/8.  All staves would be in this time signature, but it is possible to change for example, a 9/8 staff to appear to be in 3/4.  The following example is 3/4 - 9/8, but is applicable to 2/4 - 6/8 or 4/4 - 12/8, etc.
  • A 3/4 time signature (default visibility) would immediately be followed by a 9/8 which is hidden on a displayed staff. A 9/8 time signature (default visibility) by itself is OK on hidden staves.
  • On the played but hidden staff, all non-dotted non-triplet notes would need to be dotted.  Notes already dotted would be tied with a note with half the length of the original.  The triplet attribute would need to be removed for any triplets on that staff.  Often a dotted-eighth followed by a 16th would be played as quarter & eighth, so this change might also be necessary.
  • On the displayed but muted staff, dotted notes would be replaced with undotted notes and a hidden rest with half the length of the undotted note.  If the note was originally dotted, its tie can be removed and the note following replaced with a dotted rest, again with half the length of the previous note.
  • On the displayed staff, add in "Staff Italic" a 3 over the middle notes in the first few triplet sets and simile once the triplet pattern is established.
These ideas are demonstrated in the attached file.
Other related tips are in Notating Pentuplets and n-tuplets (vs m-tuplets).

A webpage to help with this is Triplets.htm.  The user has to add the 3 over the middle notes in the first few triplet sets and simile if desired, but the page handles the first three things on the list.

Triplet Conversion
95
User Tools / Updated install procedure?
After my hard drive gave symptoms of crashing, I subscribed to a backup service but didn't flag the directory with the php scripts as one to be saved.  Now I have (kinda) a new PC and had to reinstall the scripts from scratch and found the old version of the arpegginate (sp?) script.

I found the new version from this forum and have changed the .ini file, but was wondering if there is an updated install script with the latest versions of these scripts or vbs files?  TIA
97
General Discussion / User tools in other languages (Semware)?
Thus far I have seen user tools in php and vbs.  Can other programs also manipulate the clipboard after being started by a user tool?  I am thinking specifically of The Semware Editor (TSE) but other programs might be used as well.
98
General Discussion / How to put a rehearsal symbol at front of a line?
I am trying to put rehearsal symbols in a part I'm working on.  In the tempo staff (layered into the part I am trying to print) I am doing a shifted "[nn]" in boxmarks and placing the text at the next note/bar.  If it falls in the middle of a line in the preview, all is well.  Where the next rehearsal symbol will be on a line break, is there any way to force the symbol to be after the clef and key signature on the next line?  Of course, there is no way to tell if the symbol will be on the end of a line until print or print preview.

TIA
100
General Discussion / Can't put NWC files on personal website (semi-off topic)
I have a personal website which has a few NWC files as well as .s files for a text editor I use:
http://bellsouthpwp2.net/w/b/wbporter455/nwc2/.  Using my FTP program I can view all of these, the "s" files are text and the NWC shows up as "[NWZ]" followed by "random" characters.  Unfortunately, no one else can see any of it.  Chasing the "404" error comes up to this site: http://support.microsoft.com/kb/248033.  What do I need to say when I call? 

TIA