Playback fixes for hairpin end dynamics #31678
Open
+20
−15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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).

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).