After an 'sf' dynamic, subsequent 'p' dynamic is ignored in Presto piece.

• Jun 18, 2021 - 23:49
Reported version
S4 - Minor

In Beethoven's Moonlight Sonata, Movement 3, there is an 'sf' dynamic on the 4th quarter of the 2nd measure. The 3rd measure begins with a 'p' dynamic.

It is expected that the 3rd measure onward would be played at 'p'.

The actual behaviour is the velocity of subsequent notes remain loud; the 'p' is ignored.

in fact, it does not matter if the 'p' at the start of the 3rd measure is there or not; it plays the same.

In the forum, , a fix was proposed, which was to set the dynamic 'Change Speed' from "Normal" to "Fast". This indeed works, and the piece plays as expected.

The piece is in tempo "Presto", 178 BPM. Playing the piece at a slower tempo (150 or slower) allows the 'p' dynamic to take without the workaround.

My issue is that the explicit 'p' in the 3rd measure is being ignored with default settings at a Presto tempo.


When I remove the 'p' dynamic, the piece plays the same.


Here's how I would have expected it to play by default:


OS: macOS 10.16, Arch.: x86_64, MuseScore version (64-bit):, revision: 3224f34


The OP's attachment: "moonlight_Sonata_mov_3-excerpt-with-p-dynamic-workaround.mscz" does not show any dynamic 'Change Speed' from "Normal" to "Fast". It plays the same as the others. (Perhaps the wrong file was attached.)

This attachment does:

It is the 'Change speed' parameter of the sf, which is changed from 'Normal' to 'Fast' in the Inspector.
I'm interested to know whether this is a a legitimate use of the 'Change Speed' parameter. It works, but does it work this way "by design"?

Can we get an agreement on what the expected behaviour is here?
One proposal:
sf (and similar markings) should add 32 points to the current dynamic (e.g. if it's pianissimo, which I believe defaults to 33 velocity, then something around 65 is plenty for a sf, but if you're already at mf=80, then sf will be 112, the current fixed default), then very quickly return back to the same dynamic you were at before. More importantly, if there IS another explicit dynamic specified before the diminuendo period ends, that should override the diminuendo (currently it's the other way around).
To clarify something like:
pp A B C sf D pp C B A
A B C should be played at dynamic 33, D at 65, then C B A at 33, regardless of tempo or the "Change speed" for the sf.
However if it's
pp A B C sf D C B A G F E D etc. etc.
Then the D will be at 65, and a diminuendo applied as per the current logic but after it completes, returning to 33, so perhaps (assuming -10 as the velocity change):
D=65, C=60, B=55, A G F E D etc. = 33
(though this will depend on the tempo etc. Note that the diminuendo can even apply just on a single note).

Currently MuseScore doesn't really seem to have a dynamic type that can be configured to mean "+32", even though in the code there is an "accent" flag that would seem to mean exactly that.
Ideally I'd actually like to see the velocity setting show +32, but that might not be straightforward. The other option is just to use the 'accent' flag internally to mean "when this dynamic is placed on the score, subtract 80 from its default velocity, then add that to the velocity of the most recent dynamic". So for an mf passage, a newly added sf will show as it does now (velocity 112), but for a f passage it will show as 127 (the maximum possible value).

(By extrapolation sff should add 46 points, as it's currently defaulted to 126)

In reply to by Dylan Nicholson1

BTW it's been argued sfz basically always mean "attacked as hard as possible" regardless of the current dynamic, whereas sf is always intended to mean "within the dynamic range of the current page". But in that case sffz is meaningless*...I don't have a strong opinion ether way, but I'm pretty sure I would always play ***sfz*** louder as part of an ***ff*** passage than I would as part of a ***pp*** passage. Oh and ***rf*** would always be less of an accent than an ***sf(z)***, and quite likely where appropriate I'd anticipate an ***rf*** slightly, i.e. it wouldn't be a sudden single-note accent.

(*) Or not, I've seen it suggested that ***sffz*** has the same initial attack as ***sfz*** (i.e. maximum), but then less of a rapid drop off.