Open craigsapp opened 7 years ago
acc-stacc
also has some problems, since the staccato and accent marks cannot be dissociated from each other:
These accents should look like this:
Or, depending on style, like this:
MEI test data:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://music-encoding.org/schema/3.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://music-encoding.org/schema/3.0.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="3.0.0">
<meiHead>
<fileDesc>
<titleStmt>
<title />
</titleStmt>
<pubStmt>
<date>2017-01-20 14:54:42</date>
</pubStmt>
</fileDesc>
<encodingDesc>
<projectDesc>
<p>Transcoded from Humdrum with Verovio version 0.9.14-dev-1071670-dirty</p>
</projectDesc>
</encodingDesc>
<extMeta>
<frames xmlns:humxml="http://www.humdrum.org/ns/humxml">
<metaFrame n="33" token="!!!RDF**kern: > = above" xml:id="loc33">
<frameInfo>
<startTime float="26" />
<frameType>reference</frameType>
<referenceKey>RDF**kern</referenceKey>
<referenceValue>> = above</referenceValue>
</frameInfo>
</metaFrame>
</frames>
</extMeta>
</meiHead>
<music>
<body>
<mdiv>
<score>
<scoreDef xml:id="scoredef-000000049264611">
<staffGrp xml:id="m-000000092403022">
<staffDef xml:id="staffdef-000000172168969" clef.shape="G" clef.line="2" n="1" lines="5" />
</staffGrp>
</scoreDef>
<section xml:id="section-000000167132802">
<measure xml:id="measure-L4" n="1">
<staff xml:id="staff-L4F1" n="1">
<layer xml:id="layer-L4F1" n="1">
<note xml:id="note-L5F1" dur="4" oct="4" pname="c" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000207382224" artic="acc stacc" />
</note>
<note xml:id="note-L6F1" dur="4" oct="4" pname="d" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000051740007" artic="acc stacc" />
</note>
<note xml:id="note-L7F1" dur="4" oct="4" pname="e" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000153262450" artic="acc stacc" />
</note>
<note xml:id="note-L8F1" dur="4" oct="4" pname="f" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000123105105" artic="acc stacc" />
</note>
<note xml:id="note-L9F1" dur="4" oct="4" pname="g" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000185974509" artic="acc stacc" />
</note>
<note xml:id="note-L10F1" dur="4" oct="4" pname="a" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000167557717" artic="acc stacc" />
</note>
<note xml:id="note-L11F1" dur="4" oct="4" pname="b" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000071111172" artic="acc stacc" />
</note>
<note xml:id="note-L12F1" dur="4" oct="5" pname="c" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000193922141" artic="acc stacc" />
</note>
<note xml:id="note-L13F1" dur="4" oct="5" pname="d" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000139363327" artic="acc stacc" />
</note>
<note xml:id="note-L14F1" dur="4" oct="5" pname="e" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000175777549" artic="acc stacc" />
</note>
<note xml:id="note-L15F1" dur="4" oct="5" pname="f" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000029722895" artic="acc stacc" />
</note>
<note xml:id="note-L16F1" dur="4" oct="5" pname="g" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000180164395" artic="acc stacc" />
</note>
<note xml:id="note-L17F1" dur="4" oct="5" pname="a" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000055151567" artic="acc stacc" />
</note>
</layer>
</staff>
</measure>
<measure xml:id="measure-L18" n="2" right="end">
<staff xml:id="staff-L18F1" n="1">
<layer xml:id="layer-L18F1" n="1">
<note xml:id="note-L19F1" dur="4" oct="4" pname="c" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000169662612" artic="acc stacc" />
</note>
<note xml:id="note-L20F1" dur="4" oct="4" pname="d" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000028072367" artic="acc stacc" />
</note>
<note xml:id="note-L21F1" dur="4" oct="4" pname="e" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000163803588" artic="acc stacc" />
</note>
<note xml:id="note-L22F1" dur="4" oct="4" pname="f" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000158524016" artic="acc stacc" />
</note>
<note xml:id="note-L23F1" dur="4" oct="4" pname="g" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000125669569" artic="acc stacc" />
</note>
<note xml:id="note-L24F1" dur="4" oct="4" pname="a" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000092696157" artic="acc stacc" />
</note>
<note xml:id="note-L25F1" dur="4" oct="4" pname="b" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000001316435" artic="acc stacc" />
</note>
<note xml:id="note-L26F1" dur="4" oct="5" pname="c" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000159862562" artic="acc stacc" />
</note>
<note xml:id="note-L27F1" dur="4" oct="5" pname="d" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000167822995" artic="acc stacc" />
</note>
<note xml:id="note-L28F1" dur="4" oct="5" pname="e" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000172326235" artic="acc stacc" />
</note>
<note xml:id="note-L29F1" dur="4" oct="5" pname="f" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000020022039" artic="acc stacc" />
</note>
<note xml:id="note-L30F1" dur="4" oct="5" pname="g" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000063149854" artic="acc stacc" />
</note>
<note xml:id="note-L31F1" dur="4" oct="5" pname="a" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000205399406" artic="acc stacc" />
</note>
</layer>
</staff>
</measure>
</section>
</score>
</mdiv>
</body>
</music>
</mei>
marc-stacc
looks good :-)
Although in terms of readability the articulations seem a bit small. Here is the same music typeset in SCORE:
MEI test data:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://music-encoding.org/schema/3.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://music-encoding.org/schema/3.0.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="3.0.0">
<meiHead>
<fileDesc>
<titleStmt>
<title />
</titleStmt>
<pubStmt>
<date>2017-01-20 15:00:44</date>
</pubStmt>
</fileDesc>
<encodingDesc>
<projectDesc>
<p>Transcoded from Humdrum with Verovio version 0.9.14-dev-1071670-dirty</p>
</projectDesc>
</encodingDesc>
<extMeta>
<frames xmlns:humxml="http://www.humdrum.org/ns/humxml">
<metaFrame n="33" token="!!!RDF**kern: > = above" xml:id="loc33">
<frameInfo>
<startTime float="26" />
<frameType>reference</frameType>
<referenceKey>RDF**kern</referenceKey>
<referenceValue>> = above</referenceValue>
</frameInfo>
</metaFrame>
</frames>
</extMeta>
</meiHead>
<music>
<body>
<mdiv>
<score>
<scoreDef xml:id="scoredef-000000172250489">
<staffGrp xml:id="m-000000088775160">
<staffDef xml:id="staffdef-000000187236314" clef.shape="G" clef.line="2" n="1" lines="5" />
</staffGrp>
</scoreDef>
<section xml:id="section-000000176638910">
<measure xml:id="measure-L4" n="1">
<staff xml:id="staff-L4F1" n="1">
<layer xml:id="layer-L4F1" n="1">
<note xml:id="note-L5F1" dur="4" oct="4" pname="c" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000145628493" artic="marc-stacc" />
</note>
<note xml:id="note-L6F1" dur="4" oct="4" pname="d" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000185005986" artic="marc-stacc" />
</note>
<note xml:id="note-L7F1" dur="4" oct="4" pname="e" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000038639968" artic="marc-stacc" />
</note>
<note xml:id="note-L8F1" dur="4" oct="4" pname="f" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000165909944" artic="marc-stacc" />
</note>
<note xml:id="note-L9F1" dur="4" oct="4" pname="g" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000008971997" artic="marc-stacc" />
</note>
<note xml:id="note-L10F1" dur="4" oct="4" pname="a" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000087203132" artic="marc-stacc" />
</note>
<note xml:id="note-L11F1" dur="4" oct="4" pname="b" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000016464308" artic="marc-stacc" />
</note>
<note xml:id="note-L12F1" dur="4" oct="5" pname="c" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000134986672" artic="marc-stacc" />
</note>
<note xml:id="note-L13F1" dur="4" oct="5" pname="d" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000006761152" artic="marc-stacc" />
</note>
<note xml:id="note-L14F1" dur="4" oct="5" pname="e" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000125203488" artic="marc-stacc" />
</note>
<note xml:id="note-L15F1" dur="4" oct="5" pname="f" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000068600446" artic="marc-stacc" />
</note>
<note xml:id="note-L16F1" dur="4" oct="5" pname="g" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000154481496" artic="marc-stacc" />
</note>
<note xml:id="note-L17F1" dur="4" oct="5" pname="a" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000097715871" artic="marc-stacc" />
</note>
</layer>
</staff>
</measure>
<measure xml:id="measure-L18" n="2" right="end">
<staff xml:id="staff-L18F1" n="1">
<layer xml:id="layer-L18F1" n="1">
<note xml:id="note-L19F1" dur="4" oct="4" pname="c" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000006747920" artic="marc-stacc" />
</note>
<note xml:id="note-L20F1" dur="4" oct="4" pname="d" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000051501274" artic="marc-stacc" />
</note>
<note xml:id="note-L21F1" dur="4" oct="4" pname="e" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000175382701" artic="marc-stacc" />
</note>
<note xml:id="note-L22F1" dur="4" oct="4" pname="f" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000129258591" artic="marc-stacc" />
</note>
<note xml:id="note-L23F1" dur="4" oct="4" pname="g" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000154180636" artic="marc-stacc" />
</note>
<note xml:id="note-L24F1" dur="4" oct="4" pname="a" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000129394883" artic="marc-stacc" />
</note>
<note xml:id="note-L25F1" dur="4" oct="4" pname="b" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000071234911" artic="marc-stacc" />
</note>
<note xml:id="note-L26F1" dur="4" oct="5" pname="c" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000107157956" artic="marc-stacc" />
</note>
<note xml:id="note-L27F1" dur="4" oct="5" pname="d" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000086952230" artic="marc-stacc" />
</note>
<note xml:id="note-L28F1" dur="4" oct="5" pname="e" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000102600756" artic="marc-stacc" />
</note>
<note xml:id="note-L29F1" dur="4" oct="5" pname="f" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000210739322" artic="marc-stacc" />
</note>
<note xml:id="note-L30F1" dur="4" oct="5" pname="g" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000205945235" artic="marc-stacc" />
</note>
<note xml:id="note-L31F1" dur="4" oct="5" pname="a" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000007899227" artic="marc-stacc" />
</note>
</layer>
</staff>
</measure>
</section>
</score>
</mdiv>
</body>
</music>
</mei>
You got this tricky case right :-)
Although Behind Bars, p. 121 recommends placing in one of the centeral spaces rather than the outer space (I don't see a problem with the above layout).
MEI test data:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://music-encoding.org/schema/3.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://music-encoding.org/schema/3.0.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="3.0.0">
<meiHead>
<fileDesc>
<titleStmt>
<title />
</titleStmt>
<pubStmt>
<date>2017-01-20 15:06:22</date>
</pubStmt>
</fileDesc>
<encodingDesc>
<projectDesc>
<p>Transcoded from Humdrum with Verovio version 0.9.14-dev-1071670-dirty</p>
</projectDesc>
</encodingDesc>
<extMeta>
<frames xmlns:humxml="http://www.humdrum.org/ns/humxml">
<metaFrame n="18" token="!!!RDF**kern: < = below" xml:id="loc18">
<frameInfo>
<startTime float="12" />
<frameType>reference</frameType>
<referenceKey>RDF**kern</referenceKey>
<referenceValue>< = below</referenceValue>
</frameInfo>
</metaFrame>
<metaFrame n="19" token="!!!RDF**kern: > = above" xml:id="loc19">
<frameInfo>
<startTime float="12" />
<frameType>reference</frameType>
<referenceKey>RDF**kern</referenceKey>
<referenceValue>> = above</referenceValue>
</frameInfo>
</metaFrame>
</frames>
</extMeta>
</meiHead>
<music>
<body>
<mdiv>
<score>
<scoreDef xml:id="scoredef-000000061095602">
<staffGrp xml:id="m-000000077635067">
<staffDef xml:id="staffdef-000000001508832" clef.shape="G" clef.line="2" n="1" lines="5" />
</staffGrp>
</scoreDef>
<section xml:id="section-000000010673678">
<measure xml:id="measure-L3" n="1">
<staff xml:id="staff-L3F1" n="1">
<layer xml:id="layer-L3F1" n="1">
<note xml:id="note-L4F1" dur="4" oct="4" pname="c" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000044212577" artic="ten" place="above" />
</note>
<note xml:id="note-L5F1" dur="4" oct="3" pname="b" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000112653381" artic="ten" place="above" />
</note>
<note xml:id="note-L6F1" dur="4" oct="3" pname="a" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000006551383" artic="ten" place="above" />
</note>
<note xml:id="note-L7F1" dur="4" oct="3" pname="g" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000203726694" artic="ten" place="above" />
</note>
<note xml:id="note-L8F1" dur="4" oct="3" pname="f" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000014079136" artic="ten" place="above" />
</note>
<note xml:id="note-L9F1" dur="4" oct="3" pname="e" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000001037828" artic="ten" place="above" />
</note>
</layer>
</staff>
</measure>
<measure xml:id="measure-L10" right="end">
<staff xml:id="staff-L10F1" n="1">
<layer xml:id="layer-L10F1" n="1">
<note xml:id="note-L11F1" dur="4" oct="5" pname="a" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000158299017" artic="ten" place="below" />
</note>
<note xml:id="note-L12F1" dur="4" oct="5" pname="b" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000001887225" artic="ten" place="below" />
</note>
<note xml:id="note-L13F1" dur="4" oct="6" pname="c" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000146023263" artic="ten" place="below" />
</note>
<note xml:id="note-L14F1" dur="4" oct="6" pname="d" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000052708477" artic="ten" place="below" />
</note>
<note xml:id="note-L15F1" dur="4" oct="6" pname="e" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000128629166" artic="ten" place="below" />
</note>
<note xml:id="note-L16F1" dur="4" oct="6" pname="f" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000010145081" artic="ten" place="below" />
</note>
</layer>
</staff>
</measure>
</section>
</score>
</mdiv>
</body>
</music>
</mei>
stacc
placement is also good:
But there is a bug in the placement of the staccato: it is bottom justified to the middle of the space rather than center justified to the center of the space:
Test MEI data:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://music-encoding.org/schema/3.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://music-encoding.org/schema/3.0.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="3.0.0">
<meiHead>
<fileDesc>
<titleStmt>
<title />
</titleStmt>
<pubStmt>
<date>2017-01-20 15:06:22</date>
</pubStmt>
</fileDesc>
<encodingDesc>
<projectDesc>
<p>Transcoded from Humdrum with Verovio version 0.9.14-dev-1071670-dirty</p>
</projectDesc>
</encodingDesc>
<extMeta>
<frames xmlns:humxml="http://www.humdrum.org/ns/humxml">
<metaFrame n="18" token="!!!RDF**kern: < = below" xml:id="loc18">
<frameInfo>
<startTime float="12" />
<frameType>reference</frameType>
<referenceKey>RDF**kern</referenceKey>
<referenceValue>< = below</referenceValue>
</frameInfo>
</metaFrame>
<metaFrame n="19" token="!!!RDF**kern: > = above" xml:id="loc19">
<frameInfo>
<startTime float="12" />
<frameType>reference</frameType>
<referenceKey>RDF**kern</referenceKey>
<referenceValue>> = above</referenceValue>
</frameInfo>
</metaFrame>
</frames>
</extMeta>
</meiHead>
<music>
<body>
<mdiv>
<score>
<scoreDef xml:id="scoredef-000000061095602">
<staffGrp xml:id="m-000000077635067">
<staffDef xml:id="staffdef-000000001508832" clef.shape="G" clef.line="2" n="1" lines="5" />
</staffGrp>
</scoreDef>
<section xml:id="section-000000010673678">
<measure xml:id="measure-L3" n="1">
<staff xml:id="staff-L3F1" n="1">
<layer xml:id="layer-L3F1" n="1">
<note xml:id="note-L4F1" dur="4" oct="4" pname="c" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000044212577" artic="ten" place="above" />
</note>
<note xml:id="note-L5F1" dur="4" oct="3" pname="b" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000112653381" artic="ten" place="above" />
</note>
<note xml:id="note-L6F1" dur="4" oct="3" pname="a" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000006551383" artic="ten" place="above" />
</note>
<note xml:id="note-L7F1" dur="4" oct="3" pname="g" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000203726694" artic="ten" place="above" />
</note>
<note xml:id="note-L8F1" dur="4" oct="3" pname="f" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000014079136" artic="ten" place="above" />
</note>
<note xml:id="note-L9F1" dur="4" oct="3" pname="e" accid.ges="n" stem.dir="down">
<artic xml:id="artic-000000001037828" artic="ten" place="above" />
</note>
</layer>
</staff>
</measure>
<measure xml:id="measure-L10" right="end">
<staff xml:id="staff-L10F1" n="1">
<layer xml:id="layer-L10F1" n="1">
<note xml:id="note-L11F1" dur="4" oct="5" pname="a" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000158299017" artic="ten" place="below" />
</note>
<note xml:id="note-L12F1" dur="4" oct="5" pname="b" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000001887225" artic="ten" place="below" />
</note>
<note xml:id="note-L13F1" dur="4" oct="6" pname="c" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000146023263" artic="ten" place="below" />
</note>
<note xml:id="note-L14F1" dur="4" oct="6" pname="d" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000052708477" artic="ten" place="below" />
</note>
<note xml:id="note-L15F1" dur="4" oct="6" pname="e" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000128629166" artic="ten" place="below" />
</note>
<note xml:id="note-L16F1" dur="4" oct="6" pname="f" accid.ges="n" stem.dir="up">
<artic xml:id="artic-000000010145081" artic="ten" place="below" />
</note>
</layer>
</staff>
</measure>
</section>
</score>
</mdiv>
</body>
</music>
</mei>
Also, to be slightly picky :-), the tenuto line should be thicker than a staff line. In verovio it is thinner than a staff line. Here is a verovio rendering of a tenuto showing staff lines and ledger lines as well:
Equivalent music typeset in SCORE:
The standard style for a tenuto is to be the width of a notehead. In verovio it is a little shorter, but readability is not a problem. However, the thinness of the tenuto is a slight readability problem.
Ledger lines should be thicker than staff lines as well...
The good news is that staccatos have the correct size, being smaller than augmentation dots:
tenuto staccato: you should use "ten stacc" instead of "ten-stacc". The later uses one single SMuFL glyph and will collide with staff lines. One possible option is to make them displayed outside the staves as "marc-stacc". The same should apply to "acc-stacc".
ten stacc
gives this amusing rendering:
stacc ten
gives nice output:
See https://github.com/music-encoding/music-encoding/issues/375 for @pe-ro's note about ordering of articulations.
I would say that ten stacc
and stacc ten
should both output the current rendering of stacc ten
, and if someone wants the current output for ten stacc
they would have to add these children elements to a note:
<artic artic="ten" order="1"/>
<artic artic="stacc" order="2"/>
ten-stacc
and marc-stacc
may be retired; otherwise, it is better to map to them internally to stacc ten
and stacc marc
so that they behave well.
One possible option is to make them displayed outside the staves as "marc-stacc". The same should apply to "acc-stacc".
Yes, it should be sufficient to place both articulations outside of the staff for stacc marc
and stacc acc
(stacc marc
and stacc acc
currently have a rendering bug, with the two articulations are being placed independent of each other):
You are right, it should be encoded stacc ten
and not ten stacc
to get them displayed in the correct order.
And so the ordering of articulations in @artic
will be the stacking order? (i.e., no @order
that Perry was thinking about).
Yes. I do not think @order
on artic
is necessary and that it is not a good idea. I would instead expect the order of the values in the attribute or of the elements to be taken into account.
That sounds good to me. Just tell @pe-ro :-)
And you are also saying in the last message that the sequence of note/artic
elements also will determine their stacking order (as well as the token sequence in note@artic
). That is also good for me.
But note this is slightly different from <measure>
or <layer>
content. In those cases it is a temporal sequence, while in this case it is a spatial sequence. <artic>
could also be treated like floating elements such as trill
or <fermata>
but in those case the @tstamp
or @startid
are used to place the items (so they don't have to be encoded in any particular order). But I also can't imagine a case yet where @order
on note/accid
would be necessary.
Laurent and I had a conversation about this recently and decided that the order of values within @artic
and @accid
as well as the order of a note's <artic>
and <accid>
children would be significant. I think it makes the most sense to translate the left-to-right order of the attribute values as closest-farthest from the note head. For example,
<note artic="acc stacc marc"/>
would result in the accent mark being closest to the note head no matter which direction the stem points.
I also can't imagine a case yet where @order on note/accid would be necessary.
If encoding order is not significant, then @order
is necessary to assign a different/explicit spatial order. But if encoding order is significant, then @order
isn't necessary.
@pe-ro This seems to me as the most logical and "natural" approach. Just to make it totally clear, how about this:
<note>
<artic artic="marc stacc" place="above" />
<artic artic="acc ten" place="below" />
<artic artic="stacciss open snap" />
</note>
At first the marcato is put over the note, then the dot above it. Next an accent below and afterwards the tenuto under that. The remaining articulation symbols would then be placed (freely) above and under the other marks. And of course does the order of the artic elements matter too.
I think your example and explanation are on the mark. Since @place
is missing on the 3rd <artic>
element, the articulations given there would have to follow the renderer's own internal ordering methodology.
I just realize I contradicted myself (hey, it happens occasionally) re: the order of articulations vis-a-vis #375.
Presumably, the encoding order of accidentals would be left-to-right (that is, from farthest from the note to closest to the note). Encoding order of articulations may match this farthest -> closest pattern or we could reverse it in the vertical dimension.
Suggestions?
I think a note can be seen as the primary element in music notation, so everything outside the staff should be encoded from closest to farthest to the note.
This is what we currently get with
<artic artic="stacc"/>
<artic artic="acc"/>
It remains unclear how to encode this
or
Moving a staccato articulation out of the staff is very rare, so in this case the second example is highly preferred.
What's the status of this?
Compound articulations should not be both be placed in a single staff space. And tenutos should definitely not be placed on staff lines :-)
Example of current
ten-stacc
placements:Correct placement:
test MEI data: