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.08k stars 2.61k forks source link

Revert adding hairpins to keep the same measures selected #24203

Open Zephereth opened 2 weeks ago

Zephereth commented 2 weeks ago

Your idea

Previously, before the new Musehub sounds were added, you could select measure(s), add a hairpin marking, and the measure(s) selected would stay selected, so you could subsequently add a dynamic marking. This no longer happens and the hairpin itself is selected after you add it.

Problem to be solved

This is very annoying how it was changed to and makes it take longer to create dynamic phrases when you could just select hairpin + dynamic in one motion and move onto the next grouping of dynamics previously.

Prior art

No response

Additional context

Not sure when it was changed, but I'm pretty sure it was before the new Musehub update with the new libraries.

Checklist

wizofaus commented 2 weeks ago

In general MuseScore doesn't auto-select just added elements, but I wish it did (also after undo/redo!). It would be consistent with how many other applications work.

Zephereth commented 2 weeks ago

In general MuseScore doesn't auto-select just added elements, but I wish it did (also after undo/redo!). It would be consistent with how many other applications work.

It was nice before because if you were inputting the same dynamic phrasing for, say all of the strings or all of the brass, you could select the measures for all instruments, hairpin, dynamic, but now you have to select the measures 2 times to do the same thing since it just selects one of the hairpins, maybe the top or bottom one, I don't remember.

MarcSabatella commented 2 weeks ago

The shortcuts "<" and ">" leave the full measures selected. Only adding via the palette selects the element added.

Updates to sounds via Muse Hub never affect the behavior of MuseScore Studio itself. The change to the palette behavior happened between 4.3.2 and 4.4.

Zephereth commented 2 weeks ago

The shortcuts "<" and ">" leave the full measures selected. Only adding via the palette selects the element added.

Updates to sounds via Muse Hub never affect the behavior of MuseScore Studio itself. The change to the palette behavior happened between 4.3.2 and 4.4.

Why was it changed? I typically just use the palette to select what I need, always have. And I know the update to sounds didn't change it, I just remember this change happening around that update..

Zephereth commented 2 weeks ago

Another thing I meant to add is that adding hairpins over tied notes is clunky now, I assume changed at the same time this other issue was changed. You can't add hairpins, as an example, two half notes tied together, you crescendo 2 beats, decrescendo 2 beats. The hairpin is added over the course of the tied note, meaning all 4 beats. The workaround is to un-tie the note first, add the hairpin, then tie it again. Picture as an example: image

MarcSabatella commented 2 weeks ago

? You can very easily now change the duration of a hairpin to start and end on any beat, something never possible before. That is indeed one of the great advances made in 4.4. Sounds like you are having trouble learning how to use this new feature. best to ask for help on the official Support forum at musescore.org if you have further questions on how to use MuseScore.

wizofaus commented 2 weeks ago

I think Zephereth point is just that previously when you had two tied notes, you could easily add hairpins to each of them separately, whereas now it treats it as one note, and you have to use the new anchor feature to achieve the same effect. Which may well be a justifiable change all things considered, but I can understand why it would be annoying if you'd already made a habit of treating notes in a tied chain separately (and sometimes music is deliberately written that way, to make it clear where you want a dynamic that's part-way through a sustained note to go).

wizofaus commented 2 weeks ago

Having said that, Zephereth I just tested - if you place the mp dynamic first, then adding the hairpins works as expected.

wizofaus commented 2 weeks ago

In general MuseScore doesn't auto-select just added elements, but I wish it did (also after undo/redo!). It would be consistent with how many other applications work.

Actually it's a bit weird, and it may even have been changed with 4.4 - but it seems to depend whether you have range or a list or individual note selected to begin with. If you have a range selected, most likely the newly added element will get auto-selected (unless it's a time or key signature). Otherwise, it depends on the type of element - specifically it seems if you start with an individual note selected (or list of notes) and add a "spanning" element, it doesn't get automatically selected.

wizofaus commented 2 weeks ago

The shortcuts "<" and ">" leave the full measures selected. Only adding via the palette selects the element added.

It's even weirder than that - it depends how many staves are selected to begin with. If it's only one, they both behave the same (the newly added element gets selected, I think true of any spanner). But if you have a range selected that covers multiple staves, you're right, the behaviour is different between the shortcut (which leaves the current selection unchanged) and adding via the palette (which auto-selects only the newly created spanner in the bottommost of the selected staves). A hairpin is just one type of spanner, but I believe it's true for all of them.

avvvvve commented 2 weeks ago

It is indeed a regression in 4.4 that when multiple measures across staves are selected, adding a hairpin from palettes only leaves the last hairpin selected, rather than all of them. Likely an unintended side effect of several changes we made to how hairpins and dynamics work together for this release.

I agree with everyone who's said that newly added elements should all end up selected, not just the last one. This already wasn't happening with dynamics before 4.4 so we definitely have some massaging to do.

I tested the differences in behavior pre- and post-4.4, which you can see in the attached videos:

4.3.2

https://github.com/user-attachments/assets/9a080669-85b4-4a5e-96e4-8b3d277890c2

4.4

https://github.com/user-attachments/assets/e58e0ac3-369c-4d4b-a4b6-22156380e06d

Ideal behavior

Here's how I would recommend we amend this:

MarcSabatella commented 2 weeks ago

I have no trouble adding a hairpin to just a single tied note in 4.4. Select the range, press "<" or click the palette icon. I guess if you only click the first note rather than make the range selection. Normally to me it would be a good thing that the hairpin extends the full duration as that is surely much more common than a partial hairpin. But it's trivially easy to get the desired result either way. Certainly no need to resort to untying notes just to add hairpins.

But yes, I do agree that with a range selected, it would be nice if the palette continued to leave the range selected after adding a hairpin.

Zephereth commented 2 weeks ago

I have no trouble adding a hairpin to just a single tied note in 4.4. Select the range, press "<" or click the palette icon. I guess if you only click the first note rather than make the range selection. Normally to me it would be a good thing that the hairpin extends the full duration as that is surely much more common than a partial hairpin. But it's trivially easy to get the desired result either way. Certainly no need to resort to untying notes just to add hairpins.

But yes, I do agree that with a range selected, it would be nice if the palette continued to leave the range selected after adding a hairpin.

I'm confused how exactly I'm supposed to add the hairpins properly without having to either drag the element or untie the notes.

https://github.com/user-attachments/assets/f5b0d2dd-8342-4760-87d9-f6a35ba62420

If I'm doing this incorrectly, please inform, but this is the way I've always inputted elements, I only use a few shortcuts.

avvvvve commented 2 weeks ago

@Zephereth To your last comment, instead of using the mouse to drag the end of a hairpin, hold shift and use the left/right arrows to precisely adjust its length to a different beat position. Ctrl (or cmd on Mac) + shift + left/right arrow keys will shift the end of the hairpin by a full measure.


It sounds like we need to decide between:

  1. Leaving the range selected after adding a spanner
  2. Selecting the new spanners after adding them to a range of measures across staves

Option 1 is preferred if you want to add another kind of spanner to the same measures without having to reselect them. Option 2 is preferred if you want to add dynamics to the end of hairpins. I would guess this is the more common use case of the two. This is also how adding most other element types to a range of measures works (or should work, in the case of dynamics).

MarcSabatella commented 2 weeks ago

@Zephereth As I said, simply select the desired range before clicking the palette icon - same whether the range is a single note or many measures. But if you change your mind about the span after adding it, or accidentally add it incorrectly, then indeed, Shift+Left/Right adjusts the span.

@avvvvve I have no strong feelings as to which selection behavior to adopt. I can say that in the past, we've had the general bias that range and list selections are always worth preserving where possible since they can take more than a moment to recreate. But when adding a single element to a single selection, then leaving the newly added element selected usually seemed to make more sense.

wizofaus commented 2 weeks ago

My preference would be to have a "restore previous selection" command. i.e. any new elements, no matter what's selected and what they are (including time/key signatures!), are auto-selected on adding. But if you have a need to restore the selection to re-apply something else to the same notes, that can be new command with its own shortcut.