-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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] Fix #321730: Crash on corrupt MXL import #8199
Merged
Merged
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
This was referenced May 29, 2021
RomanPudashkin
approved these changes
May 31, 2021
@iveshenry18 might be something for your 3.6.2_backend fixes |
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
Mar 23, 2022
Backport of musescore#10860, plus a fix on importing an empty XML file, which apparently doesn't apply to master. For master it got fix in musescore#8200, in 3.x it got fixed in musescore#8199, but broke again with the port of musescore#8530.
Jojo-Schmitz
added a commit
to Jojo-Schmitz/MuseScore
that referenced
this pull request
Mar 23, 2022
Backport of musescore#10860, plus a fix on importing an empty XML file, which apparently doesn't apply to master. For master it got fix in musescore#8200, in 3.x it got fixed in musescore#8199, but broke again with the port of musescore#8530. Converting some `foreach(..., ...)` into `for (... : ...)` along the way.
Jojo-Schmitz
added a commit
to Jojo-Schmitz/MuseScore
that referenced
this pull request
Mar 24, 2022
Backport of musescore#10860, plus a fix on importing an empty XML file, which apparently doesn't apply to master. For master it got fix in musescore#8200, in 3.x it got fixed in musescore#8199, but broke again with the port of musescore#8530. Converting some `foreach(..., ...)` into `for (... : ...)` along the way.
Jojo-Schmitz
added a commit
to Jojo-Schmitz/MuseScore
that referenced
this pull request
May 12, 2022
Backport of musescore#10860, plus a fix on importing an empty XML file, which apparently doesn't apply to master. For master it got fix in musescore#8200, in 3.x it got fixed in musescore#8199, but broke again with the port of musescore#8530. Converting some `foreach(..., ...)` into `for (... : ...)` along the way.
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
Backport of musescore#10860, plus a fix on importing an empty XML file, which apparently doesn't apply to master. For master it got fix in musescore#8200, in 3.x it got fixed in musescore#8199, but broke again with the port of musescore#8530. Converting some `foreach(..., ...)` into `for (... : ...)` along the way.
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.
Resolves: https://musescore.org/en/node/321730
PR for master in #8200