musescore / musescore/MuseScore
Dynamics do not override previous markings in multi-measure repeats
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 15.1k
- Forks
- 3.3k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 91
Description
Issue type
General playback bug
Description with steps to reproduce
- Create/open any score with several measures.
- Fill two measures with notes at a piano dynamic.
- Set the next two measures to have a two-measure repeat.
- Insert a crescendo (hairpin or text) in the first measure of the two-measure repeat.
- Add a forte dynamic to the end of the crescendo.
- Set the next two measures to have a two-measure repeat.
- Play back and observe that the crescendo and reset to piano is repeated although not marked in the second two-measure repeat.
(Expected: the playback maintains the last marked dynamic, which would be forte). - Now add another forte dynamic to the beginning of the first measure of the second two-measure repeat.
- Play back and observe that the reset to piano still occurs despite another forte marking.
(Expected: the playback maintains the marked forte and does not reset to play the crescendo again).
Supporting files, videos and screenshots
https://github.com/user-attachments/assets/877b8230-d519-4d31-b3dd-3cc684bae587
What is the latest version of MuseScore Studio where this issue is present?
Release 4.4.1-242490810, Nightly 4.4.2-242520503
Regression
I was unable to check
Operating system
Windows 10
Additional context
Same behavior with MS Basic playback.
The effect is more pronounced with percussive instruments like snare drum, so I've included that in the video.
It seems like the crescendo/decrescendo is altering dynamic values each time it increases the volume, which results in those values being stored and used in the next measure. Thus, when a different dynamic marking it applied, it only alters one of the volume levels (and not the subsequent ones changed by the crescendo/decrescendo).
(I don't know anything about the code, this is just a guess based on behavior I'm seeing).
One could argue that repeating marked dynamic changes in a repeated measure is intended behavior (like in #15232), but dynamics changes that are marked in the repeat measures should not be repeated. At least, dynamics should be able to override crescendos/decrescendos in repeat measures.
Checklist
- This report follows the guidelines for reporting bugs and issues
- I have verified that this issue has not been logged before, by searching the issue tracker for similar issues
- I have attached all requested files and information to this report
- I have attempted to identify the root problem as concisely as possible, and have used minimal reproducible examples where possible
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by opening the attached multiMeasureDynamicsTest.zip in MuseScore Studio and reproducing the playback sequence with multi-measure repeats, crescendos, and forte markings. Trace the playback handling for repeated measures and dynamics; done means later repeats preserve the last marked forte and do not replay an earlier crescendo or reset to piano.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100