[Musicxml Export] - Hairpin export stops halfway
Reported version
3.5
Type
Performance
Frequency
Once
Severity
S1 - Blocker
Reproducibility
Always
Status
closed
Regression
Yes
Workaround
No
Project
As I'm transcribing this score in braille:
https://musescore.com/user/19250441/scores/6407987
I found hairpins are not completely exported. This doesn't happen in other scores even they are very complicated. The place it stops to export is at bar 147 of piano part, then the remaining piano and all string parts don't contain any hairpins. I only found this when I was at movement 2, and it's no way to continue the braille transcription, since even the piano part alone (by removing all other instruments) will stop at bar 24 of movement 2. I have to stop now, for the back check of hairpins is a nightmare, and I'd like to wait for the solution, and only check the second half of piano and whole string group of the first movement.
Fix version
3.6.0
Comments
Relates to #295348: [Musicxml Export] - Missing spanners caused by spanner stop not in the first track and #270643: [EPIC] MusicXML import/export issues
This happens when a hairpin start is exported but later the hairpin stop cannot be found. As MusicXML supports only a limited number of active (started but not yet stopped) hairpins at the same time, once this happens, no more hairpins can be exported. A similar issue was fixed some time ago, I suspect this file exposes a new bug in the "find hairpin stop" algorithm.
It took me about two hours to indentify a few instances of hairpins where the stop is not found, but now I can start to track down the bug(s).
In reply to This happens when a hairpin… by Leon Vinken
Do you mean the Musescore file has some hairpin endings missing? It's strange that happens in a normally engraved score. In Sibelius there's also case of lost ending caused by complex voicing, and is a limitation of Manuscript language not hairpins themselves. So I increased the limit to 25 in the Dolet plugin so that up to 24 layers can be exported :-)
The MuseScore file is fine. Cause has been found and is in the MusicXML importer. Measure-boundary-crossing hairpins are not handled correctly and overflow internal administration. As a result subsequent hairpins are not exported. I am finalising the solution.
In reply to The MuseScore file is fine… by Leon Vinken
Good, thanks!
It was rather difficult to find exactly what caused this behaviour. Minimum example file attached. Pull request created:
https://github.com/musescore/MuseScore/pull/6869
Fixed in branch 3.x, commit b0edb0a9e7
_fix #312714: [Musicxml Export] - Hairpin export stops halfway
The spanner stopped data structure was incorrectly at measure level instead of at part level.
This breaks spanners ending exactly at a measure end when the next measure starts with
a zero-sized rest (happens when the second track does not have a note at the neasure start)._
Fixed in branch 3.x, commit 18cf0dfa65
_Merge pull request #6869 from lvinken/312714-musicxml-hairpin-export-3.x
fix #312714: [Musicxml Export] - Hairpin export stops halfway_
Automatically closed -- issue fixed for 2 weeks with no activity.
Solution has not been synced to master yet (working on it), issue still present in master.
Master pull request: https://github.com/musescore/MuseScore/pull/8771
Fixed in branch master, commit f448919b66
_Fix #312714: [Musicxml Export] - Hairpin export stops halfway
The spanner stopped data structure was incorrectly at measure level instead of at part level.
This breaks spanners ending exactly at a measure end when the next measure starts with
a zero-sized rest (happens when the second track does not have a note at the neasure start)._
Fixed in branch master, commit 4d266c9825
_Merge pull request #8771 from lvinken/312714-musicxml-hairpin-export-master
Fix #312714: [Musicxml Export] - Hairpin export stops halfway_
Automatically closed -- issue fixed for 2 weeks with no activity.