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 - Rick G.

51
User Tools / User Tool to make staves use the same channel - rg_SyncStaves.vbs
NWC User Tool arising from the discussion here:
Is there a way to change the instrument of all the staves at once

Download the attachment to your Scripts folder and remove ".txt" From the end of the file name.
Command is: WScript Scripts\rg_SyncStaves.vbs

To use, hide all the staves that you don't want changed.
Select the staff that you want to use as the template and run the tool. The selected staff will be unchanged.
All other visible staves will be changed to use the same MIDI channel/device and 'Ending Bar' as the selected staff.
For these staves, the following will be deleted:
  • Channel Volume
  • Stereo Pan
  • Instrument Name
  • Patch
  • Bank Select

Comments welcome. If reporting a bug, please include your Windows version and any error message.
52
User Tools / User Tool for "digital whiteout" - rg_color.vbs
Simple tool to toggle Highlight n between "white" and its default color.
Download the attachment to your Scripts folder and remove ".txt" From the end of the file name.

The Command can be any one of:
  • WScript Scripts\rg_color.vbs
This will toggle 'Highlight 2'
  • WScript Scripts\rg_color.vbs /c:7
This will toggle 'Highlight 7'
  • Wscript Scripts\rg_color.vbs  /c:<PROMPT:Which Highlight?=#[1,7]>
This will prompt for the Highlight to use.


The program uses SendKeys() to dump keystrokes into NWC. MicroSoft makes continual changes to the way Windows handles SendKeys, so it may not work for you.

It is best to do some tests when there is not unsaved work in any application.
It is possible that rg_color.vbs may cause WScript.exe to hang. (It never hangs with WinXP). It can be stopped with the Task Manager, logging out and back on, or rebooting.

Comments welcome (please include Windows version). If this SendKey method works for a number of "power users", there are more powerful tools that I can post.
53
General Discussion / File Open - Read Only
I would suggest that the 'Open as read-only' checkbox be enabled in the FileOpenDialogs and it be checked by default for File->Open Samples ...

A common operation in NWC is to open a score and extract parts, sometimes to separate files, but often just to print them. On several occasions, I have inadvertently changed my score file, usually by clicking on the 'Save All' button or not paying attention during shut down.

I have also unwittingly changed a sample file or two.
I have removed 'File Save All' from my Toolbars, but still have problems.

I have no strong opinions on how NWC handles situations where the user trys to save a file opened as ReadOnly, except that NWC should not allow it to be saved without renaming.
54
General Discussion / RSS Feed
I've been looking at: https://forum.noteworthycomposer.com/?type=rss;action=.xml

Looks useful for grabbing just the last few posts.
I have a problem with the format. Typically looks like this:
Quote from: rss header
Today, February 06, 2010, 28 minutes ago
This doesn't tell me who the poster is. But if the poster has his email address exposed in Profile Info, it is displayed.
Quote from: rss header
Today, February 06, 2010, 28 minutes ago|member@their.address
IMO, it would be more useful (and respectful of privacy) if the 'Member's screen name' was displayed, rather than the email address.
56
General Discussion / Staccato on split stem chords
Staccato sound:
Can't I put staccato on two notes, without using layer staff?
Try:
Quote
!NoteWorthyComposerClip(2.0,Single)
|Instrument|Name:"Flute"|Patch:73|Pos:11
|PerformanceStyle|Style:Staccato|Pos:7|Visibility:Never
|Chord|Dur:4th,Staccato|Pos:0|Opts:Stem=Down,ArticulationsOnStem|Dur2:4th|Pos2:2
|Chord|Dur:4th,Staccato|Pos:2|Opts:Stem=Up,ArticulationsOnStem|Dur2:4th|Pos2:0
|PerformanceStyle|Style:Semplice|Pos:7|Visibility:Never
!NoteWorthyComposerClip-End
Additional dots can be put in with text, if desired.
More control would need a layer, which is what layers were designed for.

Dur2: notes play back as unarticulated. Their MIDI note off times are not changed when added to triplets.
57
User Tools / PasteAsFile.vbs - Forum Utility
Attached is a VBScript utility to automate the transfer of nwctxt and clips directly from the Clipboard to NWC2. Copy all, or part of any Forum page to the Clipboard and run the utility. It will extract any clips or nwctxt found, create (or overwite) a file: "Clipboard.nwctxt", and launch the file into NWC2. Comments welcome.

Setup:
  • Download the attached file.
  • Remove the ".txt" extension.
  • Create a shortcut to it.
  • Change the shortcut's 'Start in:' folder to where you normally save *.nwc files. This is where "Clipboard.nwctxt" will be saved.

Usage:
  • Select some text. (usually from a Forum Topic page)
  • Copy to Clipboard.
  • Open (run) the Shortcut

A few test topics:

Notes: I use the Forum often, so I put my shortcut on the Favorites bar of IE8 as shown in the attachment. Anything you put in the 'Comment:' box of the shortcut becomes a Tool Tip.

To get the contents of the clipboard, the program uses the line:
  • e = CreateObject("htmlfile").parentWindow.clipboardData.getData("text")
This works in WinXP and IE8 with standard security settings. IE need not be your default browser but, some IE files must be present. If you cannot get this to work, and are willing to test some options, add a post to this topic and include your Windows version and browser version. I have other methods to access the Clipboard, including one that bypasses the browser completely.
58
General Discussion / Launch more than one instance of NWC2
I can have NWC 1.75 and NWC2 running at the same time, but I cannot load more than one instance of NWC2. Has anyone figured out how?

It would be most helpful to be able to load NWC2.0 and the new Beta (NWC2.1 Beta 6 as of this writing), copy & paste between them and compare the changes.

Currently, I must save the output as a graphic, close NWC2 and launch the Beta. This is rather time consuming.
59
General Discussion / Bug: grace note followed by ritard., a tempo
When NWC 1.75 encounters a ritard. following a grace note, it starts the ritard. before the grace note.
NWC2 starts it after. A reasonable change which causes few problems unless there is an a tempo. Then, NWC2 sometimes gets confused and adds extra tempo(s) after the a tempo.

This clip distills and exagerates the problem:
Quote
!NoteWorthyComposerClip(2.0,Single)
|Tempo|Tempo:120|Pos:11
|Rest|Dur:Whole
|Bar
|Rest|Dur:4th,Grace
|TempoVariance|Style:Ritardando|Pos:8
|Rest|Dur:Half
|Tempo|Tempo:90|Pos:-9|Visibility:Never
|Tempo|Tempo:120|Pos:-6|Visibility:Never
|Text|Text:"a tempo"|Font:StaffItalic|Pos:8
|Rest|Dur:Half
|Bar|Style:LocalRepeatOpen
|Rest|Dur:Whole
|Bar|Style:LocalRepeatClose|Repeat:250
!NoteWorthyComposerClip-End
If you press F5, you will see a running time of: 11:04
If you remove the grace rest, the running time changes to: 8:24

This mf2t output shows the problem. The erroneous tempo generated is in red.
Quote
MFile 1 2 192
MTrk
0:0:0 Meta Text "Generated by NoteWorthy Composer"
0:0:0 Tempo 500000
1:0:36 Tempo 504201
1:0:49 Tempo 508474
1:0:62 Tempo 512820
1:0:75 Tempo 517241
1:0:88 Tempo 521739
   . . .
1:1:152 Tempo 631578
1:1:164 Tempo 638297
1:1:177 Tempo 645161
1:1:190 Tempo 652173
1:2:0 Tempo 666666
1:2:0 Tempo 500000
1:2:11 Tempo 659340
1:2:11 Meta TrkEnd
TrkEnd
MTrk
Bug applies to: NWC2.exe, Version 2.0
60
General Discussion / Width of natural sign in NWC2STDA.TTF
Recently, I needed to do this key change:
Quote
!NoteWorthyComposerClip(2.0,Single)
|Clef|Type:Treble
|Key|Signature:F#,C#,G#,D#,A#
|Rest|Dur:Whole
|Bar|Style:Double
|Key|Signature:C
|Bar|SysBreak:Y|Visibility:Never
|Rest|Dur:Whole
!NoteWorthyComposerClip-End
Admittedly, not something that occurs often, but the cancellation looks much too narrow.

Using a font editor, I found that increasing the glyph width of the natural sign from 295 to 346 solved the problem. This does not affect the normal postioning of the natural sign with respect to notes, but I have not tested it for other side effects.

IMO, this should be investigated as a permanent change to NWC2STDA.TTF
62
General Discussion / Bug: Large notehead on RestChord when setting Grace Attribute
Quote from: Paste this as New File:
!NoteWorthyComposerClip(2.0,Single)
|RestChord|Dur:4th|Opts:Stem=Down|Dur2:4th|Pos2:0
|RestChord|Dur:4th|Opts:Stem=Down|Dur2:4th|Pos2:-2,0
!NoteWorthyComposerClip-End
Then Select All and make them Grace Notes. The first one is fine, but the second one still has large noteheads. It only seems to be a problem if you have more than one note in the RestChord.

Strangely, if you copy that to the Clipboard, you get:
Quote
!NoteWorthyComposerClip(2.0,Single)
|RestChord|Dur:4th,Grace|Opts:Stem=Down|Dur2:4th,Grace|Pos2:0
|RestChord|Dur:4th,Grace|Opts:Stem=Down|Dur2:4th,Grace|Pos2:-2,0
!NoteWorthyComposerClip-End
This pastes correctly, however, if you try to copy/paste within NWC2, the problem remains.

If you save the file and reopen it, the problem remains.
If you export it as nwctxt and import it, the problem is fixed.
63
General Discussion / Slur bug - Downward slur originating on downflag note.
IMO, all these are wrong. The slur start should avoid the flag, either by starting at the end of the stem or starting mid-stem, to the right of the flag.
Quote from: the finder of bad slurs
!NoteWorthyComposerClip(2.0,Single)
|Note|Dur:8th,Slur|Pos:3|Opts:Slur=Downward
|Note|Dur:4th,Dotted|Pos:-1
|Note|Dur:16th,Slur|Pos:3|Opts:Slur=Downward
|Note|Dur:8th,Dotted|Pos:-1
|Note|Dur:16th,Slur|Pos:3|Opts:Slur=Downward
|Note|Dur:8th,Dotted|Pos:-1
|Note|Dur:64th,Slur|Pos:3|Opts:Slur=Downward
|Note|Dur:32nd,Dotted|Pos:-1
!NoteWorthyComposerClip-End
64
User Tools / NWCVer.vbs - Utility to check versions
A little utility I wrote some time go to check the versions of my NoteWorthy programs.

To use it:
  • download the attached file
  • remove ".txt" from the end of the filename
  • right click on it and select Open

You can also run it with CScript from the Command Prompt.
With WinXP, my results look look like this:
Quote
NoteWorthy Composer 2
  02.00.04.00  NWC2.exe
  02.00.00.00  nwmid95c.dll
  02.00.00.00  nwmid95c.dlt
  02.00.04.00  Uninstall.exe
  01.05.00.00  nwc2clips.inc

NoteWorthy Composer 2 Viewer
  02.00.04.02  NWC2View.exe
  02.00.00.00  nwmid95c.dll
  02.00.00.00  nwmid95c.dlt
  02.00.04.02  Uninstall.exe

NoteWorthy Composer
  01.75.11.00  NWC32.EXE
  01.70.00.00  NWMID32B.DLL
  01.70.00.00  NWMID95B.DLL
  01.70.00.00  NWMID95B.DLT

NoteWorthy Player  (not installed)

NoteWorthy Composer Browser Plug-in
  01.75.11.00  npnwcw32.dll

Winamp Plug-in
  02.00.02.02  in_nwc.dll
Win98 results are:
Quote
NoteWorthy Composer 2
  02.00.04.00  nwc2.exe
  02.00.04.00  Uninstall.exe
  02.00.00.00  nwmid95c.dlt
  02.00.00.00  nwmid95c.dll
  01.22.00.00  nwc2clips.inc

NoteWorthy Composer 2 Viewer
  02.00.04.00  NWC2View.exe
  02.00.00.00  nwmid95c.dll
  02.00.00.00  nwmid95c.dlt
  02.00.04.00  Uninstall.exe

NoteWorthy Composer
  01.75.15.00  NWC32.EXE
  01.70.00.00  NWMID32B.DLL
  01.70.00.00  NWMID95B.DLL
  01.70.00.00  NWMID95B.DLT

NoteWorthy Player
  01.75.11.00  NWPlayer.exe
  01.70.00.00  NWMID32B.DLL
  01.70.00.00  NWMID95B.DLL
  01.70.00.00  NWMID95B.DLT

NoteWorthy Composer Browser Plug-in
  01.75.11.00  npnwcw32.dll

Winamp Plug-in  (not installed)
YMMV
65
General Discussion / Help File Error
Performance Style Command says:
  • Legato: This style causes all note events to be played to their fullest duration, as if all notes that follow the instruction were slurred to the following note.
  • Staccato: This style causes all the notes that follow it to be played with a more staccato feel than normal.

All other styles currently change the style back to the default play back handling.

This should be added:
  • Tenuto: This style causes all note events to be played to their fullest duration, as if all notes that follow the instruction were slurred to the following note.


I know that there are more errors in the help files, but this one could result in much confusion for someone trying to cancel a Legato with a Tenuto.



67
Tips & Tricks / Adjusting slurs using "phantom notes"
A few simple fixes for some recurring slur problems. None of these require a layer or a separate playback staff.

In each example, the problem is the extreme curvature of the slur in Print Preview.
Unchecking 'Increase spacing for longer notes' makes the curvature even more extreme.

The solution presented here is to change NWC2's apparent vertical start and/or end of the slur using "phantom notes".
The phantom notes are headless notes that are muted by tieing a headless muted grace note into them.

The music up to the Section Close shows the problem. The music after, a solution.
The grace notes used to move the slurs are in red. They are muted by the objects in orange

1) A slur is displaced by a flat.
Quote
!NoteWorthyComposerClip(2.0,Single)
|Note|Dur:4th|Pos:1
|Note|Dur:4th,Slur|Pos:1
|Note|Dur:4th,Dotted,Slur,Accent|Pos:2
|Note|Dur:8th|Pos:b3
|Bar|Style:SectionClose
|Note|Dur:4th|Pos:1
|Note|Dur:4th,Slur|Pos:1
|Note|Dur:4th,Dotted,Slur,Accent|Pos:2
|Note|Dur:Whole,Grace|Pos:5z^|Opts:NoLegerLines,Muted|Visibility:Never
|Chord|Dur:8th|Pos:b3|Opts:Stem=Down[red]|Dur2:Whole|Pos2:5z[/red]
!NoteWorthyComposerClip-End

2) A slur end on an upstem note. Note the stem length of override on the last note.
This makes the slur end look like it seeks the center of the note stem rather than its head.
Quote
!NoteWorthyComposerClip(2.0,Single)
|Note|Dur:4th|Pos:1
|Note|Dur:4th,Slur|Pos:1
|Note|Dur:4th,Dotted,Slur,Accent|Pos:2
|Note|Dur:8th|Pos:-1|Opts:Stem=Up
|Bar|Style:SectionClose
|Note|Dur:4th|Pos:1
|Note|Dur:4th,Slur|Pos:1
|Note|Dur:4th,Dotted,Slur,Accent|Pos:2
|Note|Dur:Whole,Grace|Pos:2z^|Opts:NoLegerLines,Muted|Visibility:Never
|Chord|Dur:8th|Pos:-1,2z|Opts:Stem=Up,StemLength=1
!NoteWorthyComposerClip-End

3) A slur end on a downstem note. Here, both the start and end are altered.
This is a bit longer than the others since it is from an actual piece of music.
Quote
!NoteWorthyComposerClip(2.0,Single)
|Key|Signature:Bb
|Dynamic|Style:p|Pos:-8|Justify:Center|Placement:BestFitForward
|Note|Dur:Whole,Slur|Pos:-5^|Opts:Slur=Upward
|Bar
|Note|Dur:4th,Slur|Pos:-5
|DynamicVariance|Style:Sforzando|Pos:-7|Justify:Center|Placement:AtNextNote|Visibility:Never
|Note|Dur:4th,Slur|Pos:-3|Opts:Crescendo
|Note|Dur:4th,Slur|Pos:-1|Opts:Crescendo
|Note|Dur:4th|Pos:2|Opts:Stem=Down,Crescendo
|Bar
|Dynamic|Style:f|Pos:-7|Justify:Center|Placement:BestFitForward
|Rest|Dur:Whole
|Bar|Style:SectionClose
|Key|Signature:Bb
|Dynamic|Style:p|Pos:-8|Justify:Center|Placement:BestFitForward
|Note|Dur:Whole,Grace|Pos:-3z^|Opts:NoLegerLines,Muted|Visibility:Never
|Chord|Dur:Whole,Slur|Pos:-5^,-3z|Opts:Slur=Upward
|Bar
|Note|Dur:4th,Slur|Pos:-5
|DynamicVariance|Style:Sforzando|Pos:-7|Justify:Center|Placement:AtNextNote|Visibility:Never
|Note|Dur:4th,Slur|Pos:-3|Opts:Crescendo
|Note|Dur:4th,Slur|Pos:-1|Opts:Crescendo
|Note|Dur:Whole,Grace|Pos:5z^|Opts:Crescendo,NoLegerLines,Muted|Visibility:Never
|Chord|Dur:4th|Pos:2|Opts:Stem=Down,Crescendo|Dur2:Whole|Pos2:5z
|Bar
|Dynamic|Style:f|Pos:-7|Justify:Center|Placement:BestFitForward
|Rest|Dur:Whole
!NoteWorthyComposerClip-End
68
General Discussion / Text Placement and Whole Measure Rest bugs
This applies to NWC2.exe, version 2.0.4.0  If you are reading this in 2010 or later, much of this may not apply.

Summer Band season is here and I just finished my annual exercise of transposing D-flat piccolo parts for my wife. If I only used NoteWorthy for this purpose, it would have paid for itself several times over.

This year seemed easy. One two page piece: Rhythm of the Winds, a '64 piece by Frank Erickson.

It turned out to be not so easy. The piece had multi-measure rests of 2, 3, 5, 6 and 8 measures and getting them to look right took several hours. Then I realized that the piece really wasn't in C Major, it just lacked a Key signature. Fixing that required repagination and to my dismay, all the carefully formatted multi-measure rests had to be redone. This took nearly as long as it took the first time. I decided to investigate why. The attached file is the result.

In the attached file, Placement.nwc, none of the text preserves width. All the blue lines have the properties: Centered, AtNextNote/Bar. As can be seen from print preview, NWC2 often hasn't a clue as to where this is for a whole measure rest (WMR). All the blue lines should be centered over the whole measure rests, as in measure 8 (m8). A significant bug.

Text formatted: AsStaffSignature causes a host of problems:
  • If it is not in the first measure after a system break, it shifts the WMR's far to the right and misaligns them with other staves (m4).
  • If the KeySig is hidden, or not present, it doesn't align with other staves where there is a KeySig (m3).
  • If there is no Clef or KeySig, it produces a gap before the Clef in other staves (m9).
  • If a clef is re-introduced, it causes a gap between the Clef and KeySig in other staves (m11).


If barlines don't agree by type, they misalign (m12), or cause WMR's to misalign (m10). This is a small point. Barlines should agree by type, but it is not uncommon to have layers where all the barlines are hidden and undecorated.

A very big point is the width of the measures. When measures consist of a whole measure rest, it seems that NWC2 uses a different method to calculate the width of the first measure after a system break than it uses for subsequent measures. I would expect measures in the same line with identical content to have identical widths (m 5 vs m 6), and  measures with less content not to be wider (m7 vs m8). This discrepancy is lessened if there is more content in the line, but still obvious enough to me to require a fix.
69
Tips & Tricks / Custom Tie Directions
Sometimes, a tied chord is clearer or more pleasing if the tie directions are set in a way not normally available:
Quote from: Custom Tie Directions
!NoteWorthyComposerClip(2.0,Single)
|Chord|Dur:Half|Pos:-6^,b-4^,#-3^,-1^
|Chord|Dur:8th|Pos:-6,-4,-3,-1|Opts:Stem=Up,Beam=First
|Chord|Dur:8th|Pos:-6,-4,-3,-1|Opts:Stem=Up,Beam=End
|Chord|Dur:4th|Pos:-6,-4,-3,-1|Opts:Stem=Up
|Bar
|Chord|Dur:4th,Grace|Pos:#-3^,-1^|Opts:Stem=Up|Dur2:Half,Grace|Pos2:-6^,b-4^|Visibility:Never
|Chord|Dur:Half|Pos:-6^,b-4^,#-3^,-1^
|Chord|Dur:8th|Pos:-6,-4,-3,-1|Opts:Stem=Up,Beam=First
|Chord|Dur:8th|Pos:-6,-4,-3,-1|Opts:Stem=Up,Beam=End
|Chord|Dur:4th|Pos:-6,-4,-3,-1|Opts:Stem=Up
|Bar
|Chord|Dur:Whole,Grace|Pos:#-3z^,-1z^|Opts:Stem=Up,NoLegerLines|Dur2:Whole,Grace|Pos2:-6z^,b-4z^|Visibility:Never
|Chord|Dur:Half|Pos:-6^,b-4^,#-3^,-1^
|Chord|Dur:8th|Pos:-6,-4,-3,-1|Opts:Stem=Up,Beam=First
|Chord|Dur:8th|Pos:-6,-4,-3,-1|Opts:Stem=Up,Beam=End
|Chord|Dur:4th|Pos:-6,-4,-3,-1|Opts:Stem=Up
!NoteWorthyComposerClip-End
Measure 2 shows how to customize tie direction. Measure 3 has a bit less editor clutter. Neither will survive Audit Accidentals.
70
General Discussion / Audit Note Stems (Grace Notes)
IMO, Audit Note Stems would be improved if it ignored Grace Notes. The few grace notes that are set: Stem=Down, are set that way for reasons that have little to do with transposition and clef changing, which is what 'Audit Note Stems' is designed to assist.

If one really wants to remove stem directions from grace notes, repeatedly invoking Find: |Dur*Grace*Stem= and removing any stem direction, takes only a few seconds.
71
General Discussion / File Permission Problem
OS: WinXP (Home Edition)
nwc2.exe ver 2.0.4.0
  • create a folder
  • open MOZART.NWC
  • export it to the New Folder
  • using Explorer, try to delete the New Folder
The exported file is deleted, but WinXP reports that the folder is in use.

Back in NWC2:
  • Export MOZART.NWC to some other folder (Old Folder)
  • using Explorer, try to delete the New Folder
The New Folder can now be deleted.
You can also exit NWC2 and delete the folder.

Win98 does not exhibit this behavior.
72
User Tools / smf-ice.vbs - Utility to show initial MIDI controller events
When NoteWorthy imports a MIDI file, it ignores many events in the file. This may result in NWC playback that is quite different than the MIDI file. smf-ice.vbs is an attempt to correct some of this.

smf-ice.vbs reads a Standard MIDI File (smf) and creates a nwctxt file containing the Initial Controller Events (ice) for controllers that NWC2 supports and launches the nwctxt file. It will overwrite/append any existing nwctxt file. It makes no attempt to delete the nwctxt file it creates.

To use it:
  • download the attached file
  • remove ".txt" from the end of the filename
  • create a shortcut to it
  • drag and drop a MIDI file onto the shortcut

If there are any qualifying events in the MIDI file, this should launch NWC2 and display them. The MIDI channel is displayed on the left. Volume and Stereo pan, if found, are also added to the Score Review display. This allows a for quick overview.

If you have already imported the MIDI file into NWC2, you can export it as 'NWC Text File' to the same folder as the MIDI file. Running smf-ice.vbs will then append staves with added controller objects to your nwctxt file. This is a quick way to hear the impact of the added events.

Some objects may appear in red. These are events that occur after the beginning of the track but before the first note in the track. These may not be correct as other tracks using the same MIDI channel may have notes sounding prior to these controller events.

Technical Notes
  • The MIDI file must have an extension of 'mid', 'kar' or 'rmi'. These are the only extensions allowed by NWC2 for MIDI Import.
  • Type 2 MIDI files are not supported. You are unlikely to have any Type 2 MIDI files.
  • Tempo and Pitch Bend are ignored as they are not Controllers
  • Hold Pedal (Controller 64) is ignored. NWC2 will import it as Sustain Pedal*
  • If you find a MIDI file that smf-ice.vbs does not decode properly, consider emailling it to me.

*if enabled by the MIDI Import Wizard
Quote from: nwc2.hlp->IDH_DLGIMPORT3
When opening a MIDI file, the program can convert sustain pedal events directly into standard music notation. This option enables this conversion. In many cases, it is desirable to disable the automatic inclusion of this data, since it can detract from the overall visual quality of the final score.
73
General Discussion / Special Ending bug
Paste this at the end of each staff of the Piano Template:
Quote
!NoteWorthyComposerClip(2.0,Single)
|Rest|Dur:Whole
|Ending|Endings:1|Visibility:Always
|Bar
|Rest|Dur:Whole
|Ending|Endings:1
|Bar
|Rest|Dur:Whole
!NoteWorthyComposerClip-End
The second barline is misaligned. It happens when the effective visibilities of the Special Endings differ and there are no non-grace notes/rests between the Special Ending and the next bar.
74
User Tools / Ambit.vbs - Show notes found in selection
This program shows the notes used. Ambit is the anglicized form of Ambitus. Usually this is used to find the range for a vocalist but, in my extended form, more useful data is provided.

After MIDI import, transposition or shifting of notes, one is usually must go through the entire staff to check for stange enharmonic note spellings. After fixing them, another search is usually needed to verify. This tool can expedite this.

It produces a short series of muted grace note clusters representing all the note/acccidental positions occurring in the selection. This varies if accidentals are forced. Both the forced and unforced results are useful.
Quote from: Ambit.vbs
Option Explicit ' Ambit.vbs, ver 1.1
' NWC2 UserTool to show all notes used in selection
' &Command: WScript Scripts\Ambit.vbs
' Reference: https://forum.noteworthycomposer.com/?topic=6786.0
' History:
' 2009-12-28: 2.1 Beta 5 aware (1.1)
' 2009-04-10: Initial release (1.0)
Const Template = "|Chord|Dur:Whole,Grace|Pos:?|Opts:Muted"
Dim d: Set d = CreateObject("Scripting.Dictionary")
Dim a1, a2, e, i, s
For Each e In Array("", "n", "b", "#", "x", "v")
  Set d(e) = CreateObject("Scripting.Dictionary")
Next
Dim aIn: aIn = Split(WScript.StdIn.ReadAll, vbCrLf)
For i = 1 To UBound(aIn) - 2
  a1 = Split(aIn(i), "|")
  Select Case a1(1)
    Case "Note", "Chord", "RestChord"
      For Each e In Filter(a1, "Pos")
        For Each s In Split(Split(e, ":")(1), ",")
          a2 = aPos5(s)
          d(a2(0))(a2(0) & a2(1)) = ""
        Next
      Next
  End Select
Next
For Each e In d
  s = Join(d(e).Keys, ",")
  If Len(s) Then aIn(0) = aIn(0) & vbCrLf & Replace(Template, "?", s)
Next
If InStr(aIn(0), vbLf) Then aIn(0) = aIn(0) & vbCrLf & "|Bar|XBarCnt:Y"
WScript.Stdout.Write Join(aIn, vbCrLf)

Function aPos5(ByVal s) ' NotePos to array
  Dim r(4), e ' retval, element
  If InStr("nb#xv", Left(s, 1)) Then r(0) = Left(s, 1) ' accidental
  If InStr(s, "^") Then  r(3) = "^" ' tie
  If InStr(s, "!") Then r(4) = Mid(s, InStr(s, "!"), 2) ' color
  For Each e In r: s = Replace(s, e, "", 1, 1): Next
  If Not IsNumeric(s) Then r(2) = Right(s, 1) ' notehead
  r(1) = Replace(s, r(2), "")
  aPos5 = r ' acc, pos, head, tie, color
End Function

Rose.png shows the result for the Vocal staff of the sample file: Rose.nwc

Edit: 2009-12-28: made 2.1 Beta 5 aware (1.1), older version below.

Code: [Select · Download]
Option Explicit ' Ambit.vbs, ver 1.0
' NWC2 UserTool to show all notes used in selection
' &Command: WScript Scripts\Ambit.vbs

Const Template = "|Chord|Dur:Whole,Grace|Pos:?|Opts:Muted"
Dim d: Set d = CreateObject("Scripting.Dictionary")
Dim a1, a2, e, i, s
For Each e In Array("", "n", "b", "#", "x", "v")
  Set d(e) = CreateObject("Scripting.Dictionary")
Next
Dim aIn: aIn = Split(WScript.StdIn.ReadAll, vbCrLf)
For i = 1 To UBound(aIn) - 2
  a1 = Split(aIn(i), "|")
  Select Case a1(1)
    Case "Note", "Chord", "RestChord"
      For Each e In Filter(a1, "Pos")
        For Each s In Split(Split(e, ":")(1), ",")
          a2 = aPos(s)
          d(a2(0))(a2(0) & a2(1)) = ""
        Next
      Next
  End Select
Next
For Each e In d
  s = Join(d(e).Keys, ",")
  If Len(s) Then aIn(0) = aIn(0) & vbCrLf & Replace(Template, "?", s)
Next
If InStr(aIn(0), vbLf) Then aIn(0) = aIn(0) & vbCrLf & "|Bar|XBarCnt:Y"
WScript.Stdout.Write Join(aIn, vbCrLf)

Function aPos(s) ' NotePitchPos to array
  Dim test: test = Split("nb#xv ? oxXz ^")
  Dim r(3), c, i ' retval, char, index
  r(1) = s: c = Left(s, 1) ' acc?
  For Each i In Array(0, 3, 2)
    If InStr(test(i), c) Then r(i) = c
    r(1) = Replace(r(1), r(i), "", 1, 1)
    c = Right(r(1), 1) ' tie?, head?
  Next: aPos = r ' acc, pos, head, tie
End Function
75
User Tools / Audit stem direction of beamed notes
After transposing or shifting notes, Audit Note Stems is usually used to clean things up. Unfortunately, it ignores some beamed notes.

This little tool may help:
Quote from: AuditBeamStems.vbs
Option Explicit ' AuditBeamStems.vbs Ver 1.0 - Rick G.
' NWC2 UserTool to force default stem direction of beamed notes
' &Command: WScript Scripts\AuditBeamStems.vbs

Dim e
For Each e In Split(WScript.StdIn.ReadAll, vbCrLf)
  If Instr(e, "Beam=First") Then
    If Instr(e, "Dur2:" ) = Instr(e, Chr(34)) Then
      e = Replace(e, "Stem=Up,", "")
      e = Replace(e, "Stem=Down,", "")
    End If
  End If
  WScript.StdOut.WriteLine e
Next

Edit: added "some".
76
General Discussion / Hidden Rest anomalies
Code: [Select · Download]
!NoteWorthyComposerClip(2.0,Single)
|Note|Dur:16th|Pos:0|Opts:Stem=Down,Beam=First
|Rest|Dur:16th|Opts:VertOffset=-15
|Note|Dur:16th|Pos:0|Opts:Stem=Down,Beam=End
|Note|Dur:16th|Pos:0|Opts:Stem=Down,Slur=Downward,Beam=First
|Rest|Dur:16th|Opts:VertOffset=-15|Visibility:Never
|Note|Dur:16th|Pos:0|Opts:Stem=Down,Beam=End
|Note|Dur:16th,Slur|Pos:0|Opts:Stem=Down,Slur=Downward,Beam=First
|Rest|Dur:16th,Slur|Opts:VertOffset=-15|Visibility:Never
|Note|Dur:16th|Pos:0|Opts:Stem=Down,Beam=End
|Note|Dur:16th,Slur|Pos:0|Opts:Stem=Down,Slur=Downward,Beam=First
|Rest|Dur:16th,Slur|Opts:VertOffset=1|Visibility:Never
|Note|Dur:16th|Pos:0|Opts:Stem=Down,Beam=End
!NoteWorthyComposerClip-End
This clip is a bit strange. The first and last group display the way I would expect in the Editor and Print Preview (except that the slur should be closer to the beam). As for the center two groups ...

IMO, beams should ignore hidden rests.  Slurs should ignore hidden rests. That said, slurs should continue to observe the position of hidden muted grace notes unless some superior method is devised to increase slur curvature.
78
General Discussion / Copy Url suggestion
On most NWC's pages outside this forum, there is an option to Copy Url.
If, for example, I click on Copy Url for <this page>, it places this in my clipboard:
Code: [Select · Download]
Commands
http://ntworthy.com/nwc2/help/HELP_ONCOMMANDS.htm

It would more useful to me if this were placed in my Clipboard instead:
Code: [Select · Download]
[url=http://ntworthy.com/nwc2/help/HELP_ONCOMMANDS.htm]Commands[/url]
79
General Discussion / Staff Style and Object Defaults
IMO. NWC would be more friendly if it took the style of the staff into account when determining defaults.

For a Lower Grand Staff, the default visibility of:
  • Tempo
  • Dynamic
  • Dynamic Variance
should be: Never

For any staff except a Lower Grand Staff, the default visibility of:
  • SustainPedal
should be: Never

I think that these are the defaults that a new user would expect.

For all staves, the visibility of a hairpin should follow the visibility of the last Dynamic or DynamicVariance.  A new dynamic variance: 'hairpin position' could be added. This would act like like 'Rinforzando' or 'Sforzando', except that nothing would be printed. This would add flexibility to hairpin position and visibility.

For most songs with Piano and Bass, the piano's Lower Grand Staff is nearly identical to the Bass. These changes would reduce editing considerably.

Most of the dynamics from the Upper Grand Staff could be copied to the Lower Grand Staff staff without futher editing.
80
General Discussion / Forum Changes
It would be helpful if a "sticky" could be added to the top of every board that outlines who has access to it and what is topical for that board. As it is, I'm not sure, e.g., if it is appropriate to attach a(n) NWC2 file to the General Discussion board.

Perhaps a board is needed to discuss changes, problems and tips relating to the Forum itself. This topic seems "off topic" for this board.

I have long thought that a board is needed for User Fonts that would allow *.ttf and *.ttc attachments. That way, users could open an attached *.nwc file and open an attached font without having to save or permanently install the font. Currently the forum is not friendly to those wishing feedback on experimental fonts.
82
General Discussion / Admin Required to change User Tool Settings
Got the attached warning after Alt+F8 Alt+E:
Hardly suprising since I am running Win98SE. Blissfully, it only occurs once per NWC2 session.
Might it not be a better idea to save the 'modified timestamp' of nwc2UserTools.ini and issue a warning if the user tries to change the settings and the timestamp doesn't change?
Or perhaps examine the error that surely results from an attempt to modify a file without permission?


Edit: This has been fixed as of Beta 2.28
83
User Tools / Utility to list SoundFont Presets: sf.vbs
Not a User Tool.

After downloading, rename the file to: 'sf.vbs'. Create a shortcut to it on the Desktop and drag a SoundFont file on to it. SoundFont files have the extensions: 'sfx' or 'sf2'

The program will sort all the presets (instruments) in the SoundFont to a 'txt' file which it launches in whatever you use to view 'txt' files (usually NotePad). This makes it easy to cut and paste into your NWC patch file.

It also works as a 'SendTo' target for Explorer.

This is a RIFF file walker that can be used for 'rmi', 'wav' and 'avi' files. For large avi files, you may want to run it with CScript and increase the tag limit which I have set at 100 tags.

The most recent version is: sf101.vbs.txt <here>.
84
User Tools / Remove unneeded tags and opts: Tidy.js
This tool removes tags and options that do not effect the output.

During the course of editing, it is easy to set options that are superfluous, such as setting a slur direction on a note that is not slurred. Tidy.js will remove most of these.

Specifically, it will remove:
  • Visibility:TopStaff on Flows and Endings
  • Visibility:Never on Instruments and MPC's
  • Visibility:Always on everything else
  • ArticulationsOnStem where there are no articulations
  • Tie direction for notes that are not tied
  • Slur direction for notes that are not slurred

Using this tool before posting a clip to this forum will remove most of the extraneous items.
Using the tool on each staff before the final save should make the file easier to edit months later.
Quote from: Tidy.js
/*
   NWC2 User Tool, Ver 1.00 - Rick G.
   Purpose: remove unneeded tags and opts
   &Command: WScript Scripts\Tidy.js
*/
var io = WScript.StdIn.ReadAll().split("\r\n");
for (var j = 1; io[j].search(/\w+/) + 1; j++){
   switch (RegExp.lastMatch){
      case "Flow": case "Ending":
         Zap(/^!/, /\|Visibility:TopStaff$/); break;
      case "Instrument": case "MPC":
         Zap(/^!/, /\|Visibility:Never$/); break;
      case "Note": case "Chord": case "RestChord":
         Zap(/Staccato|Tenuto|Accent/, /ArticulationsOnStem,?/);
         Zap(/\^/, /Tie=\w+,?/);
      case "Rest":
         Zap(/Slur[,|?]/, /Slur=\w+,?/);
      default:
         Zap(/^!/, /\|Visibility:Always$/);
   }
}
WScript.StdOut.Write(io.join("\r\n"));
function Zap(re, re1) {
   if (!(re.test(io[j]))) io[j] = io[j].replace(re1, "");
} // if re is not in io[j], remove re1 from io[j]
Tidy.js doesn't remove everything that is superfluous. Some stem and tie directions are not removed, but this would require a voice analysis that is beyond the scope of this simple program.
85
Tips & Tricks / Using MIDI files that lack Key and/or Time Signatures
MIDI files can store Key and Time Signatures but they are ignored during MIDI playback. Often they are wrong or omitted. If omitted, NoteWorthy Composer (NWC) assumes Key of C major and 4/4 time. This is often incorrect. MIDI also has no concept of barlines which can be a problem if there are pick-up notes.

There are several ways to solve these problems. I have found that the easiest is to open the MIDI file in NWC, make a few changes and save it back as a new MIDI file. When this new MIDI file is opened in NWC, many of the problems are fixed.

I cannot attach a MIDI file here, so I attached: Carol_00.nwc
Load this file into NWC and save it as a Type 1 Midi File named: Carol_01.mid

This is, of course, the opening line of It Came Upon the Midnight Clear.

If you open Carol_01.mid in NWC it will look like the hideous mess in the first pane of the png attachment, but a few changes will work wonders. These changes are shown in the Carol_02 pane.

On the top staff:
  • Delete the incorrect 4/4 Time Signature
  • Insert the correct Time Signature (in this case 6/8) where the first downbeat is supposed to be
  • Force Accidentals
  • Insert the correct Key Signature (in this case B flat major)
  • Audit Accidentals (optional)
In all staves with playing notes:
  • Make the Playing Style: Tenuto
It will now look like the Carol_02 pane.

Save the song as a Type 1 Midi File and open it in NWC.
Key, time signature, tie, and barline problems are all corrected! See the Carol_03 pane.
Most of the beaming is also corrected.

A bit of tyding remains:
  • The time signatures need to be moved.
  • The G flat needs to be an F sharp (Then run Audit Accidentals)
  • The first B flat in the top staff needs to be 'Lyric Syllable: Never' and have its beaming changed
  • The E flat in the prior chord needs to become a quarter note
  • The tempo needs to be moved and changed to 'Base: Dotted Quarter'
  • The lyrics need to be copied to the top staff

Delete unneeded staves. The Carol_04 pane shows the final result.


Notes:
Setting Playing Style: Tenuto is not always needed. It keeps whole and half notes intact.
If there are multiple Key/TimeSig changes, they need only be entered on the top staff prior to MIDI save. NWC will add them where needed when the MIDI file is opened.
Related posts:
Help File Error (Tenuto works like Legato)
Re: midi file import (Too many Key and Time Signatures)
86
General Discussion / Slur Bugs
The slurs in the attachment should not cross the red marks. The start of a slur above a voice should not be affected by a lower voice.
87
General Discussion / Whole Measure Rest alignment bug (Beta 2.22)
Layer:
Code: [Select · Download]
!NoteWorthyComposerClip(2.0,Single)
|Rest|Dur:Whole
|Bar|SysBreak:Y
|Rest|Dur:Whole
|Bar
|Rest|Dur:Whole
!NoteWorthyComposerClip-End
with:
Code: [Select · Download]
!NoteWorthyComposerClip(2.0,Single)
|Clef|Type:Treble
|Key|Signature:Bb,Eb,Ab
|TimeSig|Signature:Common
|Rest|Dur:Whole
|Bar
|Rest|Dur:Whole
|Bar
|Rest|Dur:Whole
!NoteWorthyComposerClip-End
Whole Measure Rests align in the editor, but not in Print Preview.
Workaround is to add invisible barlines:
Code: [Select · Download]
!NoteWorthyComposerClip(2.0,Single)
|Bar|Visibility:Never
|Rest|Dur:Whole
|Bar|SysBreak:Y
|Bar|Visibility:Never
|Rest|Dur:Whole
|Bar
|Rest|Dur:Whole
!NoteWorthyComposerClip-End
Code: [Select · Download]
!NoteWorthyComposerClip(2.0,Single)
|Clef|Type:Treble
|Key|Signature:Bb,Eb,Ab
|Bar|Visibility:Never
|TimeSig|Signature:Common
|Rest|Dur:Whole
|Bar
|Bar|Visibility:Never
|Rest|Dur:Whole
|Bar
|Rest|Dur:Whole
!NoteWorthyComposerClip-End
IMO, Whole Measure Rests must align in any given bar across the entire system regardless of signature contents/visibility.
88
User Tools / NumberBars.vbs - add rehearsal numbers
This liitle tool arose from the discussion in: How to put a rehearsal symbol at front of a line?

As usual, copy it to your Scripts folder and remove the '.txt' extension.
Command: WScript Scripts\rg_NumberBars.vbs

To use it:
  • Add a new staff.
  • Move it to the top and check Layer with next staff.
  • Copy a full staff and paste it into the new staff.
  • At bar #2 on the new staff, insert Text: "2  ", Center, Best Fit.
  • After that, insert a Key signature of "C".
  • Select nothing and run the tool.

The attachment shows the setup just prior to running the tool.

To number every bar, put "2  " on the 2nd bar.
To number every 5th bar, put "5  " on the 5th bar.
To number every 10th bar, put "10  " on the 10th bar.

The Key signature helps get the alignment right. Depending on the Font used, 1 to 3 spaces are needed to get the number to center over the previous barline.

You may have to move the text vertically to clear some items in the signature. In some rare cases, it may number an empty bar at the end instead of the one you want. If you use a hidden ending bar in Staff Properties, you will probably want to exclude the final bar line from the count.

A side use is to add no text or key. This will result in a staff with just invisble rests and barlines.
89
General Discussion / System break anomaly (Beta 2.22)
In the attached nwc file I have set up a Key change in accordance with Alfred's Essential Dictionary of Musical Notation, pg, 172

By fiddling with the page margins, I produced the attached gif. Musically, this is wrong. The system break should (indeed must) occur at the hidden bar line after the key change. Even if I set a SysBreak on the hidden bar, it is ignored and the break still occcurs in the wrong place.

One way to code around this problem would be to consider barlines that enclose objects, none of which have any duration, to be an inseparable part of the prior measure unless a SysBreak was explicitly set. This would also handle a TimeSig change, although it would still not add the Timesig to the start of the next line.

At some point, NWC2 needs to be able to handle changes to signature items in a musically correct way. This is not a high priority, but getting the Key change right would be a start.
91
General Discussion / Beam angle descrepancy (Beta 2.21)
Quote
!NoteWorthyComposerClip(2.0,Single)
|Note|Dur:16th|Pos:1|Opts:Stem=Down,Beam=First
|Note|Dur:16th|Pos:3|Opts:Stem=Down,Beam
|Note|Dur:16th|Pos:6|Opts:Stem=Down,Beam
|Note|Dur:16th|Pos:8|Opts:Stem=Down,Beam=End
!NoteWorthyComposerClip-End
In the Editor, the beam angle on this is what I would expect, but it is much too steep in Print Preview and when actually printed.
92
General Discussion / Spacing bug (Beta 2.21) after Special Ending
Code: [Select · Download]
!NoteWorthyComposerClip(2.0,Single)
|Clef|Type:Treble
|Key|Signature:C|Visibility:Never
|TimeSig|Signature:Common
|Note|Dur:Whole|Pos:0
|Bar
|Note|Dur:Whole|Pos:0
|Bar
|Ending|Endings:1
|Note|Dur:Whole|Pos:0
|Bar
|Note|Dur:Whole|Pos:0
|Bar|Style:MasterRepeatClose
|Note|Dur:Whole|Pos:0
|Bar
|Note|Dur:Whole|Pos:0
|Bar
|Note|Dur:Whole|Pos:0
|Bar|SysBreak:Y
!NoteWorthyComposerClip-End
Using a 300dpi printer, space from bar to note is 36 pixels with Special Ending, 52 pixels without. Same problem in NWC 1.75b
IMO, presence/absence of Special Ending should not change the distance from bar to note. I am not looking for a workaround.
93
User Tools / HeadPatch.vbs - a Tool to change instruments when notehead changes
The attached tool will insert object(s) into a staff when the notehead type changes.

Usually, an X or diamond notehead indicates a change of instrument patch, volume and/or pitch. Putting these on separate staves can be tedious.

Normally, information is added to the command line to alter the behaviour of the tool. But this tool needs far too much info for that method. Instead, it reads the info from the end of the staff (what I call the 'definition area'). I use |Ending|Endings:7 to indicate this which keeps the defintions from playing or being exported to MIDI.

Listen to this clip:
Code: [Select · Download]
!NoteWorthyComposerClip(2.0,Single)
|Clef|Type:Bass|OctaveShift:Octave Down
|Key|Signature:Bb,Eb,Ab
|Tempo|Tempo:150|Pos:11
|TimeSig|Signature:AllaBreve
|Dynamic|Style:f|Pos:-7
|Bar|Style:LocalRepeatOpen
|Note|Dur:4th|Pos:3
|Note|Dur:4th|Pos:6
|Note|Dur:4th|Pos:3x
|Note|Dur:8th|Pos:3x|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-4^|Opts:Stem=Up,Beam=End
|Bar
|Note|Dur:8th|Pos:-4
|Note|Dur:4th|Pos:n-2
|Note|Dur:8th|Pos:0^
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=End
|Bar
|Note|Dur:4th|Pos:3
|Note|Dur:4th|Pos:n5
|Note|Dur:4th|Pos:3x
|Note|Dur:8th|Pos:3x|Opts:Stem=Up,Beam=First
|Note|Dur:8th|Pos:-4^|Opts:Stem=Up,Beam=End
|Bar
|Note|Dur:8th|Pos:-4
|Note|Dur:4th|Pos:-1
|Note|Dur:8th|Pos:1^
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam
|Note|Dur:8th|Pos:1|Opts:Stem=Down,Beam
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=End
|Bar|Style:LocalRepeatClose|Repeat:4
|Ending|Endings:7|Visibility:Never
|Instrument|Name:"[o]"|Patch:36|Trans:0|DynVel:10,30,45,60,75,92,108,127|Pos:10|Justify:Center|Placement:AtNextNote
|Dynamic|Style:f|Pos:-9|Justify:Right|Placement:AtNextNote|Visibility:Never
|Note|Dur:4th|Pos:0|Visibility:Never
|Bar|Visibility:Never
|Instrument|Name:"[x]"|Patch:115|Trans:-2|DynVel:10,30,45,60,75,45,108,127|Pos:10|Justify:Center|Placement:AtNextNote
|Dynamic|Style:f|Pos:-9|Justify:Right|Placement:AtNextNote|Visibility:Never
|Note|Dur:4th|Pos:0x|Visibility:Never
|Bar|Visibility:Never
|Text|Text:"{^}"|Font:StaffBold|Pos:10|Justify:Center|Placement:AtNextNote|Visibility:Never
|Note|Dur:4th|Pos:0X|Visibility:Never
|Bar|Style:SectionClose
!NoteWorthyComposerClip-End
Then run the tool on the entire staff and listen again. Each time the tool is run, anything added by it before is removed. I do this by tagging the additions: "|Color:6|Visibility:Never", hardly a normally needed attribute.
94
General Discussion / Flow bug (Beta 2.21)
Quote
!NoteWorthyComposerClip(2.0,Single)
|Note|Dur:Whole|Pos:0
|Bar
|Text|Text:"    x"|Font:StaffItalic|Pos:8|Color:1
|Note|Dur:Whole|Pos:0
|Flow|Style:DaCapo|Pos:6|Justify:Right
!NoteWorthyComposerClip-End
If you position the cursor under the x and press F5, nothing plays. Maybe it has been this way forever but IMO, it is wrong. The D.C. has not yet been encountered and should be acted upon.

Edit: The above is only true if you have Play set to: 'from insertion point'
Edit: This is fixed in Beta 2.22
95
User Tools / VBScript I/O Test
Quote from: Scripts\ioTest.vbs
Option Explicit ' NWC2 User Tool, Ver 1.0 - Rick G.
'WScript Scripts\iotest.vbs <PROMPT:Test?=#>
Dim a, s,  mark: mark = Timer
Select Case WScript.Arguments(0)
   Case 1
      Do Until WScript.StdIn.AtEndOfStream
         s = WScript.StdIn.ReadLine
         WScript.StdOut.WriteLine s
      Loop
   Case 2
      a = Split(WScript.StdIn.ReadAll, vbCrLf)
      WScript.StdOut.Write Join(a, vbCrLf)
End Select
WScript.StdErr.WriteLine Round(Timer - mark, 2) & " seconds"
WScript.Quit(1)
Copy the above into NotePad and save it to you Scripts folder as: ioTest.vbs
&Command: is WScript Scripts\ioTest.vbs <PROMPT:Test?=#>

Open the sample file: consecration.nwc and click on the Violins II staff.
I think this staff has the most objects of any in the Samples folder.

My times for the various tests are:
  • Test 0: 0.00 - 0.02 seconds.
  • Test 1: 0.35 - 0.50 seconds.
  • Test 2: 0.05 - 0.08 seconds.
It takes NWC2 a half-second or so more to display this.

Win98 is about 10% faster than XP. I have an AMD 500mHz processor.
I am curious if this is the same for multi-core processors. I would seem to me that Test 1 might allow the script to get started before all its STDIN was created.

Results from others appreciated.
96
General Discussion / Note Velocity Anomalies (as of Beta 2.21)
Playing around with nwctxt, I produced this:
Code: [Select · Download]
!NoteWorthyComposer(2.0)
|StaffProperties|Volume:-1|StereoPan:-1
|PerformanceStyle|Style:Tenuto|Pos:14
|Instrument|Trans:0|DynVel:10,30,45,60,75,92,108,127|Pos:10
|Instrument|Trans:0|DynVel:0,30,45,60,75,92,108,127|Pos:6
|Dynamic|Style:ppp|Pos:-7
|Note|Dur:4th|Pos:-2
|Dynamic|Style:p|Opts:Velocity=-1|Pos:-11
|Note|Dur:4th|Pos:-2
|Dynamic|Style:p|Opts:Velocity=0|Pos:-7
|Note|Dur:4th|Pos:-2
|Dynamic|Style:p|Opts:Velocity=-128|Pos:-11
|Note|Dur:4th|Pos:-2
|Dynamic|Style:p|Opts:Velocity=0|Pos:-7
|Note|Dur:4th|Pos:-2
!NoteWorthyComposer-End
And was somewhat surprised to get this output from Mf2T:
Quote
MFile 1 2 192
MTrk
0:0:0 Meta Text "Generated by NoteWorthy Composer"
0:0:0 Meta TrkEnd
TrkEnd
MTrk
0:0:0 Meta 0x21 00
0:0:0 Meta TrkName "Staff"
0:0:0 On ch=1 note=g5 vol=110
0:1:0 On ch=1 note=g5 vol=0
0:1:0 On ch=1 note=g5 vol=255
0:2:0 On ch=1 note=g5 vol=0
0:2:0 On ch=1 note=g5 vol=255
0:3:0 On ch=1 note=g5 vol=0
0:3:0 On ch=1 note=g5 vol=128
1:0:0 On ch=1 note=g5 vol=0
1:0:0 On ch=1 note=g5 vol=128
1:1:0 On ch=1 note=g5 vol=0
1:1:0 Meta TrkEnd
TrkEnd
What MF2T calls "vol", NWC2 calls "Velocity". Playing this on my AWE32 synth produced no problems. It sounds as though it translates vol=255 into vol=127 and vol=128 into vol=0. YMMV

NWC2's action seems to be to accept any numeric input and kill all but the lowest 8 bits. If this results in zero, it is ignored and the current running velocity is used instead.

It seems to me that when dealing with 7bit data, zero should mean zero. -1 should mean: "keep the running status". This is how Volume and StereoPan work in StaffProperties.

8bit data should not be output where 7bit data is expected.

IMO, Volume, StereoPan, DynVel and Velocity should all work the same. The User Interface spinbox should range from -1 to 127. Any numeric input should be accepted from a Clip or nwctxt. If the input evaluates to True (i.e., -1), the running status should be used. Otherwise, the lowest 7 bits should be used.

This would simplify the program, the documentation, User Tools and Nwctxt Converters. The checkboxes could be eliminated (they are not exported anyway).
97
General Discussion / Muted notes and muted staves
NWC's handling of muted notes/staves is troubling to me.

Currently (as of Beta 2.20), muted notes are played back as if they were rests.
Muted Staves are treated as if all the notes/chords are muted.
Simple, but perhaps too simple.

I would expect a muted staff to be removed from playback.
This would allow the user to set up multiple tempi and MPC staves and experiment by muting staves. Currently, I copy the staves into NotePad and insert/delete them from NWC. I can't save a work in progress, without starting the whole process over.

For MIDI Export, I would expect that a muted staff would not be exported.
No Lyrics (if attached to the muted staff), and no track. It makes no sense to me that "Display only" staves should be exported. Often, I have to look at the text output of MF2T, and I'd rather not have to wade through all the track data. It would be so much easier to mute all the staves but one, mute the notes on it up to the problem area, export it and see needed info at the top of the MF2T output.

This might even improve the perception of the product. I look at a lot of downloaded MIDI files, and when I see an armload of empty tracks, my reaction is: What lame program produced this?

It is too soon for me to have an opinion on whether muted tracks should be excluded from nwctxt.

To discuss muted notes, a short explanation of MIDI is useful. MIDI files are almost entirely comprised of delta times and messages. The message tells the MIDI player what to do, the delta time tells it how long to pause before doing it. To produce a note, a program can send a note on message (containing the channel, pitch and velocity), pause, then send a note off message (containing the channel and pitch). Almost no software does this (including NoteWorthy). Instead, they send: note on, pause, note on. The second note on is identical to the first, except that the velocity is zero. This is interpreted by the MIDI player as a "note off". Most discussions of MIDI simply use "note on/off" as a shorthand for "note on/same note off with velocity=0".

Treating muted notes as rests has a few problems.
It can produce the dreaded stuck note:
Quote
!NoteWorthyComposerClip(2.0,Single)
|Instrument|Name:"Recorder"|Patch:74
|Note|Dur:4th|Pos:0^
|Note|Dur:4th|Pos:0|Opts:Muted
|Rest|Dur:Whole
|Rest|Dur:Whole
|Note|Dur:4th|Pos:b0
!NoteWorthyComposerClip-End
These are hard to find.

I would suggest that muted notes produce a note off.
There is no harm in producing a note off without a previous note on. Many programs will send a 128 note offs X 16 channels encompassing every MIDI note as a brute force "kill switch". Every MIDI playback device must be able to deal with it. There are seldom many muted notes in a playback staff. The file and processing overhead would be undetectable to the listener.

I would suggest that grace notes produce a note off, but no pause.
This is what I would expect a muted grace note to do. I don't expect, nor desire it to inject a pause into playback. I can't see a downside to this change as a muted grace rest could be used to simulate NWC's current playback behaviour.

Advantages:
More accurate playback. When the grace note is supposed to fall before the beat, it is disturbing to hear a pause before the principal note, more so when there are notes in other staves sounding on the beat. Only the grace notes would need to go to a separate playback staff. Putting a lot of notes on non visible staves defeats one of NWC's great benefits: verifing notes via playback. NWC's default grace note slurs often need to be fixed and this delays playback even more. Example:
Quote
!NoteWorthyComposerClip(2.0,Single)
|Note|Dur:8th,Grace,Slur|Pos:0|Opts:Muted
|Note|Dur:Whole,Grace|Pos:1z|Opts:Muted|Visibility:Never
|Chord|Dur:4th|Pos:-4,-2,1
!NoteWorthyComposerClip-End

Ties to nowhere. There is a French term for this that escapes me. Looks like this:
Quote
!NoteWorthyComposerClip(2.0,Single)
|Note|Dur:4th,Tenuto|Pos:0
|Chord|Dur:4th|Pos:-4^,-2^,1^
|Chord|Dur:4th,Grace|Pos:-4,-2,1|Visibility:Never
|Rest|Dur:4th
!NoteWorthyComposerClip-End
As a piano player, this tells me to give a weak accent to the note, and full duration to the chord. It also suggests that future "tenuto" articulations are weak accents rather than duration modifiers. Ravel's Forlane has dozens of these. Playback is only off by a 32nd note, but it seem logical to me that one ought to be able to mute the grace note and get accurate playback.

Slurs. Muted, hidden grace notes are very useful for adding arc to slurs, but I'd rather not hear their effects.

The biggest advantage to me is that the program would do what I expect. For the person starting out, I would think it even more important.

IMO, Software that does unnatural things in an attempt to be "accurate from its own point of view" is not friendly.
98
General Discussion / MIDI Import Wizard Help problem (Beta 2.19)
Invoking File->Import... and then selecting a MIDI file brings up the MIDI Import Wizard.
On the Step 1: to Step 3: screens clicking on the ? Icon and then clicking on an item results in this popup:
Quote from: Windows Help
Cannot find the C:\Program Files\NoteWorthy Composer 2\nwc2.hlp file. Do you want to try to find his file yourself?
The Import Instruction popup (accessable from the Step 3: Add.. and Edit.. buttons) correctly uses nwc2help.chm except that many items just display the Introduction pane.

I'm using Win98SE.
Same problem on WinXP (Home Edition), except for a slightly different popup message from Windows Help
99
General Discussion / Display glitch: Mouse Wheel causes Selection Inversion
When I have a selection, and then roll the mouse wheel, the background color of the selection toggles from black to white. As usual, F9 fixes this. This does not happen in NWC 1.75.

I'm using: NWC2 Beta 2.19, MicroSoft USB optical (HID compliant) mouse, Win98SE
100
Tips & Tricks / Program Help: Useful Links
General

NWC2 - NoteWorthy Composer

For the old (2.1) version:

For the old (1.75) version:

Web Tools:


2013Jul12 edit: added Web Tools
2012Jan22 edit: added NoteWorthy Composer 2 User Tools
2011Dec30 edit: added v2.5 User Guide
2011Sep08 edit: added Wish List
2011May13 edit: added Fonts
2011Jan09 edit: removed 1.75 Downloads
2009Jul16 edit: added User Guide
2009May26 edit: added main FAQ
2009May26 edit: changed to 'Common Questions' (from 'Frequently Asked Questions')
2008Nov17 edit: update to NWC2