Using Inspector spin box to move an element from below to above staff creates surprise when the placement changes

• Jul 17, 2020 - 12:37
Reported version
3.4
Type
Functional
Frequency
Once
Severity
S4 - Minor
Reproducibility
Always
Status
active
Regression
No
Workaround
No
Project

OS: Windows 10 (10.0), Arch.: x86_64, MuseScore version (64-bit): 3.4.2.9788, revision: 148e43f

  1. Create a new score
  2. Select a whole measure rest or add a note and add a dynamic.
  3. Select the dynamic. Note the Y offset – in my case I have the default set to -2.5
  4. Use the down -spin button to decrease the Y offset several times.
  5. Result the dynamic moves upwards in steps of 0.5 spaces until an offset of -5.0 is reached. The next click on the spin button changes the Y offset to -5.5 but the dynamic moves a large distance up. Expected result, the dynamic moves up by another 0.5 space.
  6. Click on the reset to style default button next to the Y offset
  7. Result 1: the offset is set to -3.0. Expected result: the offset is set to -2.5
  8. Result 2: the dynamic moves downwards but is positioned above the stave at a distance of approximately 3 sp above the top line. Expected result: the dynamic returns to the position it had when originally added in step 2.

You get the same result if instead of using the spin button at step 5. you type a Y offset into the inspector. There is a large difference in position between a value of -5.0 and a value of -5.01.

There are similar results with other elements when the offset is changed to a value greater than +4.50 sp or less than -5.0 sp. I have tested lines, stave text and system text and they exhibit the same problem. It does not occur with articulations, ornaments, slurs or ties.

The problem persists in 3.5 beta.


Comments

Status active needs info

I'm having trouble understanding the steps. Are you missing the step where you changed the default Y position? A sample score all of your customizations would help. Like, do you also have the "placement" set to "above"?

Anyhow, I tried a few different variations of this but couldn't get anything to go wrong. From the description, though, I suspect you are seeing something like #289943: Inspector: min distance and offset values do not update immediately when moving into the skyline using Inspector controls

In reply to by Marc Sabatella

Sorry some spurious minus signs crept into my original post.

Here is the illustrated version showing the position of the dynamic alongside the inspector showing the Y offset (and with only the correct minus signs present in the text below).

Note there is no step for setting the offset default. I did that weeks ago.

  1. Create a new score
  2. Select a whole measure rest or add a note and add a dynamic.

After Step 2:
After Step 2.jpg

  1. Select the dynamic. Note the Y offset – in my case I have the default set to 2.5
  2. Use the down -spin button to decrease the Y offset several times.

After Step 4: (Note the Y offset is now -5.0)
After Step 4.jpg

  1. Result the dynamic moves upwards in steps of 0.5 spaces until an offset of -5.0 is reached. The next click on the spin button changes the Y offset to -5.5 but the dynamic moves a large distance up. Expected result, the dynamic moves up by another 0.5 space.

After Step 5: (Note the Y offset is now -5.5 but the dynamic has moved much further than 0.5 sp)
After Step 5.jpg

  1. Click on the reset to style default button next to the Y offset. Note it is the reset to style button I am talking about here (the x inside the circular arrow), not the set as style S button.

    After Step 6: (Note the Y offset is now -3.0 not the style default of 2.5)
    After Step 6.jpg

  2. Result 1: the offset is set to -3.0. Expected result: the offset is set to 2.5

  3. Result 2: the dynamic moves downwards but is positioned above the stave at a distance of approximately 3 sp above the top line. Expected result: the dynamic returns to the position it had when originally added in step 2.

Forcing a re-layout by switching to and from continuous view does not put the dynamic back in the expected place below the stave, nor does a save and reload.

I don't think this is the same as #289943 as that says the minimum distance changes, whereas in this case it is only the Y offset value that changes. I didn't find anything similar to this issue in the issue tracker, but maybe I didn't look hard enough.

Severity S3 - Major S4 - Minor

It's still not clear where the default offset got changed. Do you mean you created an MSS file and set that as your default in preferences? In the future, it would be better to include scores, then otherwise when we create a score we get something different than what you have and one never knows when that will be relevant.

Anyhow, in this case it isn't needed, the steps are clear enough. What's actually happening here is the code is smart enough to detect that you have moved the dynamic above the staff, and it automatically change the Placement setting for you. So now suddenly your -5 offset is being applied to the above placement instead of the below. Presumably we could try to correct that as well, but there is an issue making changes to two settings at once, as per the other issue I mentioned.

Meanwhile, though, it's much better to simply flip the dynamic above using "X" or the Placement field in the Inspector, rather than rely on large negative offsets.

In reply to by Marc Sabatella

I set the default Y offset via the Format≥Style>Dynamics dialogue. I like my dynamics closer to the stave than the standard default of 4.0 sp. This change of default is a red herring I think. I mentioned it only to explain why yhe starting position was 2.50 rather than 4.0.

Next point, I wasn't actually trying to position a dynamic above the stave using this method. i actually discovered the behaviour when playing with a line's position and thickness to position a coloured block within a measure. As this was a fairly esoteric use case I looked further and found it happened with dynamics and text items. I decided to report it in the context of dynamic placement.

From your reply, it seems this behaviour is "by design". Fair enough, but it's a surprising design feature nonetheless.

Title Setting Y offset greater than 4.5 or less than -5.0 results in incorrect placement of dynamics. Using Inspector spin box to move an element from below to above staff creates surprise when the placement changes
Status needs info active

It's partially design - it's definitely a deliberate feature that if you attempt to move a dynamic from one side of the staff to the other, MuseScore recognizes this and flips it for you. Normally people do this by dragging, and then there is no jump at the end. It's only the fact that you are using the spin box rather than dragging - or using Placement, or using "X", which would be the actual recommended methods - that you are seeing the glitch. but consider, what's the alternative? It would be having the dynamic stay where it is but have the offset suddenly change from-5 to 0. That would be equally surprising. No matter how you slice it, if you try to do an unusual thing and MsueScore tried to correct it for you, the result is going to be a little bit surprising. Surprising in that it doesn't fix the placement for you, or that the element jumps, or that the offset field changes right out from under you. I don't see a good "expected" result here.

But since the Inspector is completely redesigned for MuseScore 4, it is at least an opportunity to consider changing how we choose to surprise the user who surprises us this way :-)