Problem
MEI import exists and covers CMN reasonably well. There is no MEI exporter — parseMEI / parseMeiScore have no counterpart, so MEI is a one-way door.
To be clear about the promise: the README has never claimed MEI round-trip, and the compatibility table marks import/render honestly. This issue exists so the gap is tracked rather than merely not-promised.
Why it is worth doing
MusicXML export exists and round-trips (including <notations><tuplet> and <time-modification>, fixed in 2.8.0). MEI is the format the musicology and digital-edition world actually archives in, and it is the format this package's data model is closest to — several MEI concepts are modelled natively here that MusicXML cannot express.
Scope
<staffDef> with @clef.*, @key.*, @meter.*, @trans.semi / @trans.diat, @clef.dis / @clef.dis.place — all of which the importer already reads, so the mapping exists in one direction already.
<layer> / <beam> / <tuplet> / <chord> / <rest> / <note> with @oct, @pname, @accid vs @accid.ges.
<staffGrp> with @symbol and labels.
Acceptance criteria
Problem
MEI import exists and covers CMN reasonably well. There is no MEI exporter —
parseMEI/parseMeiScorehave no counterpart, so MEI is a one-way door.To be clear about the promise: the README has never claimed MEI round-trip, and the compatibility table marks import/render honestly. This issue exists so the gap is tracked rather than merely not-promised.
Why it is worth doing
MusicXML export exists and round-trips (including
<notations><tuplet>and<time-modification>, fixed in 2.8.0). MEI is the format the musicology and digital-edition world actually archives in, and it is the format this package's data model is closest to — several MEI concepts are modelled natively here that MusicXML cannot express.Scope
<staffDef>with@clef.*,@key.*,@meter.*,@trans.semi/@trans.diat,@clef.dis/@clef.dis.place— all of which the importer already reads, so the mapping exists in one direction already.<layer>/<beam>/<tuplet>/<chord>/<rest>/<note>with@oct,@pname,@accidvs@accid.ges.<staffGrp>with@symboland labels.Acceptance criteria