Hairpin autoplacement creates collision with dynamics in certain cases

• Jul 14, 2019 - 03:01

The attached example shows a case extracted from a real score where the hairpin is buried behind the dynamics. The situation arises when the range covered by the hairpin is short and at the same time the dynamics are long, such as ppp or pp. If the measure is stretched by an important factor such as 2.2 in the fourth measure the layout normalizes.

Attachment Size
Test_hairpin_collision.mscz 4.61 KB

Comments

I'm not seeing autoplacement creating any collision; the collisions is there with autoplace turned off too. Autoplace doesn't add extra space for this, it only moves things around. The only cases where it adds space are for elements on the staff, lyrics, and chord symbols. Doing so for hairpins would be much more difficult and probably not worth the effort.

In reply to by Marc Sabatella

While it may not be causing it, it should certainly prevent it. It should move the dynamics so that they do not overlapp the hairpin, at least this is what one would expect from an autoplacement feature. Or else it should adapt the horizontal position of the notes such as happens when stretching the measure. This doesn't seem a much more difficult task than making room by increasing the staff or system separation in some cases to avoid collisions.
Pronbably a way to trigger this would be to set a minimum size for the compound dynamic-hairpin-dynamic, which in turn depends on the minimum length of a hairpin and the rule that the left end of the hairpin should be (in autoplacement mode) to the right of the right edge of the preceding hairpin and similarly for the other end of the hairpin.
Some possible solutions: 1) automatically stretch the measure if the rule cannot be complied with, 2) relocate horizontally the notes adapting the same algorithm that makes room when other notes are added in another staff or voice.

In reply to by fmiyara

Moving the dynamics is certainly possible, but it greatly increases the likelihood of introducing collisions elsewhere.

Adding dynamics to the list of elements that affect spacing by default (like chord symbols and lyrics) is probably more feasible, but is likely to lead to an unnecessary increase in spacing in general.

Having autoplace add space only when necessary is much more complicated because the stretch has already occurred by the time hairpin layout happens. And that is as it must be, line layout depends on the measure widths and allocation to systems being fixed already.

Anyhow, feel free to file a "Suggestion" to the issue tracker for a new feature.

Do you still have an unanswered question? Please log in first to post your question.