NoteWorthy Composer Forum

Forums => General Discussion => Topic started by: Warren Porter on 2024-04-24 02:29 am

Title: Script Bug Challenge
Post by: Warren Porter on 2024-04-24 02:29 am
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.
Title: Re: Script Bug Challenge
Post by: hmmueller on 2024-04-24 05:06 am
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 (https://youtu.be/eFr_boXwOu4)).

H.M.
Title: Re: Script Bug Challenge
Post by: Flurmy on 2024-04-24 08:50 am
I haven't touched my fiddle in quite a while and noticed I was getting intonation problems.
I know very well the problem...  :(
Title: Re: Script Bug Challenge
Post by: Warren Porter on 2024-04-24 11:27 am
(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 (https://youtu.be/eFr_boXwOu4)).
Nice.
I've used youtube a few times for NWC transcriptions a few times such as Thais accompaniment (https://youtu.be/N0eoXG2jrWU).
Title: Re: Script Bug Challenge
Post by: Warren Porter on 2024-04-25 02:07 am
I haven't touched my fiddle in quite a while and noticed I was getting intonation problems.
I know very well the problem...  :(
I should have taken up guitar and I wouldn't have to fret with intonation.
Title: Re: Script Bug Challenge
Post by: Warren Porter on 2024-04-25 11:58 pm
The bug was that after replacing 32nd with 64th, it is (unfortunately) an exact match when 4th is replaced with 8th.