Skip to content

Commit

Permalink
MusicXML im-/export of the 2 additional Gould accidentals
Browse files Browse the repository at this point in the history
and fix some MusicXML todos

This change/commit will cause a merge conflict with musescore#6263
  • Loading branch information
Jojo-Schmitz committed Jun 26, 2020
1 parent 5efffce commit 302b7d9
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 32 deletions.
64 changes: 34 additions & 30 deletions importexport/musicxml/musicxmlsupport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -386,19 +386,19 @@ QString accSymId2MxmlString(const SymId id)
case SymId::accidentalBuyukMucennebSharp: s = "slash-sharp"; break;
case SymId::accidentalBakiyeFlat: s = "slash-flat"; break;
case SymId::accidentalBuyukMucennebFlat: s = "double-slash-flat"; break;
/* TODO
case AccidentalType::FLAT_ARROW_UP: s = "flat-up"; break;
case AccidentalType::NATURAL_ARROW_DOWN: s = "natural-down"; break;
case AccidentalType::SHARP_ARROW_DOWN: s = "sharp-down"; break;
case AccidentalType::NATURAL_ARROW_UP: s = "natural-up"; break;
case AccidentalType::MIRRORED_FLAT2: s = "three-quarters-flat"; break;
case AccidentalType::FLAT_FLAT_SLASH: s = "three-quarters-flat"; break;
case AccidentalType::FLAT_ARROW_DOWN: s = "flat-down"; break;
case AccidentalType::SHARP_SLASH4: s = "three-quarters-sharp"; break;
case AccidentalType::SHARP_ARROW_UP: s = "sharp-up"; break;
case AccidentalType::SORI: s = "sori"; break;
case AccidentalType::KORON: s = "koron"; break;
*/
case SymId::accidentalQuarterToneFlatArrowUp:s = "flat-up"; break;
case SymId::accidentalQuarterToneFlatNaturalArrowDown: s = "natural-down"; break;
case SymId::accidentalQuarterToneSharpArrowDown: s = "sharp-down"; break;
case SymId::accidentalQuarterToneSharpNaturalArrowUp: s = "natural-up"; break;
case SymId::accidentalThreeQuarterTonesFlatZimmermann: s = "three-quarters-flat"; break;
//case AccidentalType::FLAT_FLAT_SLASH: s = "three-quarters-flat"; break;
case SymId::accidentalThreeQuarterTonesFlatArrowDown: s = "flat-down"; break;
case SymId::accidentalThreeQuarterTonesSharpStein: s = "three-quarters-sharp"; break;
case SymId::accidentalThreeQuarterTonesSharpArrowUp: s = "sharp-up"; break;
case SymId::accidentalArrowDown: s = "arrow-down"; break;
case SymId::accidentalArrowUp: s = "arrow-up"; break;
case SymId::accidentalSori: s = "sori"; break;
case SymId::accidentalKoron: s = "koron"; break;
default:
qDebug("accSymId2MxmlString: unknown accidental %d", static_cast<int>(id));
}
Expand All @@ -420,29 +420,30 @@ SymId mxmlString2accSymId(const QString mxmlName)
map["flat-flat"] = SymId::accidentalDoubleFlat;

//map["double-flat"] = SymId::accidentalDoubleFlat;
//map["natural-flat"] = AccidentalType::FLAT;
map["natural-flat"] = SymId::accidentalNaturalFlat;
map["natural-sharp"] = SymId::accidentalNaturalSharp;

map["quarter-flat"] = SymId::accidentalQuarterToneFlatStein;
map["quarter-sharp"] = SymId::accidentalQuarterToneSharpStein;
//map["three-quarters-flat"] = AccidentalType::MIRRORED_FLAT2;
//map["three-quarters-sharp"] = AccidentalType::SHARP_SLASH4;

//map["sharp-down"] = AccidentalType::SHARP_ARROW_DOWN;
//map["sharp-up"] = AccidentalType::SHARP_ARROW_UP;
//map["natural-down"] = AccidentalType::NATURAL_ARROW_DOWN;
//map["natural-up"] = AccidentalType::NATURAL_ARROW_UP;
//map["flat-down"] = AccidentalType::FLAT_ARROW_DOWN;
//map["flat-up"] = AccidentalType::FLAT_ARROW_UP;
map["three-quarters-flat"] = SymId::accidentalThreeQuarterTonesFlatZimmermann;
map["three-quarters-sharp"] = SymId::accidentalThreeQuarterTonesSharpStein;

map["sharp-down"] = SymId::accidentalQuarterToneSharpArrowDown;
map["sharp-up"] = SymId::accidentalThreeQuarterTonesSharpArrowUp;
map["natural-down"] = SymId::accidentalQuarterToneFlatNaturalArrowDown;
map["natural-up"] = SymId::accidentalQuarterToneSharpNaturalArrowUp;
map["flat-down"] = SymId::accidentalThreeQuarterTonesFlatArrowDown;
map["flat-up"] = SymId::accidentalQuarterToneFlatArrowUp;
map["arrow-down"] = SymId::accidentalArrowDown;
map["arrow-up"] = SymId::accidentalArrowUp;

map["slash-quarter-sharp"] = SymId::accidentalKucukMucennebSharp;
map["slash-sharp"] = SymId::accidentalBuyukMucennebSharp;
map["slash-flat"] = SymId::accidentalBakiyeFlat;
map["double-slash-flat"] = SymId::accidentalBuyukMucennebFlat;

//map["sori"] = AccidentalType::SORI;
//map["koron"] = AccidentalType::KORON;

//map["natural-sharp"] = AccidentalType::SHARP;
map["sori"] = SymId::accidentalSori;
map["koron"] = SymId::accidentalKoron;

if (map.contains(mxmlName))
return map.value(mxmlName);
Expand Down Expand Up @@ -481,9 +482,12 @@ QString accidentalType2MxmlString(const AccidentalType type)
case AccidentalType::SHARP_SLASH3: s = "slash-quarter-sharp"; break;
case AccidentalType::FLAT_SLASH2: s = "double-slash-flat"; break;
case AccidentalType::SHARP_SLASH2: s = "slash-sharp"; break;
case AccidentalType::ARROW_DOWN: s = "arrow-down"; break;
case AccidentalType::ARROW_UP: s = "arrow-up"; break;
case AccidentalType::SORI: s = "sori"; break;
case AccidentalType::KORON: s = "koron"; break;
default:
s = "other";
qDebug("accidentalType2MxmlString: unknown accidental %d", static_cast<int>(type));
}
return s;
Expand All @@ -508,6 +512,7 @@ AccidentalType mxmlString2accidentalType(const QString mxmlName)
map["flat-flat"] = AccidentalType::FLAT2;
map["double-flat"] = AccidentalType::FLAT2;
map["natural-flat"] = AccidentalType::FLAT;
map["natural-sharp"] = AccidentalType::SHARP;

map["quarter-flat"] = AccidentalType::MIRRORED_FLAT;
map["quarter-sharp"] = AccidentalType::SHARP_SLASH;
Expand All @@ -520,6 +525,8 @@ AccidentalType mxmlString2accidentalType(const QString mxmlName)
map["natural-up"] = AccidentalType::NATURAL_ARROW_UP;
map["flat-down"] = AccidentalType::FLAT_ARROW_DOWN;
map["flat-up"] = AccidentalType::FLAT_ARROW_UP;
map["arrow-down"] = AccidentalType::ARROW_DOWN;
map["arrow-up"] = AccidentalType::ARROW_UP;

map["slash-quarter-sharp"] = AccidentalType::SHARP_SLASH3; // MIRRORED_FLAT_SLASH; ?
map["slash-sharp"] = AccidentalType::SHARP_SLASH2; // SHARP_SLASH; ?
Expand All @@ -529,13 +536,10 @@ AccidentalType mxmlString2accidentalType(const QString mxmlName)
map["sori"] = AccidentalType::SORI;
map["koron"] = AccidentalType::KORON;

map["natural-sharp"] = AccidentalType::SHARP;

if (map.contains(mxmlName))
return map.value(mxmlName);
else
qDebug("mxmlString2accidentalType: unknown accidental '%s'", qPrintable(mxmlName));
// default: return AccidentalType::NONE
return AccidentalType::NONE;
}

Expand Down
4 changes: 2 additions & 2 deletions libmscore/accidental.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ static Acc accList[] = {
Acc(AccidentalVal::NATURAL, 150, SymId::accidentalThreeQuarterTonesSharpArrowDown), // SHARP2_ARROW_DOWN
Acc(AccidentalVal::NATURAL, -250, SymId::accidentalThreeQuarterTonesFlatArrowUp), // FLAT2_ARROW_UP
Acc(AccidentalVal::NATURAL, -150, SymId::accidentalFiveQuarterTonesFlatArrowDown), // FLAT2_ARROW_DOWN
Acc(AccidentalVal::NATURAL, -50, SymId::accidentalArrowDown),
Acc(AccidentalVal::NATURAL, 50, SymId::accidentalArrowUp),
Acc(AccidentalVal::NATURAL, -50, SymId::accidentalArrowDown), // ARROW_DOWN
Acc(AccidentalVal::NATURAL, 50, SymId::accidentalArrowUp), // ARROW_UP

// Stein-Zimmermann
Acc(AccidentalVal::NATURAL, -50, SymId::accidentalQuarterToneFlatStein), // MIRRORED_FLAT
Expand Down

0 comments on commit 302b7d9

Please sign in to comment.