-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Staff visibility #19679
Merged
RomanPudashkin
merged 4 commits into
musescore:master
from
Jojo-Schmitz:hide-empty-staves
Nov 14, 2023
Merged
Staff visibility #19679
RomanPudashkin
merged 4 commits into
musescore:master
from
Jojo-Schmitz:hide-empty-staves
Nov 14, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Jojo-Schmitz
force-pushed
the
hide-empty-staves
branch
2 times, most recently
from
October 11, 2023 09:25
859a7f8
to
52bd1fa
Compare
Jojo-Schmitz
changed the title
Check spanners when assessing emptiness
Staff visibility
Oct 11, 2023
Jojo-Schmitz
force-pushed
the
hide-empty-staves
branch
3 times, most recently
from
October 11, 2023 14:15
ebe5698
to
2b205a4
Compare
As this is an engraving issue/fix, I'd like to summon @oktophonie for a review ;-) |
Jojo-Schmitz
force-pushed
the
hide-empty-staves
branch
3 times, most recently
from
October 12, 2023 10:10
bd366e4
to
e7f51f3
Compare
Since HideMode::AUTO behaves in uncommon ways for most scores (hiding empty staves in a grand staff), this changes the hideWhenEmpty to INSTRUMENT when creating the Staffs upon import. In the case that a score part has a variable number of staves, it uses this to infer that we do truly want HideMode::AUTO.
Previously, a staff's emptiness was calculated based on its note and annotation content. Since this is evaluated before the system was laid out, the system did not have pointers to its SpannerSegments. This commit adds a way to include whether a staff has any spanners (particularly pedal markings and hanging slurs) in assessing emptiness, creating more consistent/expected hiding behavior in HideMode::AUTO. Port of musescore#8430, part 2
This commit tweaks the changes from commit 54ebee4 (which checks for spanners when assessing staff emptiness) and ignores spanners that are "system" spanners (such as voltas or system text). This prevents a false-positive unhiding in the case of such system spanners. Also, it prevents another false positive that occurred when a spanner started on the first tick of the next system. Backport of musescore#8527
…in measure before
Jojo-Schmitz
force-pushed
the
hide-empty-staves
branch
from
October 12, 2023 11:39
e7f51f3
to
f9bafcf
Compare
oktophonie
approved these changes
Oct 26, 2023
RomanPudashkin
approved these changes
Nov 14, 2023
Jojo-Schmitz
added a commit
to Jojo-Schmitz/MuseScore
that referenced
this pull request
Nov 15, 2023
after merge of musescore#19679
Merged
This was referenced Jan 5, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Port of [MU3 Backend] ENG-54: Staff Visibility #8430, part 1, "Default HideMode::INSTRUMENT XML import":
Since HideMode::AUTO behaves in uncommon ways for most scores (hiding empty staves in a grand staff), this changes the hideWhenEmpty to INSTRUMENT when creating the Staffs upon import. In the case that a score part has a variable number of staves, it uses this to infer that we do truly want HideMode::AUTO.
Port of [MU3 Backend] ENG-54: Staff Visibility #8430, part 2, "Check spanners when assessing emptiness":
Previously, a staff's emptiness was calculated based on its note and annotation content. Since this is evaluated before the system was laid out, the system did not have pointers to its SpannerSegments. This commit adds a way to include whether a staff has any spanners (particularly pedal markings and hanging slurs) in assessing emptiness, creating more consistent/expected hiding behavior in HideMode::AUTO.
Port of [MU3 Backend] Tweak staff hiding conditions for spanners #8527:
This commit tweaks the changes from commit 54ebee4 (which checks for spanners when assessing staff emptiness) and ignores spanners that are "system" spanners (such as voltas or system text). This prevents a false-positive unhiding in the case of such system spanners. Also, it prevents another false positive that occurred when a spanner started on the first tick of the next system.
Hide staff with subsequent empty measures after (de-)crescendo line (or hairpin) in measure before:
A regression from the above 2 commits, apparently needed as a hairpin (that ends at a measure (and system) boundary) has its end being recorded in the next measure (and system) and, should it really go into the next system, 'harmless' to get ignored there (i.e. still getting hidden), as harpins on otherwise empty measures are pretty meaningless.
VTEST failure expected and demonstrating the need: