manual object positioning is incorrect after staff size change

• Jan 27, 2015 - 02:58
Type
Functional
Severity
S5 - Suggestion
Status
closed
Project

I discovered this bug while shrinking the violin part on a violin/piano score. Any manually positioned elements (text, lines, articulations) become misaligned after the staff size change, with the margin of error dependent on how far the objects have been moved from their default positions.

Here is a screenshot of the attached MuseScore project file "staff shrink test.mscz":
staff scale 01.png
The text "simile" has been moved from its default position above the staff, and the hairpin was moved from its position below. When I resize the staff to 66%, I get this:
staff scale 02.png
The text "simile" and the hairpin are now quite a bit off from where they should be. The "relisten..." text above the staff was never moved from its default position, and is still in the correct place.

I am using MuseScore nightly ff2b92c on Kubuntu 14.04 64-bit.

Attachment Size
staff shrink test.mscz 5.71 KB
staff scale 01.png 15.14 KB
staff scale 02.png 11.67 KB

Comments

Looks like the actual *amounts* of adjustment are being honored literally; they aren't being scaled as they should be. I suspect it will turn out to be true for some elements but not others.

This issue is produced by the combination of two events: 1) an item is moved from its default position, and 2) a change of scale eg 66% is performed (in Staff Properties)

All the elements (I have not checked each item one after the other, but I think) of the palettes: Lines, Text, Repeats, Tempo, Articulations & Ornaments, etc., are affected.

- First example (in the first two measures, the elements are in their default position before the change of the scale: in contrast to the following two measures where I've reversed - above, below the staff - the items position)
result on 4f9dc38 August 16.jpg
- Second example:
other example.jpg
Note also that the opposite case (change the scale firstly, then, change the default position of some items, and then return to a scale value -> 100%) product the same result, which is not a surprise, of course.
reverse case.jpg

From what I see, this issue has occurred since the implementation of this new feature on August 14. Here: https://github.com/musescore/MuseScore/commit/c78951ba3c57cc6ad172913e2…

Indeed, all attachments were produced from this Nightly on August 16: 4f9dc38
and I can reproduce in the later months.

Hmm, thanks, ok, but what about using the "small" property instead of the numeric control over staff size? The bug exists when using that too, but that feature has been around forver. I wonder if it worked correctly on August 13 but broke when the numeric staff scaling feature was added, or if it was already broken?

I don't understand very well: " what about using the "small" property instead of the numeric control over staff size?
Anyway, the Nigthlies were unusable (they could not be opened in reason of a font issue), between August 11 and on earlier August 16. Therefore, I have no way to check during this amount of time (in particularly on August 13, like your request)
So, and sorry, I cannot help more about this issue.

For the record, I mean if you do the following:

1) enter a hairpin
2) drag it to change its position to just above the staff
3) right click measure
4) staff properties
5) click the "Small staff" checkbox
6) OK

Currently, this results in the same thing as using the "Scale" option to make a staff smaller - the hairpin is now too high above the staff. I am wondering if this issue aready existed in May or if it appeared some time between then and August. But it probably is not important to understand; I suspect it will be straightforward to fix once someone takes a look. Thanks again as always for your continued help!

Of course, "Small staff": I realized right after your message ...(oops, no, after my first reply!)
I look at with the new steps.

Absolutely, this issue already existed in May 19: 56177c3, as you can see on the attachments. I have checked on some other Nightlies in June-July: same result.

So: very former issue :(
hairpin May19.jpg
result small staff.jpg

Its more complicated than it might look on first sight. Its mostly the vertical offset which is wrong after resize, not the horizontal. But i can also imagine cases with different staff sizes were also the vertical offset scaling will not give good results. So i believe there is no algorithm which gives "right" results. This also means that the current behaviour may be suboptimal but is not a bug.

I can live with that - the "rule" would be that you should only do manual adjustments after settling on a final relative staff size. But I am wondering about these cases where scaling the vertical offset does *not* give good results. I'm sure they exist, but still, I have to imagine the cases where it *does* give results would be the majority? If it's not *difficult* to implement this, I have to think it would indeed be better, would it not?

werner wrote: "Its mostly the vertical offset which is wrong after resize, not the horizontal. But i can also imagine cases with different staff sizes were also the vertical offset scaling will not give good results."

If you apply a percentage-based transformation of the vertical offset values and let the horizontal alignment continue to be based on position within the measure, how can this not lead to the optimal result the vast majority of the time?

werner wrote: "So i believe there is no algorithm which gives "right" results."

The method I mentioned above is how people would expect it to behave, and indeed how other notation software functions as well.

werner wrote: "This also means that the current behaviour may be suboptimal but is not a bug."

I can't imagine the current behavior ever being the desired behavior. So, whether or not it actually classifies as a bug, musicians using the software will view this as undesirable, weird behavior and will view it as a bug, or bad programming, or whatever.