Skip to content
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

[MU3 Backend] ENG-78 fix spanner offsets #8766

Merged

Conversation

iveshenry18
Copy link
Contributor

@iveshenry18 iveshenry18 commented Jul 30, 2021

Resolves: ENG-78: Crescendo offsets mishandled

Previously, the element was not correctly applied to any
spanners in elements. This commit fixes that and adjusts the
applicable tests accordingly.

This PR also includes the commits from #8742 and #8688.

  • I signed CLA
  • I made sure the code in the PR follows the coding rules
  • I made sure the code compiles on my machine
  • I made sure there are no unnecessary changes in the code
  • I made sure the title of the PR reflects the core meaning of the issue you are solving
  • I made sure the commit message(s) contain a description and answer the question "Why do those changes fix that particular issue?" or "Why are those changes really necessary as improvements?"
  • I made sure the commit message title starts with "fix #424242:" if there is a related issue
  • I created the test (mtest, vtest, script test) to verify the changes I made

Sometimes pedals are imported that begin or end on segments that have
notes on tracks (or staves) other than the track the spanner is on.
Previously, this would cause incorrect tick adjustments on "change"
type pedals, and it would result in some pedals not being able to
compute a start or end element. This commit fixes these issues by
considering all tracks of a part when assessing pedal change tick
adjustments and when computing start elements.
MusicXML exporters tend to have a fixed maximum <divisions> value,
meaning more complex tuplets (5's, 7's) have incorrect duration values.
These were already handled for tuplets, but sometimes not handled for
<backup> elements within or after a tuplet.

This commit adds a more thorough system for rounding durations off to
more sensible values. In doing so, it unifies the conversion process
from <duration> to Fraction (which previously existed almost identically
in three separate places) to pass1.calcTicks().
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.
@iveshenry18 iveshenry18 mentioned this pull request Aug 3, 2021
8 tasks
@vpereverzev vpereverzev merged commit 6a740d3 into musescore:3.6.2_backend Aug 5, 2021
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 5, 2021
Sometimes pedals are imported that begin or end on segments that have
notes on tracks (or staves) other than the track the spanner is on.
Previously, this would cause incorrect tick adjustments on "change"
type pedals, and it would result in some pedals not being able to
compute a start or end element. This commit fixes these issues by
considering all tracks of a part when assessing pedal change tick
adjustments and when computing start elements.

Duplicate of musescore#8766, part 1
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 5, 2021
MusicXML exporters tend to have a fixed maximum <divisions> value,
meaning more complex tuplets (5's, 7's) have incorrect duration values.
These were already handled for tuplets, but sometimes not handled for
<backup> elements within or after a tuplet.

This commit adds a more thorough system for rounding durations off to
more sensible values. In doing so, it unifies the conversion process
from <duration> to Fraction (which previously existed almost identically
in three separate places) to pass1.calcTicks().

Duplicate of musescore#8766, part 2, needed to resolve merge conflicts
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 5, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 5, 2021
MusicXML exporters tend to have a fixed maximum <divisions> value,
meaning more complex tuplets (5's, 7's) have incorrect duration values.
These were already handled for tuplets, but sometimes not handled for
<backup> elements within or after a tuplet.

This commit adds a more thorough system for rounding durations off to
more sensible values. In doing so, it unifies the conversion process
from <duration> to Fraction (which previously existed almost identically
in three separate places) to pass1.calcTicks().

Duplicate of musescore#8766, part 2, plus resolving a merge conflict with musescore#8282
(resp. 8429, for master) and fixing 2 compiler warnings.
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 5, 2021
MusicXML exporters tend to have a fixed maximum <divisions> value,
meaning more complex tuplets (5's, 7's) have incorrect duration values.
These were already handled for tuplets, but sometimes not handled for
<backup> elements within or after a tuplet.

This commit adds a more thorough system for rounding durations off to
more sensible values. In doing so, it unifies the conversion process
from <duration> to Fraction (which previously existed almost identically
in three separate places) to pass1.calcTicks().

Duplicate of musescore#8766, part 2, plus resolving a merge conflict with musescore#8282
(resp. 8429, for master) and fixing 2 compiler warnings.
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 5, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 5, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 5, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 7, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 13, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 13, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 19, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 19, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 30, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 1, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 2, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 9, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 10, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 23, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 26, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 29, 2021
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request May 12, 2022
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Mar 5, 2023
Previously, the <offset> element was not correctly applied to any
spanners in <direction> elements. This commit fixes that and adjusts the
applicable tests accordingly.

Duplicate of musescore#8766, part 3
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.

3 participants