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-38: Handle hanging ties #8556

Merged
merged 2 commits into from Jul 20, 2021

Conversation

iveshenry18
Copy link
Contributor

@iveshenry18 iveshenry18 commented Jul 6, 2021

Resolves: ENG-38: Allow hanging ties at end of score or before repeats

This commit keeps track of ties added to the score during
MusicXML import, making sure they are
terminated before the end of the part. If not, the tie is deleted and
replaced with a l.v. articulation.

Additionally, this include a fixup function for improving the placement of l.v. symbols on import (TODO: improve the automatic layout
of these articulations.)

  • 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

@wizofaus
Copy link
Contributor

wizofaus commented Jul 8, 2021

BTW, not directly related to this - but do you have any plans to improve how the musicxml import handles the duration element and the attack/release attributes? Seems the latter are being ignored currently (hence all information about how long each note should be played back for if not the full duration is lost), and the handling for when the "duration" element doesn't quite match the type & time-modification elements isn't complete (MusicXML seems to allow how a note should be notated to be specified independently of how much time it should take up, which I believe should be possible with MuseScore's native data structures but at least in the case of tuplets would cause some challenges).

@iveshenry18
Copy link
Contributor Author

iveshenry18 commented Jul 8, 2021

@wizofaus we don't currently have plans for this, but I'll keep an eye out for any cases of it causing an issue! If it seems to negatively affect scores then I'll add it to our list.

@wizofaus
Copy link
Contributor

wizofaus commented Jul 8, 2021

There's been a number of discussions in musescore.org about it, but the fact that the attack/release attributes are ignored entirely seems hard to justify, as it would seriously affect the playback of an imported score that did have those specified.

@iveshenry18
Copy link
Contributor Author

@wizofaus certainly it is a feature that should we should support, since it's in the spec.

That said, my current efforts are essentially prioritized according to a set of a couple hundred scores exported with the Dolet plugin for Sibelius (which is why many of my commits have to do with "inferring" incorrect exports from Dolet, even if those inferences are technically outside of the spec). It's not ideal, but it's a pragmatic approach in an ecosystem of imperfect implementations of a sufficiently complex spec. Among this set of (again, a couple hundred) scores, there is exactly one usage of the "release" attribute, and no uses of the "attack" attribute; furthermore, that one example of the "release" attribute doesn't really affect its score's playback in a noticeable way.

All this to say, I can't guarantee that I'll get to this issue, but I will if I get the chance! Of course, anyone else is always welcome to implement this and submit a PR.

@wizofaus
Copy link
Contributor

wizofaus commented Jul 8, 2021

Understood, it's probably not a high priority fix overall, just figure if it was going to get done anywhere it would as part of what you've been working on.
Does Sibelius/Dolet allow notating something as a tuplet but overriding the internal note duration to be something else in such a way it affects XML export?

@iveshenry18
Copy link
Contributor Author

Does Sibelius/Dolet allow notating something as a tuplet but overriding the internal note duration to be something else in such a way it affects XML export?

I'm not sure, and don't currently have a Sibelius license to test. The one example found in the set of scores I'm working with was on the last note of the piece, which happened to be an eighth note.

This commit keeps track of ties added to the score, making sure they are
terminated before the end of the part. If not, the tie is deleted and
replaced with a l.v. articulation. (TODO: improve the automatic layout
of these articulations.)
This is a temporary and somewhat hacky fix that iterates through the
score and adjusts the positioning of l.v. symbols after MusicXML import.
TODO: improve default placement of l.v. symbols to avoid this process.
@vpereverzev vpereverzev merged commit dc46819 into musescore:3.6.2_backend Jul 20, 2021
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 21, 2021
This commit keeps track of ties added to the score, making sure they are
terminated before the end of the part. If not, the tie is deleted and
replaced with a l.v. articulation. (TODO: improve the automatic layout
of these articulations.)

Duplicate of musescore#8556, part 1
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 21, 2021
This is a temporary and somewhat hacky fix that iterates through the
score and adjusts the positioning of l.v. symbols after MusicXML import.
TODO: improve default placement of l.v. symbols to avoid this process.

Duplicate of musescore#8556, part 2
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This commit keeps track of ties added to the score, making sure they are
terminated before the end of the part. If not, the tie is deleted and
replaced with a l.v. articulation. (TODO: improve the automatic layout
of these articulations.)

Duplicate of musescore#8556, part 1
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This is a temporary and somewhat hacky fix that iterates through the
score and adjusts the positioning of l.v. symbols after MusicXML import.
TODO: improve default placement of l.v. symbols to avoid this process.

Duplicate of musescore#8556, part 2
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This commit keeps track of ties added to the score, making sure they are
terminated before the end of the part. If not, the tie is deleted and
replaced with a l.v. articulation. (TODO: improve the automatic layout
of these articulations.)

Duplicate of musescore#8556, part 1
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This is a temporary and somewhat hacky fix that iterates through the
score and adjusts the positioning of l.v. symbols after MusicXML import.
TODO: improve default placement of l.v. symbols to avoid this process.

Duplicate of musescore#8556, part 2
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This commit keeps track of ties added to the score, making sure they are
terminated before the end of the part. If not, the tie is deleted and
replaced with a l.v. articulation. (TODO: improve the automatic layout
of these articulations.)

Duplicate of musescore#8556, part 1
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This is a temporary and somewhat hacky fix that iterates through the
score and adjusts the positioning of l.v. symbols after MusicXML import.
TODO: improve default placement of l.v. symbols to avoid this process.

Duplicate of musescore#8556, part 2
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This commit keeps track of ties added to the score, making sure they are
terminated before the end of the part. If not, the tie is deleted and
replaced with a l.v. articulation. (TODO: improve the automatic layout
of these articulations.)

Duplicate of musescore#8556, part 1
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This is a temporary and somewhat hacky fix that iterates through the
score and adjusts the positioning of l.v. symbols after MusicXML import.
TODO: improve default placement of l.v. symbols to avoid this process.

Duplicate of musescore#8556, part 2
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This commit keeps track of ties added to the score, making sure they are
terminated before the end of the part. If not, the tie is deleted and
replaced with a l.v. articulation. (TODO: improve the automatic layout
of these articulations.)

Duplicate of musescore#8556, part 1
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This is a temporary and somewhat hacky fix that iterates through the
score and adjusts the positioning of l.v. symbols after MusicXML import.
TODO: improve default placement of l.v. symbols to avoid this process.

Duplicate of musescore#8556, part 2
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This commit keeps track of ties added to the score, making sure they are
terminated before the end of the part. If not, the tie is deleted and
replaced with a l.v. articulation. (TODO: improve the automatic layout
of these articulations.)

Duplicate of musescore#8556, part 1
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This is a temporary and somewhat hacky fix that iterates through the
score and adjusts the positioning of l.v. symbols after MusicXML import.
TODO: improve default placement of l.v. symbols to avoid this process.

Duplicate of musescore#8556, part 2
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 30, 2021
See musescore#8556, issue possibly caused by another commit though
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 1, 2021
This commit keeps track of ties added to the score, making sure they are
terminated before the end of the part. If not, the tie is deleted and
replaced with a l.v. articulation. (TODO: improve the automatic layout
of these articulations.)

Duplicate of musescore#8556, part 1
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 1, 2021
This is a temporary and somewhat hacky fix that iterates through the
score and adjusts the positioning of l.v. symbols after MusicXML import.
TODO: improve default placement of l.v. symbols to avoid this process.

Duplicate of musescore#8556, part 2
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 1, 2021
See musescore#8556, issue possibly caused by another commit though
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 2, 2021
This commit keeps track of ties added to the score, making sure they are
terminated before the end of the part. If not, the tie is deleted and
replaced with a l.v. articulation. (TODO: improve the automatic layout
of these articulations.)

Duplicate of musescore#8556, part 1
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 2, 2021
This is a temporary and somewhat hacky fix that iterates through the
score and adjusts the positioning of l.v. symbols after MusicXML import.
TODO: improve default placement of l.v. symbols to avoid this process.

Duplicate of musescore#8556, part 2
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 2, 2021
See musescore#8556, issue possibly caused by another commit though
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 10, 2021
This commit keeps track of ties added to the score, making sure they are
terminated before the end of the part. If not, the tie is deleted and
replaced with a l.v. articulation. (TODO: improve the automatic layout
of these articulations.)

Duplicate of musescore#8556, part 1
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 10, 2021
This is a temporary and somewhat hacky fix that iterates through the
score and adjusts the positioning of l.v. symbols after MusicXML import.
TODO: improve default placement of l.v. symbols to avoid this process.

Duplicate of musescore#8556, part 2
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 10, 2021
See musescore#8556, issue possibly caused by another commit though
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 23, 2021
This commit keeps track of ties added to the score, making sure they are
terminated before the end of the part. If not, the tie is deleted and
replaced with a l.v. articulation. (TODO: improve the automatic layout
of these articulations.)

Duplicate of musescore#8556, part 1
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 23, 2021
This is a temporary and somewhat hacky fix that iterates through the
score and adjusts the positioning of l.v. symbols after MusicXML import.
TODO: improve default placement of l.v. symbols to avoid this process.

Duplicate of musescore#8556, part 2
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 23, 2021
See musescore#8556, issue possibly caused by another commit though
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 26, 2021
See musescore#8556, issue possibly caused by another commit though
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 29, 2021
See musescore#8556, issue possibly caused by another commit though
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request May 12, 2022
This commit keeps track of ties added to the score, making sure they are
terminated before the end of the part. If not, the tie is deleted and
replaced with a l.v. articulation. (TODO: improve the automatic layout
of these articulations.)

Duplicate of musescore#8556, part 1
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request May 12, 2022
This is a temporary and somewhat hacky fix that iterates through the
score and adjusts the positioning of l.v. symbols after MusicXML import.
TODO: improve default placement of l.v. symbols to avoid this process.

Duplicate of musescore#8556, part 2
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request May 12, 2022
See musescore#8556, issue possibly caused by another commit though
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Mar 5, 2023
This commit keeps track of ties added to the score, making sure they are
terminated before the end of the part. If not, the tie is deleted and
replaced with a l.v. articulation. (TODO: improve the automatic layout
of these articulations.)

Duplicate of musescore#8556, part 1
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Mar 5, 2023
This is a temporary and somewhat hacky fix that iterates through the
score and adjusts the positioning of l.v. symbols after MusicXML import.
TODO: improve default placement of l.v. symbols to avoid this process.

Duplicate of musescore#8556, part 2
Jojo-Schmitz added a commit to Jojo-Schmitz/MuseScore that referenced this pull request Mar 5, 2023
See musescore#8556, issue possibly caused by another commit though
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Apr 17, 2024
Backport of musescore#22455, which in turn is a port of musescore#8556 (which got ported to 3.7 earlier), but doesn't replace hanging ties with l.v. articulations, opting instead to simply delete them pending a proper feature.
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Apr 17, 2024
Backport of musescore#22455, which in turn is a port of musescore#8556 (which got ported to 3.7 earlier), but doesn't replace hanging ties with l.v. articulations, opting instead to simply delete them pending a proper feature.
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Apr 18, 2024
Backport of musescore#22455, which in turn is a port of musescore#8556 (which got ported to 3.7 earlier), but doesn't replace hanging ties with l.v. articulations, opting instead to simply delete them pending a proper feature.
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Apr 18, 2024
Backport of musescore#22455, which in turn is a port of musescore#8556 (which got ported to 3.7 earlier), but doesn't replace hanging ties with l.v. articulations, opting instead to simply delete them pending a proper feature.
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

4 participants