Skip to main content
Topic: Dynamically hiding staves (Read 6531 times) previous topic - next topic

Dynamically hiding staves

So, is there any chance of being able to hide staves in some systems on the printed page but not others in an upcoming release? How far off would it be?


Also, might I suggest a way of working it? Being able to designate features as "not important" would let you just, say, highlight bars 12-40 on a stave, click a "not important" checkbox, and then the system need merely check if everything on that stave of a proposed system is marked not important. If it is, skip that stave. If not, print it.

E.g. I have a stave "Lead Soprano".  She sings from bars 20-40 of a 60-bar composition, then is silent. I mark highlight all the bar lines and rests in bars 1-19 and 41-60 and mark them not important. 

The program divides my composition into 8 systems, of 8 bars each. The first two, covering bars 1-16, show only the accompaniment. The third [17-24] has some non-important, and some important bars, and so is printed. the next three systems, encompassing bars 25-40 are printed, and then, the remainder being not important, isn't.

Notes on special cases: If all staves are marked non-important in a system, rules should be in place to arbitrarily print one, (a warning should possibly be flagged up) In the case of layered staves, if either has important things on it, both should print.

It's going to be an awkward feature to add, but it's important enough that the bullet's going to have to be bitten sooner or later. Please do it.


Re: Dynamically hiding staves

Reply #1
If the other staves have typical measures, there could be 5 or 6 or 7 bars before each system wrap.  The logic would have to allow for the non-important bars to be printed after the preceding system break and continue to the next one, so there's always a full line of the important bars. 

We can set the number of lines in a staff to zero and make notes, rests, signs and bar lines invisible.  Some combination of these options might do it.  We would need to set "bar properties" to 0 staff lines.  We'd need some way for NWC to know a particular bar was special but what would happen in a bar line audit?

Some additional complexities arise - if the top line is invisible for only part of the piece, what happens to
  • measure numbers - currently appear above the top staff?
  • orchestral bar lines that currently extend to the top staff?
  • beginning of the line decorative staffs?
  • notes, bar lines and text whose visibility is set for top line only?

Re: Dynamically hiding staves

Reply #2
Quote
The logic would have to allow for the non-important bars to be printed after the preceding system break and continue to the next one, so there's always a full line of the important bars.

I was trying to imply that would be the case in my example, but probably was fairly opaque in my description. I'd say the easiest way to handle the other problems is to redefine top staff to top VISIBLE staff - as, after all, top staff only is easily overridden.  A further "Bottom staff only" command would provide further functionality for notes on the music, pedals, etc.  Decorative staves, orchestral bar lines and the rest should self-adjust when the system is passed to the drawing function sans the removed staves, presumably.

Re: Dynamically hiding staves

Reply #3
I would like to see an attribute of objects on a staff as "display optional", i.e., if everything on a given line was thus marked, that would not print there.  For example, if a part had 80 bars of rest with that attribute before coming in, the staff would be hidden until then or a few measures before then.
Since 1998

Re: Dynamically hiding staves

Reply #4
I agree - and to make it easier, rests should be "display optional" by default.

Robin
Robin

Re: Dynamically hiding staves

Reply #5
Rests being display optional MIGHT be a good idea, but I do worry a little bit about how much work you'd have to do to get grand staffs to display correctly if too much is being presumed by the program. Forcing it to be done by hand would make sure that hiding was intended.

I should also add that only a whole rest should be display optional by default, as well as, possibly, bar lines. For one thing, display optional notes MUST be clearly marked on the display pane, with a unique colour (or it becomes impossible to adjust them with any certainty (N.B. a second unique colour would be needed for invisible display optional things, of course)), and having every rest a different colour than the notes would be supremely awkward

Re: Dynamically hiding staves

Reply #6
This topic, sadly without result, has been discussed on many occasions. But the simplest solution is to mark bar lines as optional display. If all the bar lines in a staff are optional in any system then the staff is suppressed in that system – whether or not there is actually anything in the suppressed bars.