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] MusicXML compiler warnings #8554

Merged

Conversation

iveshenry18
Copy link
Contributor

@iveshenry18 iveshenry18 commented Jul 6, 2021

Resolves: Compiler warnings mentioned in #8492, #8325, and #8284

  • 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

Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 6, 2021
Previously, only the first beam was taken into account when importing
Beam::Mode. This commit adds a mechanism to collect the beam type
for all beams and make a more correct choice about Beam::Mode (including
BEGIN32 and BEGIN64). Additionally, it adds handling of these modes to
the export code. Now the round trip from .mscx -> .xml -> .mscx is
correct and complete *when beam modes are specified explicitly in the
.mscx*; however, more thorough handling of Beam::Mode::AUTO (where it
results in the equivalent of BEGIN32 or BEGIN64) on export needs to be
done.

Duplicate of musescore#8492, plus fixing 4 compiler warnings, see musescore#8554
@iveshenry18 iveshenry18 changed the title Add missing parentheses in writeBeam conditional [MU3 Backend] Add missing parentheses in writeBeam conditional Jul 7, 2021
@iveshenry18 iveshenry18 marked this pull request as draft July 7, 2021 15:10
@iveshenry18 iveshenry18 changed the title [MU3 Backend] Add missing parentheses in writeBeam conditional [MU3 Backend] MusicXML compiler warnings Jul 7, 2021
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 13, 2021
Previously, only the first beam was taken into account when importing
Beam::Mode. This commit adds a mechanism to collect the beam type
for all beams and make a more correct choice about Beam::Mode (including
BEGIN32 and BEGIN64). Additionally, it adds handling of these modes to
the export code. Now the round trip from .mscx -> .xml -> .mscx is
correct and complete *when beam modes are specified explicitly in the
.mscx*; however, more thorough handling of Beam::Mode::AUTO (where it
results in the equivalent of BEGIN32 or BEGIN64) on export needs to be
done.

Duplicate of musescore#8492, plus fixing 4 compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 13, 2021
This commit adds some context-aware placement defaults for text and
dynamics (in the case that neither "placement" nor "default-y" nor
"relative-y" are specified). Namely, both expression text and dynamics
are placed below the staff unless it is a vocal staff.

To this end, there are some simple checks added to discern whether a
part is a vocal part, which is currently a simple check against the
name of the staff and a check for the presence of lyrics. Additionally,
the "expression text" is currently defined by the presence of italics in
the _wordsText, and an absence of _tempoText.

Duplicate of musescore#8325, plus fixing a compiler warning, see musescore#8554
@iveshenry18 iveshenry18 force-pushed the ENG-various-compiler-warnings branch from fed8e1f to e02b9d5 Compare July 17, 2021 01:27
@@ -4926,7 +4926,7 @@ Note* MusicXMLParserPass2::note(const QString& partId,
else if (_e.name() == "stem")
stem(stemDir, noStem);
else if (_e.name() == "type") {
small = _e.attributes().value("size") == "cue" | _e.attributes().value("size") == "grace-cue";
small = (_e.attributes().value("size") == "cue") || (_e.attributes().value("size") == "grace-cue");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I was suggesting the parenthezise the entire || expression, not their elements

Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 19, 2021
Previously, our importer and exporter didn't account for notes that
were both grace notes and cue notes (therefore extra-small in size).
This commit amends that. Additionally, since Dolet also seems to fail
in this area, this commit adds a function to coerce the `small` and
`play` attributes of a grace chord to match that of its main chord.
Finally, it adds support for the "grace-cue" size to the exporter and
importer. In the importer, this is treated the same as the "cue" size, as
exporters tend to misinterpret the distinction between these.

Duplicate of musescore#8581, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Previously, only the first beam was taken into account when importing
Beam::Mode. This commit adds a mechanism to collect the beam type
for all beams and make a more correct choice about Beam::Mode (including
BEGIN32 and BEGIN64). Additionally, it adds handling of these modes to
the export code. Now the round trip from .mscx -> .xml -> .mscx is
correct and complete *when beam modes are specified explicitly in the
.mscx*; however, more thorough handling of Beam::Mode::AUTO (where it
results in the equivalent of BEGIN32 or BEGIN64) on export needs to be
done.

Duplicate of musescore#8492, plus fixing 4 compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This commit adds some context-aware placement defaults for text and
dynamics (in the case that neither "placement" nor "default-y" nor
"relative-y" are specified). Namely, both expression text and dynamics
are placed below the staff unless it is a vocal staff.

To this end, there are some simple checks added to discern whether a
part is a vocal part, which is currently a simple check against the
name of the staff and a check for the presence of lyrics. Additionally,
the "expression text" is currently defined by the presence of italics in
the _wordsText, and an absence of _tempoText.

Duplicate of musescore#8325, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Previously, our importer and exporter didn't account for notes that
were both grace notes and cue notes (therefore extra-small in size).
This commit amends that. Additionally, since Dolet also seems to fail
in this area, this commit adds a function to coerce the `small` and
`play` attributes of a grace chord to match that of its main chord.
Finally, it adds support for the "grace-cue" size to the exporter and
importer. In the importer, this is treated the same as the "cue" size, as
exporters tend to misinterpret the distinction between these.

Duplicate of musescore#8581, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Previously, only the first beam was taken into account when importing
Beam::Mode. This commit adds a mechanism to collect the beam type
for all beams and make a more correct choice about Beam::Mode (including
BEGIN32 and BEGIN64). Additionally, it adds handling of these modes to
the export code. Now the round trip from .mscx -> .xml -> .mscx is
correct and complete *when beam modes are specified explicitly in the
.mscx*; however, more thorough handling of Beam::Mode::AUTO (where it
results in the equivalent of BEGIN32 or BEGIN64) on export needs to be
done.

Duplicate of musescore#8492, plus fixing 4 compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This commit adds some context-aware placement defaults for text and
dynamics (in the case that neither "placement" nor "default-y" nor
"relative-y" are specified). Namely, both expression text and dynamics
are placed below the staff unless it is a vocal staff.

To this end, there are some simple checks added to discern whether a
part is a vocal part, which is currently a simple check against the
name of the staff and a check for the presence of lyrics. Additionally,
the "expression text" is currently defined by the presence of italics in
the _wordsText, and an absence of _tempoText.

Duplicate of musescore#8325, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Previously, our importer and exporter didn't account for notes that
were both grace notes and cue notes (therefore extra-small in size).
This commit amends that. Additionally, since Dolet also seems to fail
in this area, this commit adds a function to coerce the `small` and
`play` attributes of a grace chord to match that of its main chord.
Finally, it adds support for the "grace-cue" size to the exporter and
importer. In the importer, this is treated the same as the "cue" size, as
exporters tend to misinterpret the distinction between these.

Duplicate of musescore#8581, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Previously, only the first beam was taken into account when importing
Beam::Mode. This commit adds a mechanism to collect the beam type
for all beams and make a more correct choice about Beam::Mode (including
BEGIN32 and BEGIN64). Additionally, it adds handling of these modes to
the export code. Now the round trip from .mscx -> .xml -> .mscx is
correct and complete *when beam modes are specified explicitly in the
.mscx*; however, more thorough handling of Beam::Mode::AUTO (where it
results in the equivalent of BEGIN32 or BEGIN64) on export needs to be
done.

Duplicate of musescore#8492, plus fixing 4 compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This commit adds some context-aware placement defaults for text and
dynamics (in the case that neither "placement" nor "default-y" nor
"relative-y" are specified). Namely, both expression text and dynamics
are placed below the staff unless it is a vocal staff.

To this end, there are some simple checks added to discern whether a
part is a vocal part, which is currently a simple check against the
name of the staff and a check for the presence of lyrics. Additionally,
the "expression text" is currently defined by the presence of italics in
the _wordsText, and an absence of _tempoText.

Duplicate of musescore#8325, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Previously, our importer and exporter didn't account for notes that
were both grace notes and cue notes (therefore extra-small in size).
This commit amends that. Additionally, since Dolet also seems to fail
in this area, this commit adds a function to coerce the `small` and
`play` attributes of a grace chord to match that of its main chord.
Finally, it adds support for the "grace-cue" size to the exporter and
importer. In the importer, this is treated the same as the "cue" size, as
exporters tend to misinterpret the distinction between these.

Duplicate of musescore#8581, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Previously, only the first beam was taken into account when importing
Beam::Mode. This commit adds a mechanism to collect the beam type
for all beams and make a more correct choice about Beam::Mode (including
BEGIN32 and BEGIN64). Additionally, it adds handling of these modes to
the export code. Now the round trip from .mscx -> .xml -> .mscx is
correct and complete *when beam modes are specified explicitly in the
.mscx*; however, more thorough handling of Beam::Mode::AUTO (where it
results in the equivalent of BEGIN32 or BEGIN64) on export needs to be
done.

Duplicate of musescore#8492, plus fixing 4 compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This commit adds some context-aware placement defaults for text and
dynamics (in the case that neither "placement" nor "default-y" nor
"relative-y" are specified). Namely, both expression text and dynamics
are placed below the staff unless it is a vocal staff.

To this end, there are some simple checks added to discern whether a
part is a vocal part, which is currently a simple check against the
name of the staff and a check for the presence of lyrics. Additionally,
the "expression text" is currently defined by the presence of italics in
the _wordsText, and an absence of _tempoText.

Duplicate of musescore#8325, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Previously, our importer and exporter didn't account for notes that
were both grace notes and cue notes (therefore extra-small in size).
This commit amends that. Additionally, since Dolet also seems to fail
in this area, this commit adds a function to coerce the `small` and
`play` attributes of a grace chord to match that of its main chord.
Finally, it adds support for the "grace-cue" size to the exporter and
importer. In the importer, this is treated the same as the "cue" size, as
exporters tend to misinterpret the distinction between these.

Duplicate of musescore#8581, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Previously, only the first beam was taken into account when importing
Beam::Mode. This commit adds a mechanism to collect the beam type
for all beams and make a more correct choice about Beam::Mode (including
BEGIN32 and BEGIN64). Additionally, it adds handling of these modes to
the export code. Now the round trip from .mscx -> .xml -> .mscx is
correct and complete *when beam modes are specified explicitly in the
.mscx*; however, more thorough handling of Beam::Mode::AUTO (where it
results in the equivalent of BEGIN32 or BEGIN64) on export needs to be
done.

Duplicate of musescore#8492, plus fixing 4 compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
This commit adds some context-aware placement defaults for text and
dynamics (in the case that neither "placement" nor "default-y" nor
"relative-y" are specified). Namely, both expression text and dynamics
are placed below the staff unless it is a vocal staff.

To this end, there are some simple checks added to discern whether a
part is a vocal part, which is currently a simple check against the
name of the staff and a check for the presence of lyrics. Additionally,
the "expression text" is currently defined by the presence of italics in
the _wordsText, and an absence of _tempoText.

Duplicate of musescore#8325, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Previously, our importer and exporter didn't account for notes that
were both grace notes and cue notes (therefore extra-small in size).
This commit amends that. Additionally, since Dolet also seems to fail
in this area, this commit adds a function to coerce the `small` and
`play` attributes of a grace chord to match that of its main chord.
Finally, it adds support for the "grace-cue" size to the exporter and
importer. In the importer, this is treated the same as the "cue" size, as
exporters tend to misinterpret the distinction between these.

Duplicate of musescore#8581, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Jul 27, 2021
Previously, only the first beam was taken into account when importing
Beam::Mode. This commit adds a mechanism to collect the beam type
for all beams and make a more correct choice about Beam::Mode (including
BEGIN32 and BEGIN64). Additionally, it adds handling of these modes to
the export code. Now the round trip from .mscx -> .xml -> .mscx is
correct and complete *when beam modes are specified explicitly in the
.mscx*; however, more thorough handling of Beam::Mode::AUTO (where it
results in the equivalent of BEGIN32 or BEGIN64) on export needs to be
done.

Duplicate of musescore#8492, plus fixing 4 compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 30, 2021
Previously, only the first beam was taken into account when importing
Beam::Mode. This commit adds a mechanism to collect the beam type
for all beams and make a more correct choice about Beam::Mode (including
BEGIN32 and BEGIN64). Additionally, it adds handling of these modes to
the export code. Now the round trip from .mscx -> .xml -> .mscx is
correct and complete *when beam modes are specified explicitly in the
.mscx*; however, more thorough handling of Beam::Mode::AUTO (where it
results in the equivalent of BEGIN32 or BEGIN64) on export needs to be
done.

Duplicate of musescore#8492, plus fixing 4 compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 30, 2021
This commit adds some context-aware placement defaults for text and
dynamics (in the case that neither "placement" nor "default-y" nor
"relative-y" are specified). Namely, both expression text and dynamics
are placed below the staff unless it is a vocal staff.

To this end, there are some simple checks added to discern whether a
part is a vocal part, which is currently a simple check against the
name of the staff and a check for the presence of lyrics. Additionally,
the "expression text" is currently defined by the presence of italics in
the _wordsText, and an absence of _tempoText.

Duplicate of musescore#8325, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Aug 30, 2021
Previously, our importer and exporter didn't account for notes that
were both grace notes and cue notes (therefore extra-small in size).
This commit amends that. Additionally, since Dolet also seems to fail
in this area, this commit adds a function to coerce the `small` and
`play` attributes of a grace chord to match that of its main chord.
Finally, it adds support for the "grace-cue" size to the exporter and
importer. In the importer, this is treated the same as the "cue" size, as
exporters tend to misinterpret the distinction between these.

Duplicate of musescore#8581, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 1, 2021
Add logic to add a space between the words and the metronome marking,
if there isn't already a space present at the end of the words.

Duplicate of musescore#8284, plus a fix to make it compatible with Qt 5.9 again, see also musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 1, 2021
A common error in exporters is misinterpreting fingerings as word-type
directions. This commit adds the MusicXMLInferredFingering and the
associated code necessary to detect these directions, find the correct
notes to add them to, then add them if such notes are found.

The current iteration is able to distribute the fingerings across voices
if necessary, as well as round the tick value of a direction to the
nearest greatest common denominator of the measure.

Duplicate of musescore#8298, part 1, plus 4 fixed compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 1, 2021
Previously, only the first beam was taken into account when importing
Beam::Mode. This commit adds a mechanism to collect the beam type
for all beams and make a more correct choice about Beam::Mode (including
BEGIN32 and BEGIN64). Additionally, it adds handling of these modes to
the export code. Now the round trip from .mscx -> .xml -> .mscx is
correct and complete *when beam modes are specified explicitly in the
.mscx*; however, more thorough handling of Beam::Mode::AUTO (where it
results in the equivalent of BEGIN32 or BEGIN64) on export needs to be
done.

Duplicate of musescore#8492, plus fixing 4 compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 1, 2021
This commit adds some context-aware placement defaults for text and
dynamics (in the case that neither "placement" nor "default-y" nor
"relative-y" are specified). Namely, both expression text and dynamics
are placed below the staff unless it is a vocal staff.

To this end, there are some simple checks added to discern whether a
part is a vocal part, which is currently a simple check against the
name of the staff and a check for the presence of lyrics. Additionally,
the "expression text" is currently defined by the presence of italics in
the _wordsText, and an absence of _tempoText.

Duplicate of musescore#8325, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 1, 2021
Previously, our importer and exporter didn't account for notes that
were both grace notes and cue notes (therefore extra-small in size).
This commit amends that. Additionally, since Dolet also seems to fail
in this area, this commit adds a function to coerce the `small` and
`play` attributes of a grace chord to match that of its main chord.
Finally, it adds support for the "grace-cue" size to the exporter and
importer. In the importer, this is treated the same as the "cue" size, as
exporters tend to misinterpret the distinction between these.

Duplicate of musescore#8581, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 2, 2021
Add logic to add a space between the words and the metronome marking,
if there isn't already a space present at the end of the words.

Duplicate of musescore#8284, plus a fix to make it compatible with Qt 5.9 again, see also musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 2, 2021
A common error in exporters is misinterpreting fingerings as word-type
directions. This commit adds the MusicXMLInferredFingering and the
associated code necessary to detect these directions, find the correct
notes to add them to, then add them if such notes are found.

The current iteration is able to distribute the fingerings across voices
if necessary, as well as round the tick value of a direction to the
nearest greatest common denominator of the measure.

Duplicate of musescore#8298, part 1, plus 4 fixed compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 2, 2021
Previously, only the first beam was taken into account when importing
Beam::Mode. This commit adds a mechanism to collect the beam type
for all beams and make a more correct choice about Beam::Mode (including
BEGIN32 and BEGIN64). Additionally, it adds handling of these modes to
the export code. Now the round trip from .mscx -> .xml -> .mscx is
correct and complete *when beam modes are specified explicitly in the
.mscx*; however, more thorough handling of Beam::Mode::AUTO (where it
results in the equivalent of BEGIN32 or BEGIN64) on export needs to be
done.

Duplicate of musescore#8492, plus fixing 4 compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 2, 2021
This commit adds some context-aware placement defaults for text and
dynamics (in the case that neither "placement" nor "default-y" nor
"relative-y" are specified). Namely, both expression text and dynamics
are placed below the staff unless it is a vocal staff.

To this end, there are some simple checks added to discern whether a
part is a vocal part, which is currently a simple check against the
name of the staff and a check for the presence of lyrics. Additionally,
the "expression text" is currently defined by the presence of italics in
the _wordsText, and an absence of _tempoText.

Duplicate of musescore#8325, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 2, 2021
Previously, our importer and exporter didn't account for notes that
were both grace notes and cue notes (therefore extra-small in size).
This commit amends that. Additionally, since Dolet also seems to fail
in this area, this commit adds a function to coerce the `small` and
`play` attributes of a grace chord to match that of its main chord.
Finally, it adds support for the "grace-cue" size to the exporter and
importer. In the importer, this is treated the same as the "cue" size, as
exporters tend to misinterpret the distinction between these.

Duplicate of musescore#8581, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 10, 2021
Add logic to add a space between the words and the metronome marking,
if there isn't already a space present at the end of the words.

Duplicate of musescore#8284, plus a fix to make it compatible with Qt 5.9 again, see also musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 10, 2021
A common error in exporters is misinterpreting fingerings as word-type
directions. This commit adds the MusicXMLInferredFingering and the
associated code necessary to detect these directions, find the correct
notes to add them to, then add them if such notes are found.

The current iteration is able to distribute the fingerings across voices
if necessary, as well as round the tick value of a direction to the
nearest greatest common denominator of the measure.

Duplicate of musescore#8298, part 1, plus 4 fixed compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 10, 2021
Previously, only the first beam was taken into account when importing
Beam::Mode. This commit adds a mechanism to collect the beam type
for all beams and make a more correct choice about Beam::Mode (including
BEGIN32 and BEGIN64). Additionally, it adds handling of these modes to
the export code. Now the round trip from .mscx -> .xml -> .mscx is
correct and complete *when beam modes are specified explicitly in the
.mscx*; however, more thorough handling of Beam::Mode::AUTO (where it
results in the equivalent of BEGIN32 or BEGIN64) on export needs to be
done.

Duplicate of musescore#8492, plus fixing 4 compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 10, 2021
This commit adds some context-aware placement defaults for text and
dynamics (in the case that neither "placement" nor "default-y" nor
"relative-y" are specified). Namely, both expression text and dynamics
are placed below the staff unless it is a vocal staff.

To this end, there are some simple checks added to discern whether a
part is a vocal part, which is currently a simple check against the
name of the staff and a check for the presence of lyrics. Additionally,
the "expression text" is currently defined by the presence of italics in
the _wordsText, and an absence of _tempoText.

Duplicate of musescore#8325, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 10, 2021
Previously, our importer and exporter didn't account for notes that
were both grace notes and cue notes (therefore extra-small in size).
This commit amends that. Additionally, since Dolet also seems to fail
in this area, this commit adds a function to coerce the `small` and
`play` attributes of a grace chord to match that of its main chord.
Finally, it adds support for the "grace-cue" size to the exporter and
importer. In the importer, this is treated the same as the "cue" size, as
exporters tend to misinterpret the distinction between these.

Duplicate of musescore#8581, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 23, 2021
Add logic to add a space between the words and the metronome marking,
if there isn't already a space present at the end of the words.

Duplicate of musescore#8284, plus a fix to make it compatible with Qt 5.9 again, see also musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 23, 2021
A common error in exporters is misinterpreting fingerings as word-type
directions. This commit adds the MusicXMLInferredFingering and the
associated code necessary to detect these directions, find the correct
notes to add them to, then add them if such notes are found.

The current iteration is able to distribute the fingerings across voices
if necessary, as well as round the tick value of a direction to the
nearest greatest common denominator of the measure.

Duplicate of musescore#8298, part 1, plus 4 fixed compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 23, 2021
Previously, only the first beam was taken into account when importing
Beam::Mode. This commit adds a mechanism to collect the beam type
for all beams and make a more correct choice about Beam::Mode (including
BEGIN32 and BEGIN64). Additionally, it adds handling of these modes to
the export code. Now the round trip from .mscx -> .xml -> .mscx is
correct and complete *when beam modes are specified explicitly in the
.mscx*; however, more thorough handling of Beam::Mode::AUTO (where it
results in the equivalent of BEGIN32 or BEGIN64) on export needs to be
done.

Duplicate of musescore#8492, plus fixing 4 compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 23, 2021
This commit adds some context-aware placement defaults for text and
dynamics (in the case that neither "placement" nor "default-y" nor
"relative-y" are specified). Namely, both expression text and dynamics
are placed below the staff unless it is a vocal staff.

To this end, there are some simple checks added to discern whether a
part is a vocal part, which is currently a simple check against the
name of the staff and a check for the presence of lyrics. Additionally,
the "expression text" is currently defined by the presence of italics in
the _wordsText, and an absence of _tempoText.

Duplicate of musescore#8325, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Sep 23, 2021
Previously, our importer and exporter didn't account for notes that
were both grace notes and cue notes (therefore extra-small in size).
This commit amends that. Additionally, since Dolet also seems to fail
in this area, this commit adds a function to coerce the `small` and
`play` attributes of a grace chord to match that of its main chord.
Finally, it adds support for the "grace-cue" size to the exporter and
importer. In the importer, this is treated the same as the "cue" size, as
exporters tend to misinterpret the distinction between these.

Duplicate of musescore#8581, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Mar 5, 2023
Add logic to add a space between the words and the metronome marking,
if there isn't already a space present at the end of the words.

Duplicate of musescore#8284, plus a fix to make it compatible with Qt 5.9 again, see also musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Mar 5, 2023
A common error in exporters is misinterpreting fingerings as word-type
directions. This commit adds the MusicXMLInferredFingering and the
associated code necessary to detect these directions, find the correct
notes to add them to, then add them if such notes are found.

The current iteration is able to distribute the fingerings across voices
if necessary, as well as round the tick value of a direction to the
nearest greatest common denominator of the measure.

Duplicate of musescore#8298, part 1, plus 4 fixed compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Mar 5, 2023
Previously, only the first beam was taken into account when importing
Beam::Mode. This commit adds a mechanism to collect the beam type
for all beams and make a more correct choice about Beam::Mode (including
BEGIN32 and BEGIN64). Additionally, it adds handling of these modes to
the export code. Now the round trip from .mscx -> .xml -> .mscx is
correct and complete *when beam modes are specified explicitly in the
.mscx*; however, more thorough handling of Beam::Mode::AUTO (where it
results in the equivalent of BEGIN32 or BEGIN64) on export needs to be
done.

Duplicate of musescore#8492, plus fixing 4 compiler warnings, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Mar 5, 2023
This commit adds some context-aware placement defaults for text and
dynamics (in the case that neither "placement" nor "default-y" nor
"relative-y" are specified). Namely, both expression text and dynamics
are placed below the staff unless it is a vocal staff.

To this end, there are some simple checks added to discern whether a
part is a vocal part, which is currently a simple check against the
name of the staff and a check for the presence of lyrics. Additionally,
the "expression text" is currently defined by the presence of italics in
the _wordsText, and an absence of _tempoText.

Duplicate of musescore#8325, plus fixing a compiler warning, see musescore#8554
Jojo-Schmitz pushed a commit to Jojo-Schmitz/MuseScore that referenced this pull request Mar 5, 2023
Previously, our importer and exporter didn't account for notes that
were both grace notes and cue notes (therefore extra-small in size).
This commit amends that. Additionally, since Dolet also seems to fail
in this area, this commit adds a function to coerce the `small` and
`play` attributes of a grace chord to match that of its main chord.
Finally, it adds support for the "grace-cue" size to the exporter and
importer. In the importer, this is treated the same as the "cue" size, as
exporters tend to misinterpret the distinction between these.

Duplicate of musescore#8581, plus fixing a compiler warning, see musescore#8554
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