musescore / MuseScore

MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!
https://musescore.org
Other
12.22k stars 2.65k forks source link

Make expression text behave more like 4.4 dynamics #24457

Open avvvvve opened 1 month ago

avvvvve commented 1 month ago

Issue type

UX/Interaction bug (incorrect behaviour)

Description with steps to reproduce

Expression text should have some of the same behaviors that dynamics have:

  1. With a hairpin selected, you should be able to click the expression text element in palettes to add it to the end of the hairpin. And vice versa: with expression text selected, you should be able to add a hairpin after it.
  2. You should be able to move expression text to different anchor positions with Shift + left/right arrow
    • You can do this now if the expression text is snapped to a dynamic (via the "Align with preceding dynamic" property), but only if you have the dynamic selected. You should be able to move the two together if either the dynamic or the expression text is selected.
  3. When dragging expression text attached to the hairpin, the hairpin should expand/shrink while it is being dragged. Now, it only updates once the drag is released.
  4. Clicking and dragging expression text should move its anchor point.

Supporting files, videos and screenshots

For no.3 above:

https://github.com/user-attachments/assets/9cb018d2-f260-4f5f-89ef-518de28f7927

What is the latest version of MuseScore Studio where this issue is present?

5.4

Regression

No.

Operating system

macOS 14.5

Additional context

No response

Checklist

avvvvve commented 1 month ago

@oktophonie @mike-spa feel free to move out of 4.4.2 if this doesn't feel urgent or edit if any of this doesn't make sense!

mike-spa commented 1 month ago

@oktophonie @avvvvve I've spent a couple of hours looking into this. It all makes sense (and I've definitely thought about it before). The reason't I haven't done this yet is that it's quite a large job because (unlike dynamics, but like every other text-based element) expressions have never had any "reanchoring" property. In fact, "expressions" didn't even exist until I created them a couple of years ago: they used to be just styled staff text. The re-anchoring does work when the expression is attached to a dynamic simply because in that case the expression just follows what the dynamic does (it doesn't need to be able to find its own renanchoring points). Now that I have a clearer picture of this, I can confirm that it's surely doable, but also definitely not patch-releasable, so I'm moving this out of the 4.4.2 project.