When attaching a dynamic to a hairpin, the hairpin doesn't play back unless velocity is edited in the inspector

• Jun 18, 2021 - 05:48
Reported version
S5 - Suggestion
  1. create a hairpin

  2. select the end node and add a dynamic from the palettes

Instead of playing back as expected, the hairpin doesn't play back at all without editing the values in the inspector. If you put a dynamic right after the hairpin without attaching it to the hairpin, it plays back as expected.


Status active needs info

Are you referring to adding text to the hairpin, as opposed to adding a dynamic itself to the following note ? It's true text attached to hairpins don't affect playback.

Probably this feature should simply be disabled.

In reply to by Marc Sabatella

By default there is a hairpin in the palette with an "mf" dynamic attached. It's surely reasonable to expect this to affect playback just like any other dynamic. BTW I would say the repo steps are:
1. add several notes (5 or 6)
2. add a p dynamic to the first
3. select notes 2-5 as a range and add an mf cresc. hairpin from the palette (Lines)
4. add an f dynamic to the last note
5. hit play
6. note that there's no change in dynamic between the first p note and the subsequent mf note.

(BTW I'd also expect the cresc. should work even without the final f, which it doesn't. A human performer doesn't need a final dynamic to know the hairpin should still be honoured, even if required some arbitrary amount to crescendo by. It would seem reasonable to default to "one dynamic step", i.e. mf cresc. should default to a final f if there is none.)

That element was added to the palette before we supported automatic adjustment of the hairpin for a real dynamic, The layout of the dynamic on the haprin is incorrect and it also breaks the automatic alignment algorithm. Really this element should have been removed from the palette when the automation was added, we just forgot to. I am proposing we correct that mistake for MuseScore 4.

As for playback with a missing end dynamic, this is possible via the Inspector. We'd love to make it possible to have a reasonable default if there is no dynamic, but an issue is differentiating that case from a dynamic that just happens to be very far away and wasn't really even meant to be connected but just happens to be the next one in the score. Like all such issues, it's not unsolvable, it's just not one anyone has given thought to, we just provide the Inspector control.

In reply to by Marc Sabatella

I used that hairpin with attached dynamic extensively in the Ravel score I typeset, it was extremely convenient, and I wasn't that fussed about playback.
As for default dynamic change for a hairpin if the next dynamic marking is a considerable time after the end of the hairpin that must be an issue already - does it honour it if it's 3 or 4 measures later? Personally I'd only use a dynamic as the endpoint of a hairpin if it were in the same or next measure. All I'm saying is that if by the current logic no end dynamic can be found, default to the next available level. Obviously a ffffff cresc. hairpin would do nothing but I'd hardly expect many human players to be capable of that either!

In reply to by Dylan Nicholson1

Is it more convenient to use the crescendo with dynamic attached than to just add the dynamic separately? A sample score would help understand that use case if so. As it is, I know the one enhancement being designed has to do with having things like crescendo-diminuendo pairs underneath a sustain note, so you can set the length of the crescendo independently of whether there is a note to attach the end point to. So if an actually dynamic occurs in that case, this would presumably be covered by that design.

As for playback if the end dynamic is 3-4 measures yes, we look all the way to end of score currently, next dynamic wins (unless there is another intervening hairpin, I think). When the algorithm was first being designed I know there were published cases people want to be sure where covered where the end dynamic was several measures further along, so it would be important not to break those.

In reply to by Marc Sabatella

I could literally range select across 10 or 12 staves and apply an mf cresc. to all of them at once in one click. The Ravel had lots of that sort of thing. My palette now has 4 different dyn+hairpin combos!

If we were to change the algorithm for determining the final dynamic of a hairpin then sure, some scores may experience a change in playback. But even you had a weird situation with a pp then a hairpin then no dynamic other than an ff many measures after the end of the hairpin it would be a relatively subtle change in line with how a human performer would likely interpret it - a crescendo to p or so, then switch to ff at the point it occurs.
It's more of an issue with text that does says cresc. or cresc. poco a poco, where there is a case you should just keep crescendoing until a new dynamic is reached (or the end of a section/ movement). But I don't know if MuseScore interprets such text into playback at all.

Severity S4 - Minor S5 - Suggestion
Status needs info active

Makes sense, but still, the layout is usually wrong (the dynamic isn't aligned with anything), so this wouldn't be a recommended way of doing it anyhow, even if you do go to the trouble of adding the additional markings to your palette. I wonder though if there is a more efficient way to do it "right" - make a selection, click the hairpin, then have the selection automatically change to a column of all the notes immediately after, so you click the desired dynamic to add it there, or something like that?

In reply to by Marc Sabatella

Interesting, I just checked and yeah: a) the dynamic marking is positioned seemingly left-justified with the stem, rather than being center-justified b) it's ever-so-slightly smaller
It actually does the "correct" thing if you just add a dynamic to the first note of each staff then add the hairpin, but I can't see any easy way doing that if you already have range selected.
Actually I'm wondering if the default behaviour for "add dynamic" if a range is selected shouldn't just be to add it only at the beginning in each included staff. You can always convert to a list selection (using the inspector) if you really do want the dynamic explicitly added to every note in the range. Logically that makes sense - you're just indicating "I want all these notes to be played at a particular dynamic", and the normal way to notate that (at least for regular dynamics, not sf etc.) is just to show it once at the start of the passage in each staff.