Skip to main content
Topic: Feature / "bug fix" requests? (Read 18060 times) previous topic - next topic

Feature / "bug fix" requests?

Hi all,

I'm a long time user of NWC (since version 1.5 perhaps?) but not a frequent user of the forums, at least until now. I'm finding a wealth of information here, mainly in tips/tricks/workarounds, and I have a question that I hope people here can answer.

Is there a special section for feature requests or "bug fixes"? (obviously, a bug can be classified as an "unintended feature" :) I remember the sections for the NWC 2 extended beta, which had much discussion along these lines, and obviously many of the messages here in General Discussion and in Tips & Tricks will mention long-standing "feature requests" such as better handling for slur positioning, beams on split staves, etc.  I can also recognize that creating such a section could draw a large number of suggestions and become unruly in a short amount of time, if there wasn't someone keeping things organized, removing duplicate requests, etc.

I've seen posts in some sections by the admins of this site, and I'm note sure how much of our discussion makes it back to the developer(s) for inclusion in new releases. I do see periodic new releases that have added wonderful functions that make the program much more usable for printed music (I want to especially thank them for the recently-added Boundary Change command).

Anyway, in closing I'd like to make a tiny "feature request" that I think would be fairly easy to implement and shouldn't cause any backward compatibility issues, since it's just a "user interface" change. The change I'm requesting has to do with the "Override Stem Length" box in Notation Properties. As most of you know, when you are doing layered staves, you often need to override note stem lengths for flagged notes so the flags line up on both staves. The problem I have is that when I want to bump the stem length up or down, I have to remember to check the box on the left in addition to changing the value. My "feature request" is to have the program automatically check the box if I change the length value (either by typing a new value or by clicking on the up/down buttons). Does anyone else see a problem with this behavior? (i.e. would you find it annoying that the box would be checked for you when you change the value)

Thanks,

  - Mike

Re: Feature / "bug fix" requests?

Reply #1
There is a workaround that has lots of uses in NWC, that of using displayed / muted staves along with hidden / played staves.  For example the muted staff has a long note with tr and a wavy line while the hidden staff has short da-DA-da-DA notes, e.g., Moonlight in the samples.  When what you are displaying isn't being heard, you can "give" the alto notes to the soprano without having to line up flags.  In the attached example the last three beats of the displayed alto line are replaced with a hidden rest while what they had been singing has been given to the sopranos.  What will appear is a normal chord with no need to override stems or flags (usually!).

HTH
Since 1998

Re: Feature / "bug fix" requests?

Reply #2
Warren,

Thanks very much for the pointers. I've used your trick of moving alto notes to the soprano staff (or vice versa), but there are cases when it's nice to have the correct parts on the respective staves. I use NWC for creating printable (and tablet-viewable) scores for our church choir. I've also discovered that NWC can be a great learning tool for people who are trying to learn their parts on a new song. By muting/unmuting individual staves, people can hear their own part, with or without the other parts or accompaniment. If I merge the soprano/alto and tenor/bass on combined staves, then there's no easy way to mute the individual parts. (And yes, I realize I can have two copies of the score, but that seems like a lot of extra work)

On the subject of my initial feature request (changing the behavior of the Override Stem Length control), I had another thought, that I would like to 'pitch' to people out there who have created User Tools. Would it be possible to create a tool that could parse through all (or selected) notes on a layered staff, and find the flagged notes that are pointing in the same direction as the corresponding ones on the parent staff, and then change the lengths of those stems so they are the correct height? (And yes, I just realized that this probably belongs in the User Tool forum section.) The only problem I can see with this idea is that in the discussion I've read on user tools, you can only operate on one staff at a time.

  - Mike

Re: Feature / "bug fix" requests?

Reply #3
The only other idea I can think of is to force stem direction up for all soprano/tenor notes and down for alto and bass.  That is routine for barbershop music for example, see another thread.
Since 1998

Re: Feature / "bug fix" requests?

Reply #4
What would also be useful is a tool that automaticialy adds extra not space when  the corresponding notes on two layered staves are "adjacent", like c and d, d and f,...
If you use chords on one stave in stead of two layered stave, this is automaticilly done by NWC.
Always look on the bright side of life!

Re: Feature / "bug fix" requests?

Reply #5
What would also be useful is a tool that automaticialy adds extra note space when the corresponding notes on two layered staves are "adjacent", like c and d, d and f,...

I have a webpage that reads two staves at the same time and being sure I was at the same place in both staves was one of the main problems to solve before checking to see if any work was needed.  It is used to move the name of a guitar chord to the vocal staff before the guitar staff gets hidden (see this thread).

Before I start tinkering with this, are there any rules as to what to do if either or both notes have accidentals?  For a d and an e, there are four cases to consider.  In addition to more note space, accidentals may require extra space as well and force a note to move a second time.
Since 1998

Re: Feature / "bug fix" requests?

Reply #6
What would also be useful is a tool that automaticialy adds extra note space when the corresponding notes on two layered staves are "adjacent", like c and d, d and f,...

Try this "tool": spacepart.htm.  You will need to have it open at the same time as NWC, Alt/Tab should get you from one to the other without losing cursor position.  All stem up to top window and all stem down to the lower one.  The usual caveat, save your work before using this page.

HTH
Since 1998

Re: Feature / "bug fix" requests?

Reply #7
Thanks Warren, for the quick response.

It works fine !

I added to my 'Favorites' toolbar
Always look on the bright side of life!

Re: Feature / "bug fix" requests?

Reply #8
Thanks Warren, for the quick response.
It works fine !
I added to my 'Favorites' toolbar
Thank you!  The toolbar is a high honor <blush>.

It is probably easier to load the bottom window first.  After you load the top window and Submit, the top window will be selected and the cursor will be waiting for you in NWC (Use Alt/Tab to go from one to the other).  Also, unless there is a place where both parts have accidentals and are closer than a 6th, the bottom staff won't be changed.
Since 1998

Re: Feature / "bug fix" requests?

Reply #9
That's a useful tip, Warren.
I was wondering wether only the top stave was changed. You answered that question.
I tried it with two accidentals and the result is perfect. It's even better then using chords on one stave, because  I can't have two chords beamed correctly, when the notes of the chords have opposite stems. In that case, only the notes with stem up arte beamed!

Keep up the good work!
Always look on the bright side of life!


Re: Feature / "bug fix" requests?

Reply #11
My "feature request" is to have the program automatically check the box if I change the length value (either by typing a new value or by clicking on the up/down buttons).
Excellent idea. I'm all for it.
Registered user since 1996

Re: Feature / "bug fix" requests?

Reply #12
Would it be possible to create a tool that could parse through all (or selected) notes on a layered staff, and find the flagged notes that are pointing in the same direction as the corresponding ones on the parent staff, and then change the lengths of those stems so they are the correct height?
IMO, this would be a fool's errand. Dumping one flag on another and expecting good results is hopeless. For default stem lengths, NWC creates lengths that are unsettable by the user (or a User Tool). Even when it is possible, it can create some ugly aliases on the screen. It is also likely to confuse some printers.

A better idea would be an alternative to the 'Blank Space' notehead that would also remove flags and augmentation dots. The option to add Text with a Display Font of 'Staff Symbols', makes it rather trivial to add what you need (i.e. noteheads, dots, flags). As it is, when dots and flags are not wanted, it is impossible to remove them without affecting playback.

I merge the soprano/alto and tenor/bass on combined staves, then there's no easy way to mute the individual parts.
Not easy, but possible. The attachment is best confined to the Viewer unless you have a strong stomach :)
Registered user since 1996

Re: Feature / "bug fix" requests?

Reply #13
...The change I'm requesting has to do with the "Override Stem Length" box in Notation Properties. As most of you know, when you are doing layered staves, you often need to override note stem lengths for flagged notes so the flags line up on both staves. The problem I have is that when I want to bump the stem length up or down, I have to remember to check the box on the left in addition to changing the value. My "feature request" is to have the program automatically check the box if I change the length value

I, too, support this request wholeheartedly.  I frequently have to adjust stem lengths, and this idea would make the process more efficient.

Mike, Eric will have seen your suggestion, but you might also consider posting it to the Wish List.

Re: Feature / "bug fix" requests?

Reply #14
On the subject of my initial feature request (changing the behavior of the Override Stem Length control), I had another thought, that I would like to 'pitch' to people out there who have created User Tools. Would it be possible to create a tool that could parse through all (or selected) notes on a layered staff, and find the flagged notes that are pointing in the same direction as the corresponding ones on the parent staff, and then change the lengths of those stems so they are the correct height? (And yes, I just realized that this probably belongs in the User Tool forum section.) The only problem I can see with this idea is that in the discussion I've read on user tools, you can only operate on one staff at a time.

I was just revisiting this thread and thought, since I can match to the same point in layered staves, I might be able to come up with something that can do that.  Please attach a file in which has various combinations of intervals between the parts, durations of the notes, and combinations of accidentals on the notes (on 2nd thought, never mind).  Perform ALL overrides of stem lengths when necessary and include whatever rules you use to override a stem length and I'll see what I can do.
Since 1998

Re: Feature / "bug fix" requests?

Reply #15
Here is a simple chord and 5 ways to split the voices to 2 staves.
I prefer the last method. It doesn't require setting stem lengths to anything but zero. That can be done rather easily without a User Tool.
Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.5)
|AddStaff|Name:"Staff"
|StaffProperties|EndingBar:Open (hidden)|WithNextStaff:Layer
|Chord|Dur:16th|Pos:-3,-1
|Note|Dur:16th|Pos:-1|Opts:StemLength=7
|Note|Dur:16th|Pos:-1|Opts:StemLength=8
|Note|Dur:16th|Pos:-1|Opts:StemLength=0
|Note|Dur:16th|Pos:-1|Opts:StemLength=0
|Note|Dur:16th|Pos:-1|Opts:StemLength=0
|AddStaff|Name:"Staff-1"
|StaffProperties|EndingBar:Open (hidden)
|Rest|Dur:16th|Visibility:Never
|Note|Dur:16th|Pos:-3|Opts:StemLength=9
|Note|Dur:16th|Pos:-3|Opts:StemLength=10
|Note|Dur:16th|Pos:-3|Opts:StemLength=9
|Note|Dur:16th|Pos:-3|Opts:StemLength=10
|Note|Dur:Whole,Grace|Pos:-1x^|Opts:Muted|Visibility:Never
|Chord|Dur:16th|Pos:-3,-1
!NoteWorthyComposer-End
Registered user since 1996

Re: Feature / "bug fix" requests?

Reply #16
Counting from 1 to 6, #2 is the way I've been doing it for a long time, and it is kind of a pain. #3 and #5 would, I assume, be non-standard (longer stem than normal). #4 looks like #2, and seems like more work (both notes need modification). I'm curious about #6: I assume it is a chord with one note muted (the grey X next to it). I'm not sure how to do that. (I just reread the help file on chord members and didn't see anything about muting a chord member.)

Re: Feature / "bug fix" requests?

Reply #17
I can only implement one of them and it will take the place of the code in lines 217-230 (or 213-230) in a new version of spacepart.htmoffset in line 224 will give me the difference in position between the notes and which one is higher.  Just a few questions:

  • What to do with a 2nd and a note is on the other side of the staff?  I assume no crossover is allowed.
  • How to treat beamed notes.  Just work on Beam=First or Beam=End and leave the middle notes alone?  If not, why?
  • What is a preferred method?  I can implement any of them, but #2 makes more sense, especially if layering is turned off.

TIA
Since 1998

Re: Feature / "bug fix" requests?

Reply #18
This would be great. I started a long time ago to try to write something, operating on nwctext, but never got very far. I assume that your tool would:
1. only work on two staffs.
2. only adjust stemlengths when both stems were in the same direction.
3. only adjust if both notes were the same value.
3. increase the stem length on the upper staff note if stems down, and the lower staff note if stems up.
If there were a crossover (top staff note lower than bottom staff note) that should be shown with opposing stems and extra spacing, which should be done manually (see 2.).
Would this also adjust, for example, a B and a C (stems up) to give extra space to the C, with zero stem length, and increase the stem length of the B by 1?
Also, sometimes ncw alters the stem length from the default 7 (without actually checking the box). I'm not sure you could handle that, but I don't expect this to handle every possibility. Getting it mostly right would be a big help to me.
It would really not need to adjust notes longer than an eighth note, but it probably would not matter if it did.
I agree that beamed notes probably only need adjustment for first and last.
So far, I have not used any of your tools, but I'm pretty I would use this one a lot. Thanks for the effort.

Re: Feature / "bug fix" requests?

Reply #19
  • What to do with a 2nd and a note is on the other side of the staff?  I assume no crossover is allowed.
Perhaps one of these:
Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.5)
|AddStaff|Name:"Staff"
|StaffProperties|EndingBar:Open (hidden)|WithNextStaff:Layer
|Chord|Dur:16th|Pos:-2,-1
|Note|Dur:16th|Pos:-1|Opts:StemLength=0,XNoteSpace=1
|Note|Dur:16th|Pos:-1|Opts:StemLength=0,XNoteSpace=1
|Note|Dur:Whole,Grace|Pos:-2x^|Opts:Muted|Visibility:Never
|Chord|Dur:16th|Pos:-2,-1|Opts:StemLength=0
|AddStaff|Name:"Staff-1"
|StaffProperties|EndingBar:Open (hidden)
|Rest|Dur:16th|Visibility:Never
|Note|Dur:16th|Pos:-2|Opts:StemLength=9
|Note|Dur:Whole,Grace|Pos:-1x^|Opts:Muted|Visibility:Never
|Chord|Dur:16th|Pos:-2,-1
|Note|Dur:Whole,Grace|Pos:-1x^|Opts:Muted|Visibility:Never
|Chord|Dur:16th|Pos:-2,-1
!NoteWorthyComposer-End
Registered user since 1996

Re: Feature / "bug fix" requests?

Reply #20
Yes, same as spacepart.
Quote
2. only adjust stemlengths when both stems were in the same direction.
Possibly adding this feature to existing page.
Quote
3. only adjust if both notes were the same value.
Easy to check equal durations.
Quote
4. increase the stem length on the upper staff note if stems down, and the lower staff note if stems up.
Very doable.
Quote
If there were a crossover (top staff note lower than bottom staff note) that should be shown with opposing stems and extra spacing, which should be done manually (see 2.).
If I can add this to existing script, it will be done automatically (see 2.) since in the existing script, the stems must be in opposite directions.  New code could be inserted in an else to checking that (line 220).
Quote
Would this also adjust, for example, a B and a C (stems up) to give extra space to the C, with zero stem length, and increase the stem length of the B by 1?
That looks like what Rick G. has done in his 2nd example--very doable. (Thanks for the example, Rick!)
Quote
Also, sometimes ncw alters the stem length from the default 7 (without actually checking the box). I'm not sure you could handle that, but I don't expect this to handle every possibility. Getting it mostly right would be a big help to me.
It would really not need to adjust notes longer than an eighth note, but it probably would not matter if it did.
I agree that beamed notes probably only need adjustment for first and last.
First, I'll try ignoring the note if it has Beam w/o First or End.
Quote
So far, I have not used any of your tools, but I'm pretty I would use this one a lot.
You don't know what you've been missing!
Quote
Thanks for the effort.
You're welcome.  I'm a former programmer and enjoy this type of challenge.  For my "tool" collection: nwc.htm.
Since 1998

Re: Feature / "bug fix" requests?

Reply #21
Quote
First, I'll try ignoring the note if it has Beam w/o First or End
I don't think I can do that now.  If the outside notes are low and the middle notes higher, it can raise the roof.
Code: (nwc) [Select · Download]
!NoteWorthyComposerClip(2.5,Single)
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-2|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-2|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam=End
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:16th|Pos:-2|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:0|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:0|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-2|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam=End
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:16th|Pos:-2|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:2|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:2|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-2|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam=End
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:16th|Pos:0|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:4|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:4|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:0|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam=End
|Note|Dur:16th|Pos:-4|Opts:Stem=Up,Beam=First
|Note|Dur:16th|Pos:-2|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:0|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:3|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:1|Opts:Stem=Up,Beam
|Note|Dur:16th|Pos:-1|Opts:Stem=Up,Beam=End
!NoteWorthyComposerClip-End
I also have to look at close intervals at the ends of the beam since extra space could throw the whole thing off.  I might have to go to another of Rick's options of no stem for the higher note to get this to fly.  And if it's a triplet?!?!?
Since 1998

Re: Feature / "bug fix" requests?

Reply #22
I'm curious about #6: I assume it is a chord with one note muted (the grey X next to it). I'm not sure how to do that. (I just reread the help file on chord members and didn't see anything about muting a chord member.)
I use a tool, but cut & paste works. Muting a chord member is but one of the benefits of the changes arising from this discussion: Muted notes and muted staves

If the outside notes are low and the middle notes higher, it can raise the roof.
...
I also have to look at close intervals at the ends of the beam since extra space could throw the whole thing off.
...
And if it's a triplet?!?!?
You are running in to the problems that caused me to discard adjusting stem lengths as a viable method in favor of the methods used in the attachments.
Registered user since 1996

Re: Feature / "bug fix" requests?

Reply #23
Muting a chord member is but one of the benefits of the changes arising from {a previous} discussion.
You are running in to the problems that caused me to discard adjusting stem lengths as a viable method in favor of the methods used in the attachments.
I had been creating various sets of beamed notes, raising or lowering them and noting what happens to the beam.  With a set of four, it looks like I would need to find the first and end intersect of lines 1-3, 1-4, and 2-4 and use the maximum value (on stem up side) to determine stem length.  Also, there is a maximum slope to the beam and a point where the beam stays level if the first or last note is not that much higher or lower than the other notes or middle notes go both up and down.  Without knowing the exact criteria NWC uses to locate the ends of the beams, it would either be a labor of love or a love of labor and I would be tweaking my formulas for years to come.

In the opposite stems part of the webpage, I've already figured out how to handle extra note space and accidental space when necessary.  Let me crack crank up Notepad++ and see what happens.
Since 1998

Re: Feature / "bug fix" requests?

Reply #24
Can your program see the stem length assigned by nwc when Override Stem Length is not checked? Sometimes nwc adjusts stem length from the default of 7 for beamed notes, or very high or low notes. The length is displayed in the Stem Length spinner, without the override check box being checked.  You could always set the shorter stem length to 7 and adjust the longer one, or adjust the longer one from an ititial value of the shorter one. As a programmer myself, (would you believe COBOL?) I like to address all possible scenarios, but that may be impossible. I expect that in some unusual circumstances, you may not get it right, but for the vast majority, you will. And bad ones should be able to be easily fixed manually.

Re: Feature / "bug fix" requests?

Reply #25
If you copy part of a file you have open in NWC and paste it into a text editor (or a textarea on one of my pages), you'll see exactly what my scripts see.  If NWC doesn't record it, I'll just have to guess or try different things until it's presentable.  I've been collecting some ideas on what to do on stem up chords in the upper and lower staves and will work on it when I have a block of time.

The COBOL language was helped me bring in about 98% of my bread and butter, mostly in batch applications.  Finding ways to match files (like updates vs. master) was second nature to me to be sure I was looking at the same point in different staves.  With your background it should be easy to follow my code with your browser's "view source" option or the diy.txt file on my website.

Hopefully, I'll have something new to link to in my next post.

13-01-12 Still on it but Firefox and IE handle missing items from a regular expression in different ways:  do I compare to null or to "".  Trying to get around that when I can find the time.
Since 1998

Re: Feature / "bug fix" requests?

Reply #26
Please attach a file in which has various combinations of intervals between the parts
I have confirmed in 4 hymnals (many songs) that second intervals get two stems, even if the duration is the same.
HTH
Registered user since 1996

Re: Feature / "bug fix" requests?

Reply #27
My "feature request" is to have the program automatically check the box if I change the length value (either by typing a new value or by clicking on the up/down buttons).

Stem length and dynamic velocity/volume should see this enhancement.

Look for this in 2.51 Beta 2, which should be available soon from the Back Stage area.

Re: Feature / "bug fix" requests?

Reply #28
I think I solved the problem mentioned in my last post.  Thus far it can handle Up/Down and Up/Up, but I thought I had better ask for feedback before doing the Down/Down version--it might be trivial to implement, but I've had far too many "All's ya gotta do's" blow up in my face.  The usual caveat, save your work before using this page.

spacepart.htm


Since 1998

Re: Feature / "bug fix" requests?

Reply #29
Stem length and dynamic velocity/volume should see this enhancement.  Look for this in 2.51 Beta 2, which should be available soon from the Back Stage area.
Does this mean
  • we won't need to tick the override stem length check box (it has always seemed inefficient to have to tick the check box before selecting a new stem length.)
  • the override stem length box will display the tick whenever the selected notes have altered stem lengths as it currently does (a good thing), and
  • we will continue to be able to force altered stem lengths back to the default lengths simply by unticking the check box (also a good thing)?




Re: Feature / "bug fix" requests?

Reply #31
My webpage will still move notes and accidentals on layered staves when stem up and stem down are specified in the upper and lower text areas.  However, when stems are in the same direction it will create a chord.  Per Rick G's suggestion, a note in each chord will be preceeded by a muted, grace, tied whole note while that note in the other staff will occupy the same space as its "ghost" without a stem and note or accidental space will be adjusted if need be.  Stems in the same direction must have the same duration.  If a crossover occurs with similar stems, the note in the upper staff will be flagged.
Since 1998