"Reduce stretch" has bad effect on other measures as soon as stretch factor reaches 0
- take an existing score, with notes, line breaks, etc.
- Select a measure, preferably the 1st of a system, e.g.:
- Right-lick-> measure properties
- set layout stretch to 0, the smallest possible value in that dialog, apply with 'OK', e.g:
- now further decrease measure stretch by using the shortcut '{', here 4 times:
expected result:
Either nothing happens, we're already at the lowest stretch value
or
That measure gets further condensed and the measure stretch goes negative
Actual result: the following measures get affected by the reduce stretch and even flows into the selected measure, see above
another problem, with image mode, saving in screenshot mode: the blue selection rectangle is not part of the saved image, only indication that we're in screenshot mode rather then pront mode is the coloring of the notes. Guess that should get reported separatly
Comments
I'm getting the same bug in 2.0.1 (Windows 7). Looks like Layout > Decrease Stretch (or "{" shortcut) erroneously allows the stretch to go negative, reducing the measure's logical width below the minimum rendered width.
People reported this in 2009 (#3176: MuseScore weird behaviour on adding less stretch) and 2010 (#4926: Bars overlap when shrunk).
This interacts unintuitively with the displayed Layout Stretch value in Measure Properties, which is evidently enforced as nonnegative in that part of the UI. Negative stretch values, as above, display as 0.00; Cancel doesn't touch the underlying negative value, while Apply or OK set it to zero. (Should this be another bug report? It'll be "fixed" when Decrease Stretch is.)
So we should disallow stretch to become < 0.0? Is 0.0 itself OK? If non, what should be the smallest possible value?
Testing with disallowing values < 0 shows quite good results, i.e. fixed the problem mentioned here. But if you do this for all measure in a system, things go haywire. This is true before that change though, so might be a different issue...
Hmm, disallow values < 0.001 seems to work OK, and is still small enough for the dialog to show 0.00.
I have some difficulty with this thread, or I misunderstood something. If I apply the value O in 'Measure Properties ", I get this in a measure of" My First Score".
Under certain conditions of layout, this can lead to an overlap on the other measure.
But that is exactly the same behavior with the shortcut "}", right?
If press x times this shortcut for the same measure, I may get this.
Is that a reason to disable the shortcut ?!! And so, in the same idea, is that a reason to disable the value O (I personally use and it is useful to me).
If there is overlap, using the inverse shortcut "{", or increase the value in "Measure Properties", right? Just a little common sense.
I agree that the only existing bug concerns the "Cancel" button that does not work in "Measure Properties".
But as already stated, you change the value, and that is all. Especially, the "Apply" button works, so, you can see on the screen at any time the result of your action. So, where is the problem (except therefore the behavior of the "Cancel" button)?
see https://github.com/musescore/MuseScore/pull/2023
One possible use for negative stretches: creating a fake courtesy key signature after a "D.C. al fine" at the end of a piece. https://musescore.org/en/node/18330#comment-66690
(Though, experimenting, the resulting formatting is fragile if the preceding material on the system changes width, as with inserting or deleting a measure!)
Fragile indeed. I wouldn't depend on this! Instead, maybe think about adding measure on the next page and not printing that page, or something like that.
My undestanding is that 0 is ok but not a <0 value. I think it should be solved in cmdDecreaseStretch and not when setting the value or reading value from score.
Fixed in bf735e6a97
I'd need to check again, but IIRC 0 was not ok, try it on all measures of a system (using system breaks). That was why I picked 0.001.
And indeed very bad thinks happen, try it yourself, I'm a hard time describing what I see here
in a score add some system breaks, so that you end up with one system spanning 3 measures
change stretch of all 3 measures to 0 and after the last change watch what happens.
See https://github.com/musescore/MuseScore/pull/2030
See also the attached to screenshots, taken just before having set stretch of the last measure of the 2nd system to 0:
and just after:
then using photo mode:
Werner will take a look. See my comment https://github.com/musescore/MuseScore/pull/2030
Fixed in branch master, commit b8adcc617d
fix #50921 Reduce stretch has bad effect on other measure as soon as stretch factor reaches 0
Bad things are happening if the effective stretch (userStretch * layoutStretch) goes < 1.0. This is now fixed.
The userStretch for a measure has to be >= 0.0. A zero value produces a measure which is as tight as possible, independent of the available space in the system.
Actually after b8adcc617d the above mentioned problem still exists
But it seems fixed now with bf8dc84 ...
Fixed in branch 2.0.2, commit 0b0f19a598
fix #50921 Reduce stretch has bad effect on other measure as soon as stretch factor reaches 0
Automatically closed -- issue fixed for 2 weeks with no activity.