Custom barlines behavior
I use custom barlines quite a lot in my music. I tried the latest trunk feature based on Miwarre's excellent work, and found some behavior quite confusing, sometimes buggy (see #26416 and its comments).
Some examples of confusing, strange or buggy behavior:
- when you drop a tick, it appears but is not saved
- when you change the span of a tick it makes all other barlines a tick
- when you drop a tick and edit the double barline at the end, all barlines will be the same height
- when you drop a tick, then create a new measure, the new measure is created with a tick
- when you add a double barline, then turn it into a tick, it is saved
- when you pull a full/double/etc. barline on a tick, only the type is changed and not the span, so a tick-size double bar will appear (see 26416)
Actually it would be very hard to fully describe all current behavior, and explain, why it is bad, so below I try my best to suggest an understandable and implementable consistent behavior.
So here I would like to start a discussion about how it should work, then I'd happily offer my help to fix it in the code.
As the basis of the discussion I suggest the following aspects:
- frequently used stuff should be super-easy
- rarely used stuff can be complicated (ie. available only from the inspector)
- try to follow conventions from Sibelius (assuming they had some extensive user testing)
So based on this I have the following recommendation:
1. A normal barline can span through or between staves. Setting this span would cause the all normal barlines in the given staves span according to this setting. I call this kind of span "big span".
2. Using the barline handles should only affect "big span" - similar to Sibelius and previous versions of MuseScore. If you want to change the "small span", ie. the spanFrom and spanTo lines, you should use the inspector.
3. If someone needs a tick or short barline (ie. change the small span), that should affect only the given staff and measure, making other barlines on other staves reset to default "big span".
So as (probably not exhaustive) examples:
- when dropping a normal barline or repeat or dashed or dotted (etc) on a measure that should not change the big span of the barline (so would stay 1-2-... staff high or mensurstrich).
- when dropping a tick or short barline from the palette on a measure, that should only change the barline for that measure in that staff. If the staff has mensurstrich, the big span changes to no span for the given staff (and the neighbor staff)
- when dropping a barline onto a note the barline should not be affected with the big span at all
- changing the "big span" is global, ie. if you edit and drag a normal barline (only those have drag handles!), all normal barlines will span according to the new setting.
- changing the "small span" is local - to locally have mensurstrich e.g. you can use the small span (or a very big number could automatically be drawn to the next staff)
That is, we should minimize the global effects, and make very clear what edit has and what edit doesn't have a global effect.
So I would like to have a discussion here: what do you think?
Comments
Some more info
Somehow it follows your "axiom" the easiest should be the most frequent thing
For me, the main problem of the current implementation is that it mixes barline type and barline span in the palette. There is no "tick barline" in Measure, it's just a *normal* barline with a different span.
In reply to Some more info Dragging a by [DELETED] 5
Thanks, this could be made intuitive with the following clarifications:
- "dragging a barline handle only change the big span" - this is not the way it works now, as currently dragging a tick's handles will change the small span for all barlines. The most straightforward behavior would be: for ticks change the big span but only for the given barline, thus making it full stave, multiple staves or mensurstrich
- dragging with shift should always be local to the dragged barline
- ctrl+drag change the big span for the given barline.
The change I suggest is to change the default behavior for non-default lengths, as non-default length is mostly local.
As I said in the issue tracker #26416: Bar line palette drops only affect some bar line properties, we could go on indefinitely arguing which approach is better without reaching an agreement. So, I'll limit myself only to some points where my findings do not match yours.
1) "when you drop a tick, it appears but is not saved": I cannot recreate this on current master; according to my tests, when a tick is dropped, it is still there when the score is saved, closed and open again. Do you have specific steps to reproduce?
2) "when you drop a tick, then create a new measure, the new measure is created with a tick": I cannot recreate this either; I tried appending new measure(s) at the end of the score and inserting a new measure either before or after the measure with the tick: in all cases the new measure has a default bar line. Do you have specific steps to reproduce?
3) " «dragging a barline handle only change the big span» - this is not the way it works now, as currently dragging a tick's handles will change the small span for all barlines: lasconic's description is indeed the way it works now: with 'simple' dragging (no key pressed) bar line handles can only be dragged to 'big span' points and the modification is generalized to all the bar lines of that staff. As lasconic said, drag with [Shift] to enable fine resolution dragging and/or with [Ctrl] to limit the change to the single bar line. If you notice a different behaviour, specific steps to reproduce it would be useful.
Thanks,
M.
In reply to As I said in the issue by Miwarre
We didn't even start arguing :-)
I will try to create screencasts.