musescore / musescore/MuseScore

Automatic application of the dynamics diagonal according to the contour of the pitches

Open
#23,915 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

feature request
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:
Снимок экрана (476)

The reason for this may be not only the glissando line, but also quite different other things like this:
Снимок экрана (477)
Снимок экрана (478)

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:
Снимок экрана (479)

It would be much nicer if it looked like this:
Снимок экрана (480)

If the example is not entirely successful for you, then take a look at this:
Снимок экрана (481)

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.