musescore / musescore/MuseScore
Automatic application of the dynamics diagonal according to the contour of the pitches
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 15.1k
- Forks
- 3.3k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 91
Description
My idea
I suggest implementing a function that would automatically change diagonally things like hairpins. It would depend on the pitch contour. I'll give you the simplest example:
The reason for this may be not only the glissando line, but also quite different other things like this:
Problem to be solved
This will visually improve the performer's perception of the musical texture. In performance material, for clarity, it is important to keep dynamics as close as possible to the notes to which they refer.
Yes, at the moment MuseScore has such an option as "Allow diagonal". But if the hairpin needs to be moved outside the stave, then auto-placement will have to be sacrificed, which will entail crossing with the previous dynamic, which means that the user will additionally have to manually align each handle of the hairpin.
A lot of fuss. A beginner will not understand at all that it is necessary to disable auto-placement first.
https://github.com/user-attachments/assets/ee3db538-8d2a-4fb4-b116-4fd2d8a809ae
In any case, I'm talking about the automatic adjustment of the hairpins (and text dynamics as well), i.e. so that the user does not have to manually adjust all these subtleties.
And it would look much better than it does now, and even considering that #16845 is still open. For example, look at how it looks now:
It would be much nicer if it looked like this:
If the example is not entirely successful for you, then take a look at this:
Checklist
- ✅ This request follows the guidelines for reporting issues
- ✅ I have verified that this feature request has not been logged before, by searching the issue tracker for similar requests
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
No files, tests, or entry points are named in the issue. Start by locating MuseScore's hairpin and text-dynamic placement code, then define the pitch-contour cases and their interaction with auto-placement; done should mean these dynamics are automatically positioned as proposed without manual handle alignment.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- design, desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100