Skip to content

Conversation

@Reedbeta
Copy link
Contributor

@Reedbeta Reedbeta commented Jan 7, 2026

Resolves: #31669

Playback would still use the hairpin's snapped end dynamic even if it had the "play" property unchecked. This PR adds checks for that property, so dynamics with "play" turned off are ignored; and also adds logic to search for a playable dynamic at the hairpin end point, if the one it's snapped to has "play" turned off.

This allows a setup like this, where the "ff" has play turned off, and the invisible "mf" has play enabled, to work as expected (the crescendo only goes to mf during playback).
image
To link up for playback, the end dynamic must be at the exact time tick where the hairpin ends, and must have the same voice assignment (i.e. same rules as snapping).

  • I signed the CLA
  • The title of the PR describes the problem it addresses
  • Each commit's message describes its purpose and effects, and references the issue it resolves
  • If changes are extensive, there is a sequence of easily reviewable commits
  • The code in the PR follows the coding rules
  • There are no unnecessary changes
  • The code compiles and runs on my machine, preferably after each commit individually
  • I created a unit test or vtest to verify the changes I made (if applicable)


void PlaybackController::seekElement(const notation::EngravingItem* element, bool flushSound)
{
IF_ASSERT_FAILED(element) {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found this assert failing if, while playback was running, I clicked in an empty area of the score (e.g. between staves).

@Jojo-Schmitz
Copy link
Contributor

Rebase needed to fix the arm build

@Reedbeta Reedbeta force-pushed the pr/fix-hairpin-end-dynamics branch from e2d0b29 to c306a33 Compare January 7, 2026 16:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dynamics with "play" unchecked still affect hairpins

2 participants