Skip to main content

Show Posts

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

Topics - Opagust

User Tools / File Organization
The purpose of this tool is to provide a sort of 'version management'.
A possible scenario:
- When you think a draft version of your score is ready to be 'promoted' or secured,
you can register the date last modified in the File Info comments section, create a
read-only copy in a dedicated folder, with one or more suffixes added to the file
name to see at a glance the date last modified, the creation date of the copy and/or
a 'version text'.
- Then you can safely continue working with the original draft version.
- If you want to work again with the secured version, you could unlock it, or leave
it locked and create a new, writable copy in your 'working' folder. 

The tool window:
- The date modified, shown at the top of the window, is extracted from the Windows
file system.
- The 'File Info Comments' frame shows the comment section of the 'File Info' from
the input file. 
- The actions that you select in the 'Actions' frame are not accomplished until you
click one of the buttons 'Save changes' or 'Save copy'.

If you save a copy of the input file, you can add one or more suffixes:
- #m, followed by the date modified
- #c, followed by the creation date of the copy
- #v, followed by a self chosen text
(Remark: Any suffixes of the input file are not retained in the name of the copy.)
Via a popup window you can choose the folder for the copy. (Remark: If the folder
doesn't exist, you'll be ask if it should be created.)

Since the script is written in the Python programming language, it can't be run directly in the NWC Tools environment, so I have build an executable file from it (file_organization.exe) and a Windows installation file.
I can't attach it here, bt you can find the zipped installation file in my website:
After you have downloaded that file, you can unpack and run it. It will install the tool as a Windows application. It will suggest a folder, but you can change that. Copy that folder name.
The next step is the installation in NWC:
- Open the User Tools window (via Tools/User Tool...)
- Click 'New...' and fill in the dialog box:
  - Choose e group and a name
  - In the command line, paste the folder name where the tool is installed, followed by '/file_organization.exe' (without the quotes)
   - Choose 'File Text' as Input Type
   - In the Options section: leave 'Compress Input' unchecked and chek the other ones.
- Click 'OK'
I'm experimenting with a user tool written in Python, since I like Python more then Lua. In this tool I use the module PySimpleGui to create a popup  window to accept some user input (see attachment 'Knipsel1'). The problem is: there seems to a timeout after about 10 seconds. If nothing is entered within that time, the tool aborts (see attachment 'Knipsel2').
I use the module PySimpleGui in other Python scripts and never had that problem. So I think the timeout is generated by the user tool environment of NWC.
Is there anyone who has an idea how to solve this?
User Tools / AddRestMeasures
The reason I wrote this tool is this topic.
This tool add 'rest measures' to every visible staff that has less measures then the active staff. Each 'rest measure' contains a copy of the corresponding measure in the active staff, replacing notes, chords and restchords with rests of the same duration.
Edit 03/05/2020: hidden staves remain unchanged
Installation: download the attached script, start NWC, open any file and drag anddrop the downloaded script onto the NWC window.
General Discussion / Chorus online
Message to all the singers: you can join a GLOBAL CHORUS!
Quote from @fathafluff in topic Note Color Question

When I select the notes and change the color, the note heads, stems and accents change to the new color, but the beams, slurs and leger lines do not.

Thanks to the replies of @Rick G. and @hmmueller, we know there are workarounds: markers for slurs and triplets, user object beam.hmm for the beams (with the appropriate color set).

With this tool, the necessary markers and beam objects are cretaed. It contains an algorithm to determine the position and final stemlength of the beam object and the position af the triplet marker, but maybe you need to change them for an optimal result.

Installation: After downloading this tool, start NWC, open any file and drag and drop the tool onto the NWC window and confirm.

Use: Select a group of notes ( only the first note needs to be colored), and press ALt-F8 to run the tool.
User Tools / ExportImportMeasures.og
Version 2.0 is now added.
Apart from fixing some bugs, following modifications are added:
* Extending incomplete staves, not only before, but also after the import.
* Warning at the export stage for possible exceeding the maximum length for import.
* The medley title in the commnents section should be in the last line. This is now added in the help text.

* With this tool you can copy all or selected measures (of all staves), including the lyrics, and pasting them in another file. A possible use is to reassemble a medley from its separate songs.

* In order to do this, you have to run the tool from a source file to 'export' a selection or all measures.
You'll be shown an output window, which you have to copy into your clipboard.

* Then you have to rerun the tool from your 'destination file' to import (append or insert after a specified measure) the exported items . An input window will be presented where you have to paste the content of your clipboard.

* The input screen for the import seems to be limited. The tool will check if the input contains the trailer line and ends with an error message if not. In that case, use smaller selections for exporting.

* In the selection box for last measure to export, a default value of 1024 is prefilled. Leave that unchanged if you want to specify the last measure of your file.

* Linking the import staves to the corresponding staves in the destination file is done by comparing the staff labels.
If no matching is found, you'll be presented two options: specify the staff to link with, or add a new staff.
If you have specified a linking staff, you'll be asked wich label has to be withheld.

* A text marker with the song title will be added in the first imported measure of the first staff. 

*It's recommended that, before importing, you add the medley title as a line in the comments section of the Song Info window. This line should start with "MedleyTitle:", without a space.
You can start with a copy of the first song as destination file. At the fist import (of the second song), the song title of the first song will be added as a text marker in the first measure, and the medley title from the comments will be used as new song title.

* The following properties of a staff will be compared with those in its corresponding imported staff: visibility, muted, layered, ending bar, volume, stereopan, channel, play back device, instrument, default dynamic velocities and trasposition.
Difference will be reported and you have the choice to proceed or cancel. If you proceed, the propertied of the destination file will be withheld.
* Before appending or inserting the imported staves, incomplete staves in the destination file will be extended with measures containins rests, up to the insertion measure.

* If a stave contains few lyric lines than the corresponding imported staff, the number of lyric lines of the destination file will be augmented and the lower boundary increased accordingly.
* Incomplete lyric lines in the destination files will be filled with underscores, separated with blanks.
I know lua must have a library for copying and pasting to/from the windows clipboard, but within a user tool libraries can't be included. So I suppose it's not possible?
Object Plugins / Rehearsal.og
Five years ago I wrote the usertool 'MakeRehearsalFile, which had several upates until 2 years ago.
One of these updates made it possible to add arguments to the command line to set the value or default for one or more parameters.

Since it's now possible (for NWC version 2.75a Beta 2 or later) to integrate a user tool into a user object, I decided to write a whole new version. Apart from foreground and background voices, it also supports 'center voices', 'velocity instruments' and volume instruments'.

With this plugin you can transform a (vocal) score into a rehearsal score, by specifying different channel volume, stereopan and dynamic volumes and velocities for each staff, according to its 'Staff Type'. You can also specify a different color for a 'Foreground voice'.

To do that you have to create one rehearsal object subtype 'Parameters' (anywhere in the score), and a subtype 'Staff Type' in each staff you want to change.
Hint: create rehearsal objects in your template file.

Staff Types are: 'Backgroud voice', 'Center voice', 'Foreground voice', 'Velocity instrument' and 'Volume Instrument'.

Parameters are: Foreground color, Channel Volume and Stereopan for each staff type and dynamic velocities for each dynamic (ppp ... fff). They all have predefined default settings, which you can change or leave unchanged.

After creation of your objects, they can be processed by the integrated 'Rehearsal.og' user tool in the .Plugins group (which you can invoke via 'Tools/User Tool...' or ALT-F8).

Velocities and Volumes of the dynamics are calculated as follows (for more information: see document 'Dynamics.pdf' in
- for a voice staff or volume instrument staff:
  ° The Velocity of each dynamic is set equal to the highest Staff Velocity ('fff').
  ° The Volume is set using Tina Billet's formula :
      Volume  = Velocity * Staff Volume) / highest Staff Velocity.
- for a velocity staff: the custom velocity and volume settings are set to nil, which means that they get the dynamic velocity and channel volume from the parameters (which are stored in the staff properties).

7dec2020: Update to version 1.1:
New in version 1.1:
  - test on NWC version: it has to be > 2.75
  - correction of a bug: dynamic velocities from the parameters were not copied into the staff instruments.
I'm planning to replace my good old laptop by a two-in-one, without CD drive.
So my question is: how should I re-install NWC, if I can't read my original installation CD?
With this tool you can copy and paste measures of multiple staves, including the lyrics.

Via the dialog you can specify
- the staves to process
- copy and past or cut
- the first measure to copy or cut
- the last measure to copy or cut
- the measure after which you want to paste.

Multimeasure rests are split, if necessary.

Attention: beware of ties and slurs that could be cut at the start or the end of the measures to copy.

Remarks and bug reports are welcome.

- download the file into your tool folder;
- open any nwc file;
- drag and drop the downloaded file to your nwc window.

Edit 4/07/2019: added an option to rather cut than copy
I can't play my midi-files anymore. I use Windows Media Player. It starts up and starts the song, but produces no sound.
Last time I used it, it did work well, but that's a few months ago.
So could it be because of a Windows 10 update or an NWC update ?
User Tools / Audit ties
I wrote this tool in response to this topic: Persistent (stuck) notes

It inspects all tied notes in all staves and reports the folllowing situations:
1. The destination note of a tie is muted and the source note is not, or vice versa.
2. A tie has no destination.
3. There are 1 or more notes between cource and destination note.

The first and second situation cause a hanging sound on playback and should be corrected, the 3th is just a notification.

Installation:Download the attached file and drag and drop it upon any open NWC file
Any suggestions or bug reports are welcome!

11/07/2017: new version to take accidentals into account
User Tools / Number notation tool
This tool inserts a 'number notation staff' above the active staff. The inserted staff doesn't have ledger lines and has the notes made invisible.

* Each note is then represented with a number from 1 to 7 (a rest = 0). Notes with accidentals are denoted with a '/' (sharp) or '\' (flat) strikethrough. A dot above or under the number means an octave higher or lower.

* The plain number represents a quarter note. Each dash above the number halves the note length: one dash represents an eighth note, two represent a sixteenth note, and so on (analogous to the number of flags and beaming). Dots after a note lengthen it, each dot by the length of a quarter note (these dots are also used for slured notes). 

* If a key signature is present, you have to choose between two base methods to assign numbers to the notes:
  1. '1=C', that means 2=D, 3=E, ... . In this method, every accidental according to the key signature is denoted by a strikethrough number.
  2. 'According to Key Signature'. In this method the base number is chosen thru a transposition. The key signature is indicated by '1=x' for a major signature, '6=x' for a minor one. The transposition is determined in a way that only the explicit accidentals need a strikethrough number.
  Remark: In both methods the distance between 3 and 4, resp. 7 and 1 is a semitone.
* You also have the option to make the active staff invisible. In that case, the lyrics are copied to the created number notation staff. If you choose to leave the active staff visible, the lyrics are moved above the staff (unless they are placed already there).

*Two special typefaces are needed:
° for dots and dashes, a 'Symbol' typeface of size 16
° for the strikethrough, the same typeface as for the numbers (i.e. StaffLyric), but with a larger size (+3)
Therefor,  unless they are  already present, the tool will set such fonts in 2 unused 'User Fonts'.  If no free user font can be found, an error message will be displayed.

Remark: Chords are not supported.

02/05/2017: Modification: removing of previously created number notation staff.
08/05/2017: I fixed a bug in my latest version: when recreating a number notation staff, the old one was removed (OK) but the new created one was for the staff following the active staff (not OK).
User Tools / Move Dynamics
User tool to move dynamics.

Via the dialog, you can specify
* Part of the score to be processed :
    - your selected items
    - the active staff
    - the visible staves
    - all staves
  * How to move the dynamics :
    - place at a given position
    - move up (positive value) or down (negative value)
    - place relative to highest note position (negative, zero or positive value)
    - place relative to lowest note position (negative, zero or positive value)
    - move to the position of the first dynamic
  * The value to use for the movement (accept if you chose the last movement option)

REMARK: moving dynamics will also move the crescendo and diminuendo hairpins.
Object Plugins / GlobModParms.og
The User Object 'GlobModParms.og' is a container for parameters to use in the User Tool 'GlobMod.og'
This script is only used for drawing the user object. You shouldn't create one via 'Insert/User Object...'.
The description text can be moved up or down with the + and - key.

Creation is done by the user tool 'GlobMod.og': after specifying the parameters for a global modification, you have the possibility to store them in a user object.
The same user tool can then be used to process the user object, avoiding the need to enter again the parameters.

This tool is inspired by the 'Global Modification (adp) tool from the User Tool Starter Kit. The purpose is identical: search for certain objects with certain properties within a staff or a selection and do some 'global' modifications (are remove them).
But here you don't need to know how to construct a global modification expression. It's completely dialog driven.
You'll be asked for a type and then you can specify 0 or more conditions and the desired action(s): delete or do 1 or more modifications.
No knowlegde is required of how an object or property is represented within NWC. Just select what you want from the selection lists.

- no modification possible on individual notes in chords and restchords;
- multi-point controller and instrument change are not supported.

Installation:Download the attached file and drag and drop it upon any open NWC file
Any suggestions or bug reports are welcome!

21/10/2016: Bug fix (An error occured when processing an object with empty conditions).


07/07/2016: replaced by new version (1.1), using nwc.txt where possible, as suggested by NoteWorhy Online.

12/07/2016: Replaced by new version(1.2): A new functionality has been added: save the parameters and reuse them on another staff or file.

After specifying your parameters, you have the opporunity to save and reuse them.
To do so I created a new User Object 'GlobModParms.og', that you can download here:
If you choose to save your parameters, such an object is inserted by the User Tool in front of your clip input, with a description text you specify. You can then copy it and paste it elsewhere.
If the tool is run with on or more User Objects 'GlobMod.Parms' in the clip input, you'll have the choise for each of them: process that User Object or not. If none is to be processed, you'll have to specify new parameters.

01/03/2017: Version 1.2.2 (see reply #8 for more details)
26/03/2017: Version 1.2.3 (see reply #16 for more details)
07/09/2017: Version 1.2.4 (see reply #17 for more details)
The lower staff of the attachment is to be sung by two voice groups.

But I like to have seperate staffs,  which makes it easier to see the notes I have to sing, and also for playing 'my' staff only when studying.
So I made two seperate staffs in my NWC file of this song. In the upper staff I've put in this measure:  a half b flat, a quarter  rest and and 2 eighth d's, in the lower staff: a half f,  a quarter  rest and and 2 eighth b's.

And then, to prepare myself for the rehearsal of our choir, I played the lower staff several times with my earphone plugged in.
But when singing it with the choir, the director noticed that there was someone of the basses that didn't sing the b's flat correctly. Then I realized that my NWC file was not correct: I should have put 2 b's flat in stead of two natural b's, because in the original score, there were preceded by a b flat in the same measure!

Conclusion: when deduplicating a multivoice staff: mind the accidentals!
User Tools / TransposeStaffs.og
This tool transposes the instruments (*) of all staffs up or down by the given number of semitones.
Exception: A staff with Channel = 10 will not be transposed.

(*) This involves:
 - adjusting the Staff Property Instrument Transposition value;
 - adjusting the transposition values of any instrument changes;
 - adjusting the StaffTranspose parameter of any objects.

See also :
Transpose a whole score
Don't think so, but I hope it does...
User Tools / ScoreAnalysis.og
This tool is inspired by the NWC menu command 'Tools/Score Review...', but gives a little bit more info.
It creates an analysis report, which is divided in several groups. Each group contains several group items.
It's shown either with the staffs in colums (Orientation 'Landscape') or with the group items in colums ('Portrait').

The default settings for the orientation, groups and group items are:

These settings can be modified via parameters in the command line and/or the dialog option 'Settings'.
If you do so, the modified settings are included in the report, so you can copy and paste them as parameters in the command line for future use.
A parameter mustn't contain spaces, and the parameters must be seperated by one or more spaces.
If you provide a parameter 'SkipHelp', the help window isn't shown.

Hint: since the output window is limited, you may want to copy and past it in a word processor or text editor.

I attached also 2 output reports, the first with teh default settings, the 2nd with modified settings.

If you find any bugs are have some suggestions for improvement, please let me know.
I discovered an error in the lua documentation for nwwcut.askbox:

The return value seems to be 1 for Yes and 0 for No
The flags work as mentioned : 1 for Yes (default), and 2 for No
User Tools / Lua as user tool script
At the moment, I'm learning the Lua script language. I want to experiment with writing some simple user tools, but I don't know how to access stdin, stdout and stderr.
User Tools / Layering voices
In many song sheets for choirs, each group of two voices is on 1 staff. In NWC, you can do this by entering chords, or by layering each group of two staffs.But both methods are not ideal:
- Entering chords is not very easy + you don't always have control over the stems of the individual notes of a chord, which is necessary to differentiate between the two voices.
- When layering, you not only have to set the stems. In order not to have a messy result after layering, you also have to set the properties 'Use stem for articulation', 'Slur direction' and 'Tie direction'.
This can easily be done by selecting a whole staff. But that's not always enough: you have to check the whole staff for situations where you have to set the properties 'Extra note spacing' and/or 'Extra accidental spacing':
- when the distance between the note on the top staff and the note on the bottom equals 1,
- when you have notes with accidentals,
- when the top note is lower then the bottom note,
- when you have chords.
This tool takes care of all this (with the active staff as top staff and the next as bottom staff).

In addition:
- The label and the abbreviated label of the top staff is modified by concatenating with those of the bottom staff, since the former are used when printing the layered staffs. (When the labels are equal, there will be no concatenation.)
- If both staffs have lyrics, the property 'Placement' will be set to 'Top', resp. 'Bottom'.

By choosing the action 'Unlayer', you can undo all the actions described above.

Installation instructions:
- Download and save the file in YourScriptsFolder and change the extention' txt' to 'js'.
- Open a NoteWorthy File
- Choose 'Tools', 'User Tool...' or enter Alt-F8
- Click 'New...'
- Enter the name of the tool and choose a group or enter the name of a new group
Command Line: Wscript  C:\Users\Gust\MijnScripts\LayerVoices.js <PROMPT:Action:=|Layer|Unlayer|Help"
Input Type:  File Text
Under 'Options: Check 'Returns File text'

28/12/2017: New version attached, written in lua. See next post for some details.
14/03/2017: Bug corrected in lua script. See reply #2
User Tools / MetroNomeStaff
This tool creates a new staff 'Metronome' with metronome ticks.

It's inserted above the active staff, has zero Staff Lines, Channel 10, (hidden) Percussion Clef and 'Woodblock' as Staff Instrument.
The other properties are inherited from the active staff.
The notes have 'x' noteheads and zero stemlength.

You can download the tool from the attached file or my website:
Don't forget to change the extension to '.js'.

To Install in NoteWorthy:
- Open a NoteWorthy File
- Choose 'Tools', 'User Tool...' or enter Alt-F8
- Click 'New...'
-  Enter the name of the tool and choose a group or enter the name of a new group

   Command Line: "Wscript YourScriptsFolder\MetronomeStaff.js <PROMPT:Action=|Create_MetronomeStaff|Help>"
   Input Type: File Text
   Under 'Options: Check 'Returns File text'
User Tools / OGNoteNames
With this tool you can insert note names into your song file.

You can download the tool from the attached file or my website:
Don't forget to change the extension to '.js'.

To Install in NoteWorthy:
- Open a NoteWorthy File
- Choose 'Tools', 'User Tool...' or enter Alt-F8
- Click 'New...'
-  Enter the name of the tool and choose a group or enter the name of a new group
- Command Line: "Wscript YourScriptsFolder\OGNoteNames.js <PROMPT:Act upon:=|All_Staffs|Visible_Staffs|Active_Staff|Help> <PROMPT:NoteNames:=|A_B_C_...|do_re_mi...> <PROMPT:Insert as:=|Lyrics|Text|>
-  Input Type: File Text
- Under 'Options: Check 'Returns File text'
User Tools / OGNoteRange
This tool inserts a chord of muted grace notes at the cursor position.
This 'range chord' contains the highest and lowest note found in the selection or, if nothing is selected, in the part of the active staff after the cursor position.
Accidentals and Key Signatures are taken into account.

You can download the tool from the attached file or my website:
Don't forget to change the extension to '.js'.

To Install in NoteWorthy:
- Open a NoteWorthy File
- Choose 'Tools', 'User Tool...' or enter Alt-F8
- Click 'New...'
-  Enter the name of the tool and choose a group or enter the name of a new group
- Command Line: "Wscript YourScriptsFolder\OGNoteRanges.js <PROMPT:Option:=|Create_Range_Chord|Help>"
-  Input Type: File Text
- Under 'Options: Uncheck 'Returns File text'
User Tools / Courtesy Accidentals
Update: Don't use the links below, use instead and click on the name of the tool to download (changing the extension into '.js').

With this tool you can create courtesy accidentals according to the Key Signature. It acts on a selection, if present, or on the whole active staff.

The courtesy accidentals are inserted as text items,
 - with the font StaffSymbols(normal size) or StaffCueSymbols(small size);
 -  with or without parentheses;
 - repeated or not if the same note occurs more than once within a measure.

If you choose 'Undo', all 'texted' accidentals are removed, regardless of the choices on size, parentheses or repeats.

To download the tool from the link above :
- Select and copy all the text within the frame
- Open a text editor like Wordpad or a Java Script Editor and past the copied text
- Click on the name of the tool
- Save as 'CourtesyAccidentals.js' in YourScriptFolder

To Install in NoteWorthy:
- Open a NoteWorthy File
- Choose 'Tools', 'User Tool...' or enter Alt-F8
- Click 'New...'
-  Enter the name of the tool and choose a group or enter the name of a new group
-  Command Line: "Wscript YourScriptsFolder\CourtesyAccidentals.js <PROMPT:Action:=|Create_CourtesyAccidentals|Undo|Help> <PROMPT:Parenthesize?=|Yes|No> <PROMPT:Repeat in same measure?=|Yes|No> <PROMPT:Size:=|Normal|Small>"
-  Input Type: Clip Text
-  Under 'Options: Uncheck 'Returns File Text'

P.S.I also modified the tool to also move the courtesy accidentals, inserted by CourtesyAccidentals.js.
User Tools / Make Rehearsal File
This tool is intended to make seperate rehearsal scores for the different voices of polyphonic songs.

Before running this tool, make a group "Piano" for the instrumental staffs.

When running the tool, you have to to set two volumes, for 'Foreground' and 'Background'.

The result will be:

- The Staff Velocities(DynVel) from the first visible staff will be copied to the next staffs.

- For the staffs in the "Piano" group:
  - Staff Volume = BackGround Volume;
  - Default Dynamics (with varying Velocities and constant Volume);
  - StereoPan = 64;
  - StaffColor = 'Default';

- For the active staff:
  - Staff Volume = Foreground Volume;
  - Dynamics with constant (highest)Velocity, and Volumes calculated using Foreground Volume and the Staff Velocities ;
  - StereoPan  = 0;
  - StaffColor = 'Highlight 2';

- For the other staffs:
  - Staff Volume = Background Volume;
  - Dynamics with constant (highest) Velocity, and Volumes calculated using Background Volume and the Staff Velocities ;
  - StereoPan  = 127;
  - StaffColor = 'Default' (unless the StaffName = "All" >> 'Highlight 2');

There are 3 execution modes : 'Modify', 'Show' and 'Help'. 'Modify' is the normal mode, 'Show' shows the generated output in stdout (without modifying your file), 'Help' shows the Helptext.

Installation instructions:
  Command Line: "Wscript YourScriptsFolder\MakeRehearsalFile.js <PROMPT:Foreground Volume:=*120> <PROMPT:Background Volume:=*80> <PROMPT:Execution Mode:=|Modify|Show|Help><PROMPT:Action:=|Make_Rehearsal_File|Undo|Help> <PROMPT:Foreground Volume:=*120]> <PROMPT:Background Volume:=*80>" (You may use other pre-filled values then 120 and 80.)" (You may use other pre-filled values then 120 and 80.)
  Input Type: File Text
  Under 'Options: Check 'Returns File text'

Don't forget to change the extension to ".js" after downloading.

Any comments are bug reports are welcome.

02/01/2017: Attached a lua version of the tool.
Updated lua version 20/11/2017
* New Parameters:
  - Foreground Staves : one or more staff names (instead of active staff + staff named 'All')
  - Foreground Color (instead of fixed 'Highlight 2')
  - What to Color :key signature & clef or whole staff
* You can add arguments to the command line to set the value or default for one or more parameters.
Syntax: <parameter>=<value>['?']. The arguments pairs must be seperated by 1 or more spaces. There must not be a space within an argument.
If an argument ends with a '?', the value will be used as default in the dialog, otherwise the value will be assiged to the parameter, which will be skipped in the dialog.
See 'Help on command line parameters' for description of the paramters and valid values.).

21/11/20017 : test switch off.
If you want to know all about dynamics, velocity and volume, you should read Tina Billet's document on the NWC Scriptorium (If you get "Forbidden File Access", copy the link into a new browser window.)

It also describes how to change the default dynamics to vary in volume rather than velocity, so that crescendo and decrescendo not only effect the loudness of each note at the start, but also varies while the note is playing. It contains a formula for calculating the right dynamic volumes, using the wanted Velocities and maximum staff volume. It then describes how to change the dynamics using the built in User Tool adp_GlobalMod.This tool is to be executed for each staff individually. That's because at the time the document was made, User Tools could only work on 1 staff at a time.

In the present version  of NWC2 a User Tool can work on an entire file (Input Type 'File Text'). So I have tried to make it somewhat easier. It takes a few additonal steps, but they have to be done only once , or once per existing NWC file. So here is what I suggest:
1.   Decide what for you are the ideal Velocities (DynVel) and Channel Volume.  You can set the velocities by making your own itree, as explained in Tina Billet's document. This is to be done only once.
2.   If you want it to take effect on an existing NWC file, you should do this via the Staff Properties, Instrument Tab. You may also want to change the Channel Volume (Midi Tab). This is to be done only for the top staff. You can then copy and paste the new Volumes and Velocities using my tool 'CopyVolVel.js'.
3.    Then use my tool 'SetDynVol.js' to change the Dynamic Volumes,  according to Tina's formula "(Velocity * default volume)/highest dynamic velocity" for calculating the required volume of a specific dynamic.

That's what you can do for your existing NWC files. Next you can make your own custom Dynamics selector that you can use when making a new NWC file:
1.   Move your mouse cursor over the Dynamics selector, rightclick and choose "Customize...". The selector file will open.
2.   Save a copy: go to 'File'/'Save as..." in your Config Folder (*) and choose a non existing name of the form '10#.nwc', where # = 0, a, b, c, d, e or f (100.nwc being selector 11, ... 10f.nwc selector 16).
3.   Do step 2 and 3 above on this file.
4.   If you want to use a specific short cut key, say 'v' (for volume), change the title from "Dynamics Selector (&d)" to "Dynamics Selector (&v)"
(*) If you don't know where to find your Config Folder, go to 'Tools/Options...' and select the 'Foldesr' tab

In attachment, you find the 2 tools mentioned above. Don't forget to change the extansion to '.js' after downloading.
I'm working on a tool to change Dynamic Volumes according to Tina Billet's document, in order to have a (de)crescendo has also affect during the playing of long notes.
So I will use her formula "(Velocity * default volume)/highest dynamic velocity" for calculating the required volume of a specific dynamic.
But I'm not sure about the velocities: shall I leave them unchanged, or do I have to use the highest dynamic velocity for each dynamic?
Example: If the default volume is set to 120 and DynVal = (25,35,45,55,68,80,92,108), we become, using the formula, a value of 50 for the volume of dynamic 'p'. That's clear. But should it become "p[-, 50]" (which will be the same as p[45,50], or is p[108,50] the correct result?

Thanks in advance for all expert advices!
User Tools / Change Clef
This tool changes the clef, moving all notes and chords up or down appropriately.
Update 18/02-2015 : new version :
 - correction of a bug (inserting clef after selection); this involved change of input type ('Clip Text' ==> 'File Text')
 - rewritten in script language Lua ==> change of installation instructions

Installation instructions:
- Download and save the file in YourScriptsFolder and change the extention' txt' to 'js'.
- Open a NoteWorthy File
- Choose 'Tools', 'User Tool...' or enter Alt-F8
- Click 'New...'
- Enter the name of the tool and choose a group or enter the name of a new group
- Command Line: "Wscript YourScriptsFolder\ChangeClef.js <PROMPT:New Clef:=|Treble|Bass> <PROMPT:Octave Shift:=|None|Octave_Up|Octave_Down> <PROMPT:Execution Mode:=|Modify|Show|Help>"

- Drag and drop the downloaded file upon the NWC window and click "Yes" on the pop up window "Please Confirm"
- Click "Edit" in the window "User Tools"
- Choose Input Type: Clip Text
- Under 'Options: Uncheck 'Returns File Text'

Any comments are welcome.

P.S. You can find this and other tools also on my website
User Tools / Extend Staff
This tool extends the current staff, so that it has an equal number of measures and 'structure' as the previous staff.

Installation instructions:
- Download and save the file in YourScriptsFolder and change the extention' txt' to 'js'.
- Open a NoteWorthy File
- Choose 'Tools', 'User Tool...' or enter Alt-F8
- Click 'New...'
- Enter the name of the tool and choose a group or enter the name of a new group
- Command Line: "Wscript YourScriptsFolder\ExtendStaff.js <PROMPT:Fill measures with whole rests?:=|Yes|No> <PROMPT:Execution Mode:=|Modify|Show|Help>"
- Input Type: File Text
- Under 'Options: Uncheck 'Returns File text'

Any comments are welcome.

User Tools / Add empty staff
This tool creates a new, 'empty' copy of the active staff.

Possible uses:
- to start with a new staff (not filled with rests) that inherits the 'structure' of the copied staff, so you'll just have to enter the notes in the empty measures;
- to create a tempo or a conductor staff (filled with whole rests).

Installation :
- Download and save the file in YourScriptsFolder and change the extention' txt' to 'js'.
- Open a NoteWorthy File
- Choose 'Tools', 'User Tool...' or enter Alt-F8
- Click 'New...'
- Enter the name of the tool and choose a group or enter the name of a new group
- Command Line: "Wscript YourScriptsFolder\AddEmptyStaff.js <PROMPT:Execution Mode:=|Show|Modify|Help> "
- Command Line: "Wscript YourScriptsFolder\AddEmptyStaff.js <PROMPT:Fill measures with rests?=|No|Yes,Visible|Yes,Visibility=Never> <PROMPT:Copy Lyrics?=|Yes|No> <PROMPT:Execution Mode:=|Modify|Show|Help>"
- Input Type: File Text
- Under  'Options': check 'Returns File Text'

P.S. You can find this and other tools also on my website

Any comments are welcome.
After studying a user tool I downloaded a while ago (mmr.js from Warren Porter), I wanted to try to write a tool myself. So I downloaded a Java Script Editor and started to experiment.

After many trials and errors, I decided to first write a template script, that I could use as a starting point for developing a specific tool. When testing it, I discovered the different behaviour of the User Tool Environment, depending of the input type and return format.

So I ended up with 3 different templates: 1 for tools with input type 'Clip Text'  (and also 'Clip Text' as the only allowed return format),  1 for input type 'File Text' and return format 'File Text' and 1 for input type 'File Text' and Return Format 'Clip Text'.

You can find these template files in attachment. (After download, change the extention 'txt' to 'js'.)

I used each of these templates to write a user tool, which you will will find in seperate posts.

Any comments are welcome.

P.S. You can find these tools also on my website
When I change one of my custom template files, and then want to save it, I get a warning that it's created with an older NWCfile format and the original version will no longer  be able to open it.
This seems normal, so I click 'yes' to proceed.

But after that, the template file is disappeared. It's not showing in the template/custum folder, nor in the folder where I keep my NWC songs.
First thing I wanted to customize in v2.51 was to remove the "Error" buttons in the toolbars.

But they always come back when I restart the program.

Any hints?
In the attached song, in measures 38 to 47 there's only piano to be played.  The score is only showing the voices parts, with one special staff 'ALL', wich is used when all voices have to sing unisono. So in all but the piano staff I have a MMR of 10 measures, where the voice staffs are collapsed, so only the 'ALL' show is to be shown. 
The problem is : in Print Preview this creates a MMR of 8 in one system, followed by a MMr of 2 in the next system. What I want is 1 MMR of 10.

How can I do this?
When I have a score with multiple staffs and I use the Visibility property 'Top Staff Only', then it's indeed only printed on the top staff, according to the staffs selected in the Page Setup.
But when I use collapsible staves this does not work, if the staff that's really the top staff on the print preview is not the top staff according to the page setup.
Thus my question is : how to accomplish that something is only printed on the staff that's really the top staff?
In the attached song (Frosty the Snowman), the note in measure 58 has only to be sung in the second verse.  Is there a way to accomplish this?
I'm using Noteworthy Composer version 2.5.3. and the viewer version 2.5.6a. I'm member of a choir and some of the other singers use only the viewer to rehearse the songs.

For one song I recently entered (see attachment) and in wich I used the new features (MMR and Boundary change), the viewer doesn't behave as it should. When playing a song,as the music reaches the right edge of the screen, there are 2 problems, one minor and one more serious:
  • if the last measure on the screen is incomplete, the screen is shifted only when the music has reached the first note of the next measure
  • and worse: when there is a double bar reached, the screen is shifted only when the music has reached the next double bar

In other songs the behavior is correct, so I assume the problem is caused by the new features I used.
Has someone experienced similar problems?

The multi-measure rest is a very handy feature, a specially in combination with the collapsing staff option in the boundary change command.

But what I miss is an option where one could specify that a MMR should be handled as a single measure when played back (and in the viewer), in the case where all the played staves contain MMR's.

This would be very useful for the rehearsal files I create for my choir. I make several files, one for each voice (TTBB) and 1 for ALL voices.

Now one has either to wait in silence till the MMR is fully played, or stop, click behind the MMR and then restart.

Moreover, since some of the choir members use an Apple, I also create midi-files. In that case there's only silence during the MMR. So this option should also be used for exporting to midi-files.

I don't think I am the only one that should find this option usefull.
Or am I?
The example below is the start of the song 'Runaround Sue', arrangement of Jeff Funk.
In the first staff there are fermatae on the last (half) note of a measure; in the second staff fermatae on whole notes. As a result the duration of the notes in the to staffs is not the same anymore !

Code: (nwc) [Select · Download]
|SongInfo|Title:"Run Around Sue"|Author:"Dion Di Mucci and Ernest Maresca"|Lyricist:"Arr. Jeff Funk"|Copyright1:""|Copyright2:""
|PgSetup|StaffSize:15|Zoom:4|TitlePage:Y|JustifyVertically:Y|ExtendLastSystem:Y|DurationPadding:Y|PageNumbers:1|StaffLabels:All Systems|BarNumbers:Boxed|StartingBar:1|AllowLayering:N
|Font|Style:StaffItalic|Typeface:"Times New Roman"|Size:10|Bold:Y|Italic:Y|CharSet:0
|Font|Style:StaffBold|Typeface:"Times New Roman"|Size:7|Bold:Y|Italic:N|CharSet:0
|Font|Style:StaffLyric|Typeface:"Times New Roman"|Size:10|Bold:N|Italic:N|CharSet:0
|Font|Style:PageTitleText|Typeface:"Times New Roman"|Size:24|Bold:Y|Italic:N|CharSet:0
|Font|Style:PageText|Typeface:"Times New Roman"|Size:12|Bold:N|Italic:N|CharSet:0
|Font|Style:PageSmallText|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|Font|Style:User6|Typeface:"Times New Roman"|Size:8|Bold:N|Italic:N|CharSet:0
|StaffProperties|EndingBar:Section Close|Visible:Y|BoundaryTop:15|BoundaryBottom:15|Lines:5|Style:Standard|Layer:N|Color:Default
|Lyrics|Placement:Bottom|Align:Standard Rules|Offset:0
|Lyric1|Text:"Here\'s my sto-ry, it\'s sad but true;\r\nit\'s a-bout a girl that I once knew.\r\nShe took my love then ran a-round\r\nwith ev-\'ry sin-gle guy in town.\r\n\r\nOh, woh, oh, woh, oh woh, oh.\r\n\r\nI should have known it from the ver-y start,\r\nNow lis-ten, peo-ple, what I\'m tel-ling you,\r\na-keep a-way fom a-Run-a-round Sue.\r\n\r\nI miss her lips and the smile on her face,\r\nthe touch of her hair and this girl\'s warm em-brace.\r\nSo if you don\'t wan-na cry like I do,\r\na-keep a-way from a-Run-a-round Sue.\r\n\r\nOh, woh, oh, woh, oh woh, oh.\r\n\r\nShe likes to tra-vel a-round,\r\nshe\'ll love you, but she\'ll cut you down.\r\nNow, peo-ple, let me put you wise,\r\nSue goes out with oth-er guys.\r\nHere\'s the mor-al and the sto-ry from the guy who knows,\r\nI fell in love and my love still grows.\r\nAsk a-ny fool that she ev-er knew,\r\nthey\'ll say a-keep a-way from a-Run-a-round Sue.\r\nkeep a-way, a-keep a-way from a-Run-a-round Sue.\r\n"
|Clef|Type:Treble|OctaveShift:Octave Down|Visibility:Always
|Text|Text:"Free Tempo"|Font:StaffItalic|Pos:9
|StaffProperties|EndingBar:Section Close|Visible:Y|BoundaryTop:15|BoundaryBottom:15|Lines:5|Style:Standard|Layer:N|Color:Default
|Lyrics|Placement:Bottom|Align:Standard Rules|Offset:0
|Lyric1|Text:"Oo, oo, ah, oo.\r\nHayp hayp, bum-da ha-dy ha-dy,\r\nhayp hayp bum-da ha-dy ha-dy\r\nhayp hayp bum-da ha-dy ha-dy\r\nhayp. Ah.\r\n\r\nthis girl would leave me with a bro-ken heart.\r\na-keep a-way from a-Run-a-round Sue.\r\n\r\nHayp hayp, bum-da ha-dy ha-dy,\r\nhayp hayp bum-da ha-dy ha-dy\r\nhayp hayp bum-da ha-dy ha-dy\r\nhayp.\r\nHayp hayp, bum-da ha-dy ha-dy,\r\nhayp hayp bum-da ha-dy ha-dy\r\nhayp hayp bum-da ha-dy ha-dy\r\nhayp. Ah. Ah, ah, ah.\r\nHayp hayp, bum-da ha-dy ha-dy,\r\nhayp hayp bum-da ha-dy ha-dy\r\nhayp hayp bum-da ha-dy ha-dy\r\nhayp.\r\nkeep a-way, a-keep a-way from a-Run-a-round Sue.\r\n"
|AddStaff|Name:"Right Hand"|Label:"Piano"|Group:"Piano"
|StaffProperties|EndingBar:Section Close|Visible:N|BoundaryTop:10|BoundaryBottom:10|Lines:5|Style:Upper Grand Staff|Layer:N|Color:Default
|AddStaff|Name:"Left Hand"|Group:"Piano"
|StaffProperties|EndingBar:Section Close|Visible:N|BoundaryTop:10|BoundaryBottom:10|Lines:5|Style:Lower Grand Staff|Layer:N|Color:Default
Quote from the help File :
Local Repeat Open/Close: A special form of sectional repeat symbols. These allow a section to be repeated for a specified number of iterations without specifying special endings for each iteration. These loops can be nested inside a master loop which contains special endings. Special endings do not apply to local repeats. Attempts to combine local repeats and special endings will yield unpredictable results. Unlike master repeats, local repeat loops are performed even after a D.S. or D.C. flow direction has been executed.

Master Repeat Open/Close: Sectional repeat symbols for repeating a section. Each repeat should specify a special ending prior to the closing repeat symbol (see Special Ending Command). The closing repeat mark is ignored after a D.S. or D.C. flow redirection has been initiated.

So if I understand it well:
- Only in a 'local repeat close', you can specify how many repeats are needed
- Only in a 'master repeat close', special endings are taken into account

My questions:
- What if I want three iterations, each with a different ending ? 
- More general :How can one use the 3th until 7th special endings that are possible to mark?
- Is this specific for Noteworthy or is it due to music theory (which I don't know much about) ?

Copyright © 2006 by NoteWorthy Software, Inc.