Skip to main content
Recent Posts
1
General Discussion / Re: Scriptorium Update
Last post by Richard Woodroffe -
Folks,
 
The Scriptorium has been updated with works submitted by :

John Hooper    There was a tree   (Holst)
Richard Woodroffe An Den Fruhling   D587 (Schubert)

If you would like to be notified every time the Scriptorium is updated, please send an e-mail  requesting Scriptorium Update    notification to nwcscriptorium "at" gmail "dot" com

https://nwc-scriptorium.org/whatsnew.html

Stay safe 

Richard
2
General Discussion / Re: Script Bug Challenge
Last post by Warren Porter -
The bug was that after replacing 32nd with 64th, it is (unfortunately) an exact match when 4th is replaced with 8th.

  • It can be solved by making that set of statements use a case construct where a break would follow each replace and only one replace is ever done to the duration.
  • The 32nd can be replaced by X which will be turned into 64th after the Whole note is addressed.
  • Instead of looking for "4th", look for /^4th/. That search string, as a regular expression must start the string so it would ignore 64th.
6
General Discussion / Re: Script Bug Challenge
Last post by hmmueller -
Nice  :D. Word boundaries are always helpful.

(Incidentally, I created practice files of that type for a friend who wants to "sight-transpose" with her Bb trumpet. I used a simple AWK script to generate a random sequence of muted/visible + playing/invisible note pairs. Youtube example).

H.M.
7
General Discussion / Script Bug Challenge
Last post by Warren Porter -
I haven't touched my fiddle in quite a while and noticed I was getting intonation problems. One idea to work on that would be to play the note, then the note would play through NWC and midi and I could hear if my note was in tune.

This is the working part of my script, it determines half the duration of the note and creates a rest followed by the note with it:
Code: [Select · Download]
function calculate(clip) {
  var i, saveDur, saveDurB, saveDurE;
  var lines = new Array(), result = new Array(); 
  lines = clip.split("\r\n");

  for (i=0; i < lines.length; i++) {
      result=lines[i].match(/(.*Dur:)([^\|]*)(.*$)/);
  if (result == null)
  continue;  // No duration, didn't follow grace note.
  if (lines[i].indexOf("Grace") > 0) {  // Found a grace note/chord
        continue;  }
  if (lines[i].indexOf("Rest") > 0) {  // Found a rest, ignore
        continue;  }
// shell.popUp(lines[i]);
saveDur = result[2];
//shell.popUp(saveDur);
saveDur = saveDur.replace("32nd","64th");
saveDur = saveDur.replace("16th","32nd");
saveDur = saveDur.replace("8th","16th");
saveDur = saveDur.replace("4th","8th");
saveDur = saveDur.replace("Half","4th");
saveDur = saveDur.replace("Whole","Half");
shell.popUp(saveDur);
   // thisDur = getNoteLength(saveDur);
   // shell.popUp(saveDur);
// Code to manipulate durations goes here
saveDurB = saveDur.replace("=End",""); // In case of triplets.
saveDurE = saveDur.replace("=First",""); // In case of triplets.
lines[i] = "|Rest|Dur:" + saveDurB + "\r\n" + result[1] + saveDurE + result[3];
    }
  return lines;
So far, so good except it changes a 32nd note to a 68th note.
This was my test data:
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.751,Single)
|MPC|Controller:vol|Style:Linear Sweep|TimeRes:Sixteenth|SweepRes:1|Pt1:0,127|Pt2:1,123|Pt3:1,120|Pos:-6
|DynamicVariance|Style:Sforzando|Pos:-8
|Note|Dur:8th,DblDotted,Slur|Pos:n-3|Opts:Stem=Up,Beam=First
|Note|Dur:32nd|Pos:-4|Opts:Stem=Up,Beam=End
|Note|Dur:4th|Pos:-4^
|Note|Dur:8th|Pos:-4
|Note|Dur:4th,Tenuto|Pos:-3
|Note|Dur:8th,Tenuto|Pos:-3
|Bar
!NoteWorthyComposerClip-End
Please hold off 24 hours after this is posted to let others take a shot at it.
10
Object Plugins / Re: PrintConfiguration (0.7)
Last post by hmmueller -
There was a significant bug (or, rather, omission) in this object: It did not save font sizes. I always thought it did, but ... hm. But from version 0.7 onwards, it does. Also, the online documentation now spells out precisely what is saved.

H.M.