MusicXML import should honor "no chord" (N.C.) convention

• Nov 16, 2020 - 20:45
Reported version
3.5
Type
Functional
Frequency
Once
Severity
S4 - Minor
Reproducibility
Always
Status
closed
Regression
No
Workaround
No
Project
  • Create a sheet that includes "no chord" (N.C.) harmony
  • Export it to MusicXML
  • Verify that the exported file expresses the "no chord" as

    <harmony>
    <root>
    <root-step text="">C</root-step>
    </root>
    <kind text="N.C.">none</kind>
    </harmony>
  • Import the MusicXML into MuseScore
  • Observe that the "no chord" is imported as a C chord with appended text "N.C."

As per this MusicXML issue, MuseScore does export the "no chord" to MusicXML the correct way, but the import routine does not follow the same convention. Specifically, the code that indicates an "invalid root" is disabled.

Attachment Size
Moanin'.mscz 15.48 KB

Comments

That seems to me my best read of Michael Good's explanation. It's still not 100% clear to me what should happen if kind is none, then there is root-step tag without a text attribute - do we still read the root and add that text to the chord, but set the chord to invalid so it doesn't transpose etc? In other words, if the text="" attribute is missing from the root-step, the kind is none and has text=N.C., do we actually display "CN.C."? I guess in the end I don't care, it's a corner case we probably won't see. Since MuseScore, iReal Pro, and Finale (apparently) all export both the kind none and the empty text on the root attribute, handling that combination well is the most important thing.

Fix version
3.6.0