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-21: Connect cross-voice arpeggios #8506

Merged

Conversation

iveshenry18
Copy link
Contributor

Resolves: ENG-21: Arpeggio lines cannot span multiple voices

Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

  • 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

Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.
@vpereverzev vpereverzev merged commit 1a5e676 into musescore:3.6.2_backend Jul 7, 2021
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 13, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 28, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 28, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 13, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 13, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 19, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 19, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 30, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 1, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 2, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 10, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 23, 2021
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Nov 17, 2021
(or 0.71) which seems to have caused this difference.
This mtest came into the code base via the change for ENG-21, PR musescore#8506
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Nov 23, 2021
(or 0.71) which seems to have caused this difference.
This mtest came into the code base via the change for ENG-21, PR musescore#8506
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Nov 24, 2021
(or 0.71) which seems to have caused this difference.
This mtest came into the code base via the change for ENG-21, PR musescore#8506
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Nov 26, 2021
(or 0.71, hard to tell) which seems to have caused this difference.
This mtest came into the code base via the change for ENG-21, PR musescore#8506
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Nov 28, 2021
(or 0.71, hard to tell) which seems to have caused this difference.
This mtest came into the code base via the change for ENG-21, PR musescore#8506
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Nov 28, 2021
(or 0.71, hard to tell) which seems to have caused this difference.
This mtest came into the code base via the change for ENG-21, PR musescore#8506
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Nov 30, 2021
(or 0.71, hard to tell) which seems to have caused this difference.
This mtest came into the code base via the change for ENG-21, PR musescore#8506
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Dec 7, 2021
(or 0.71, hard to tell) which seems to have caused this difference.
This mtest came into the code base via the change for ENG-21, PR musescore#8506
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request May 12, 2022
(or 0.71, hard to tell) which seems to have caused this difference.
This mtest came into the code base via the change for ENG-21, PR musescore#8506
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Mar 5, 2023
Due to the one-to-one relationship between Arpeggios and Chords, there
is no ideal way to import arpeggios that include notes across voices;
currently, such a case results in the creation of one arpeggio for each
chord with notes containing the <arpeggiated> tag. This commit adds a
function to Score that iterates through these and connects them; this
function is called after the score has been imported.

Additionally, this commits corrects the exporting for this case, adding
the <arpeggiated> tag to not only notes in a chord with an arpeggio, but
notes that intersect an arpeggio in any voice in the given segment and
staff. This effectively creates a correct round-trip for cross-voice
arpeggios, although with the (theoretical) false positive of connecting
multiple arpeggios in the same segment in the same staff even if they
are intended to remain separate.

Duplicate of musescore#8506, plus fixing a merge conflict due to musescore#8199
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Mar 5, 2023
(or 0.71, hard to tell) which seems to have caused this difference.
This mtest came into the code base via the change for ENG-21, PR musescore#8506
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.

None yet

3 participants