rism-digital / verovio

🎵 Music notation engraving library for MEI with MusicXML and Humdrum support and various toolkits (JavaScript, Python)
https://www.verovio.org
GNU Lesser General Public License v3.0
661 stars 181 forks source link

ending code breaks app #276

Closed craigsapp closed 8 years ago

craigsapp commented 8 years ago

In the newest development branch code, MEI files containing <app> can no longer be converted into svg. The problem is this code added two days ago, which does not allow for Is() == APP:

https://github.com/rism-ch/verovio/blob/06a4b36efcdd02983af9f2d67f556e996327d0ff/src/measure.cpp#L420-L432

From commit https://github.com/rism-ch/verovio/commit/06a4b36efcdd02983af9f2d67f556e996327d0ff

lpugin commented 8 years ago

I'll look into it. I guess this is only for app within section, isn't it?

craigsapp commented 8 years ago

Yes, here is the problem case:

                    <section>
                        <app xml:id="app-000000150360614">
                            <lem xml:id="lem-000000166832073" />
                            <rdg xml:id="rdg-000000192003068" label="original-clef">
                                <scoreDef xml:id="scoredef-000000186644297">
                                    <staffGrp xml:id="m-000000101341548">
                                        <staffDef xml:id="staffdef-000000078120161" clef.shape="C" clef.line="1" n="1"
                                        <staffDef xml:id="staffdef-000000075378714" clef.shape="C" clef.line="3" n="2"
                                        <staffDef xml:id="staffdef-000000151910260" clef.shape="C" clef.line="4" n="3"
                                    </staffGrp>
                                </scoreDef>
                            </rdg>
                        </app>

Here is a full test example which used to work, but now fails due to the assert in that code in measure.cpp when it sees the <app>.

<?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 xml:lang="de" type="main">Aus meines Herzens Grunde</title>
                <title xml:lang="en" type="translated">From the Depths of My Heart</title>
                <respStmt>
                    <persName role="Composer">Bach, Johann Sebastian</persName>
                    <persName role="digital editor">Craig Stuart Sapp</persName>
                </respStmt>
            </titleStmt>
            <pubStmt>
                <date>2016-08-20 03:21:36</date>
            </pubStmt>
        </fileDesc>
        <encodingDesc>
            <projectDesc>
                <p>Transcoded from Humdrum with Verovio version 0.9.12-dev-2e4be4f</p>
            </projectDesc>
        </encodingDesc>
        <extMeta>
            <frames xmlns:humxml="http://www.humdrum.org/ns/humxml">
                <metaFrame n="1" token="!!!COM: Bach, Johann Sebastian" xml:id="loc1">
                    <frameInfo>
                        <startTime float="0" />
                        <frameType>reference</frameType>
                        <referenceKey>COM</referenceKey>
                        <referenceValue>Bach, Johann Sebastian</referenceValue>
                    </frameInfo>
                </metaFrame>
                <metaFrame n="2" token="!!!CDT: 1685/02/21/-1750/07/28/" xml:id="loc2">
                    <frameInfo>
                        <startTime float="0" />
                        <frameType>reference</frameType>
                        <referenceKey>CDT</referenceKey>
                        <referenceValue>1685/02/21/-1750/07/28/</referenceValue>
                    </frameInfo>
                </metaFrame>
                <metaFrame n="3" token="!!!OTL@@DE: Aus meines Herzens Grunde" xml:id="loc3">
                    <frameInfo>
                        <startTime float="0" />
                        <frameType>reference</frameType>
                        <referenceKey language="DE" primary="true">OTL</referenceKey>
                        <referenceValue>Aus meines Herzens Grunde</referenceValue>
                    </frameInfo>
                </metaFrame>
                <metaFrame n="4" token="!!!OTL@EN:      From the Depths of My Heart" xml:id="loc4">
                    <frameInfo>
                        <startTime float="0" />
                        <frameType>reference</frameType>
                        <referenceKey language="EN">OTL</referenceKey>
                        <referenceValue>From the Depths of My Heart</referenceValue>
                    </frameInfo>
                </metaFrame>
                <metaFrame n="5" token="!!!SCT: BWV 269" xml:id="loc5">
                    <frameInfo>
                        <startTime float="0" />
                        <frameType>reference</frameType>
                        <referenceKey>SCT</referenceKey>
                        <referenceValue>BWV 269</referenceValue>
                    </frameInfo>
                </metaFrame>
                <metaFrame n="6" token="!!!PC#: 1" xml:id="loc6">
                    <frameInfo>
                        <startTime float="0" />
                        <frameType>reference</frameType>
                        <referenceKey>PC#</referenceKey>
                        <referenceValue>1</referenceValue>
                    </frameInfo>
                </metaFrame>
                <metaFrame n="7" token="!!!AGN: chorale" xml:id="loc7">
                    <frameInfo>
                        <startTime float="0" />
                        <frameType>reference</frameType>
                        <referenceKey>AGN</referenceKey>
                        <referenceValue>chorale</referenceValue>
                    </frameInfo>
                </metaFrame>
                <metaFrame n="126" token="!!!YOR1: 371 vierstimmige Choralges&amp;auml;nge von Johann Sebastian Bach, " xml:id="loc126">
                    <frameInfo>
                        <startTime float="63" />
                        <frameType>reference</frameType>
                        <referenceKey>YOR1</referenceKey>
                        <referenceValue>371 vierstimmige Choralges&amp;auml;nge von Johann Sebastian Bach,</referenceValue>
                    </frameInfo>
                </metaFrame>
                <metaFrame n="127" token="!!!YOR2: 4th ed. by Alfred D&amp;ouml;rffel (Leipzig: Breitkopf und H&amp;auml;rtel, " xml:id="loc127">
                    <frameInfo>
                        <startTime float="63" />
                        <frameType>reference</frameType>
                        <referenceKey>YOR2</referenceKey>
                        <referenceValue>4th ed. by Alfred D&amp;ouml;rffel (Leipzig: Breitkopf und H&amp;auml;rtel,</referenceValue>
                    </frameInfo>
                </metaFrame>
                <metaFrame n="128" token="!!!YOR3: c.1875). 178 pp. Plate &quot;V.A.10&quot;.  reprint: J.S. Bach, 371 Four-Part " xml:id="loc128">
                    <frameInfo>
                        <startTime float="63" />
                        <frameType>reference</frameType>
                        <referenceKey>YOR3</referenceKey>
                        <referenceValue>c.1875). 178 pp. Plate "V.A.10".  reprint: J.S. Bach, 371 Four-Part</referenceValue>
                    </frameInfo>
                </metaFrame>
                <metaFrame n="129" token="!!!YOR4: Chorales (New York: Associated Music Publishers, Inc., c.1940)." xml:id="loc129">
                    <frameInfo>
                        <startTime float="63" />
                        <frameType>reference</frameType>
                        <referenceKey>YOR4</referenceKey>
                        <referenceValue>Chorales (New York: Associated Music Publishers, Inc., c.1940).</referenceValue>
                    </frameInfo>
                </metaFrame>
                <metaFrame n="130" token="!!!SMS: B&amp;H, 4th ed, Alfred D&amp;ouml;rffel, c.1875, plate V.A.10" xml:id="loc130">
                    <frameInfo>
                        <startTime float="63" />
                        <frameType>reference</frameType>
                        <referenceKey>SMS</referenceKey>
                        <referenceValue>B&amp;H, 4th ed, Alfred D&amp;ouml;rffel, c.1875, plate V.A.10</referenceValue>
                    </frameInfo>
                </metaFrame>
                <metaFrame n="131" token="!!!EED:  Craig Stuart Sapp" xml:id="loc131">
                    <frameInfo>
                        <startTime float="63" />
                        <frameType>reference</frameType>
                        <referenceKey>EED</referenceKey>
                        <referenceValue>Craig Stuart Sapp</referenceValue>
                    </frameInfo>
                </metaFrame>
                <metaFrame n="132" token="!!!EEV:  2009/05/22" xml:id="loc132">
                    <frameInfo>
                        <startTime float="63" />
                        <frameType>reference</frameType>
                        <referenceKey>EEV</referenceKey>
                        <referenceValue>2009/05/22</referenceValue>
                    </frameInfo>
                </metaFrame>
            </frames>
        </extMeta>
    </meiHead>
    <music>
        <body>
            <mdiv>
                <score>
                    <scoreDef xml:id="scoredef-000000025275499">
                        <staffGrp xml:id="m-000000168172445" symbol="bracket">
                            <staffDef xml:id="staffdef-000000171067063" clef.shape="G" clef.line="2" key.sig="1s" meter.count="3" meter.unit="4" n="1" label="Soprano" lines="5" />
                            <staffDef xml:id="staffdef-000000157361065" clef.shape="G" clef.line="2" key.sig="1s" meter.count="3" meter.unit="4" n="2" label="Alto" lines="5" />
                            <staffDef xml:id="staffdef-000000005369959" clef.shape="G" clef.line="2" clef.dis="8" clef.dis.place="below" key.sig="1s" meter.count="3" meter.unit="4" n="3" label="Tenor" lines="5" />
                            <staffDef xml:id="staffdef-000000002012468" clef.shape="F" clef.line="4" key.sig="1s" meter.count="3" meter.unit="4" n="4" label="Bass" lines="5" />
                        </staffGrp>
                    </scoreDef>
                    <section>
                        <app xml:id="app-000000150360614">
                            <lem xml:id="lem-000000166832073" />
                            <rdg xml:id="rdg-000000192003068" label="original-clef">
                                <scoreDef xml:id="scoredef-000000186644297">
                                    <staffGrp xml:id="m-000000101341548">
                                        <staffDef xml:id="staffdef-000000078120161" clef.shape="C" clef.line="1" n="1" />
                                        <staffDef xml:id="staffdef-000000075378714" clef.shape="C" clef.line="3" n="2" />
                                        <staffDef xml:id="staffdef-000000151910260" clef.shape="C" clef.line="4" n="3" />
                                    </staffGrp>
                                </scoreDef>
                            </rdg>
                        </app>
                        <measure xml:id="measure-000000159825817" n="0">
                            <staff xml:id="staff-000000007172179" n="1">
                                <!-- kern: **kern  *ICvox  *Isoprn  *I"Soprano  *>[A,A,B]  *>norep[A,B]  *>A  *oclefC1  *clefG2  *k[f#]  *G:  *M3/4  *MM100  4g  =1 -->
                                <layer xml:id="layer-000000042345525" n="1">
                                    <note xml:id="note-L22F4" dur="4" oct="4" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000068989940" n="2">
                                <!-- kern: **kern  *ICvox  *Ialto  *I"Alto  *>[A,A,B]  *>norep[A,B]  *>A  *oclefC3  *clefG2  *k[f#]  *G:  *M3/4  *MM100  4d  =1 -->
                                <layer xml:id="layer-000000020218405" n="1">
                                    <note xml:id="note-L22F3" dur="4" oct="4" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000087508968" n="3">
                                <!-- kern: **kern  *ICvox  *Itenor  *I"Tenor  *>[A,A,B]  *>norep[A,B]  *>A  *oclefC4  *clefGv2  *k[f#]  *G:  *M3/4  *MM100  4B  =1 -->
                                <layer xml:id="layer-000000157802967" n="1">
                                    <note xml:id="note-L22F2" dur="4" oct="3" pname="b" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000166427071" n="4">
                                <!-- kern: **kern  *ICvox  *Ibass  *I"Bass  *>[A,A,B]  *>norep[A,B]  *>A  *clefF4  *k[f#]  *G:  *M3/4  *MM100  4GG  =1 -->
                                <layer xml:id="layer-000000044091547" n="1">
                                    <note xml:id="note-L22F1" dur="4" oct="2" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000016432101" n="1">
                            <staff xml:id="staff-000000045164505" n="1">
                                <!-- kern: =1  2g  4dd  =2 -->
                                <layer xml:id="layer-000000191753976" n="1">
                                    <note xml:id="note-L24F4" dur="2" oct="4" pname="g" accid.ges="n" />
                                    <note xml:id="note-L27F4" dur="4" oct="5" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000159129811" n="2">
                                <!-- kern: =1  4d  4e  4d  =2 -->
                                <layer xml:id="layer-000000100034930" n="1">
                                    <note xml:id="note-L24F3" dur="4" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L25F3" dur="4" oct="4" pname="e" accid.ges="n" />
                                    <note xml:id="note-L27F3" dur="4" oct="4" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000018607906" n="3">
                                <!-- kern: =1  4B  8cL  8BJ  4A  =2 -->
                                <layer xml:id="layer-000000089019671" n="1">
                                    <note xml:id="note-L24F2" dur="4" oct="3" pname="b" accid.ges="n" />
                                    <beam xml:id="beam-000000165758840">
                                        <note xml:id="note-L25F2" dur="8" oct="4" pname="c" accid.ges="n" />
                                        <note xml:id="note-L26F2" dur="8" oct="3" pname="b" accid.ges="n" />
                                    </beam>
                                    <note xml:id="note-L27F2" dur="4" oct="3" pname="a" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000069468903" n="4">
                                <!-- kern: =1  4G  4E  4F#  =2 -->
                                <layer xml:id="layer-000000036374025" n="1">
                                    <note xml:id="note-L24F1" dur="4" oct="3" pname="g" accid.ges="n" />
                                    <note xml:id="note-L25F1" dur="4" oct="3" pname="e" accid.ges="n" />
                                    <note xml:id="note-L27F1" dur="4" oct="3" pname="f" accid.ges="s" />
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000121476425" n="2">
                            <staff xml:id="staff-000000180754468" n="1">
                                <!-- kern: =2  4.b  8a  4g  =3 -->
                                <layer xml:id="layer-000000085508301" n="1">
                                    <note xml:id="note-L29F4" dots="1" dur="4" oct="4" pname="b" accid.ges="n" />
                                    <note xml:id="note-L31F4" dur="8" oct="4" pname="a" accid.ges="n" />
                                    <note xml:id="note-L32F4" dur="4" oct="4" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000109978310" n="2">
                                <!-- kern: =2  2d  4B  =3 -->
                                <layer xml:id="layer-000000020165064" n="1">
                                    <note xml:id="note-L29F3" dur="2" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L32F3" dur="4" oct="3" pname="b" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000066289600" n="3">
                                <!-- kern: =2  4G  4F#  4G  =3 -->
                                <layer xml:id="layer-000000068557406" n="1">
                                    <note xml:id="note-L29F2" dur="4" oct="3" pname="g" accid.ges="n" />
                                    <note xml:id="note-L30F2" dur="4" oct="3" pname="f" accid.ges="s" />
                                    <note xml:id="note-L32F2" dur="4" oct="3" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000014801220" n="4">
                                <!-- kern: =2  4G  4D  4E  =3 -->
                                <layer xml:id="layer-000000013377692" n="1">
                                    <note xml:id="note-L29F1" dur="4" oct="3" pname="g" accid.ges="n" />
                                    <note xml:id="note-L30F1" dur="4" oct="3" pname="d" accid.ges="n" />
                                    <note xml:id="note-L32F1" dur="4" oct="3" pname="e" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000028811480" n="3">
                            <staff xml:id="staff-000000011501847" n="1">
                                <!-- kern: =3  4.g  8a  4b  =4 -->
                                <layer xml:id="layer-000000023264624" n="1">
                                    <note xml:id="note-L34F4" dots="1" dur="4" oct="4" pname="g" accid.ges="n" />
                                    <note xml:id="note-L37F4" dur="8" oct="4" pname="a" accid.ges="n" />
                                    <note xml:id="note-L38F4" dur="4" oct="4" pname="b" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000038027744" n="2">
                                <!-- kern: =3  8eL  8d  8e  8f#J  4g  =4 -->
                                <layer xml:id="layer-000000107824074" n="1">
                                    <beam xml:id="beam-000000152513740">
                                        <note xml:id="note-L34F3" dur="8" oct="4" pname="e" accid.ges="n" />
                                        <note xml:id="note-L35F3" dur="8" oct="4" pname="d" accid.ges="n" />
                                        <note xml:id="note-L36F3" dur="8" oct="4" pname="e" accid.ges="n" />
                                        <note xml:id="note-L37F3" dur="8" oct="4" pname="f" accid.ges="s" />
                                    </beam>
                                    <note xml:id="note-L38F3" dur="4" oct="4" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000041170145" n="3">
                                <!-- kern: =3  8cL  8BJ  4c  4d  =4 -->
                                <layer xml:id="layer-000000192030726" n="1">
                                    <beam xml:id="beam-000000007240486">
                                        <note xml:id="note-L34F2" dur="8" oct="4" pname="c" accid.ges="n" />
                                        <note xml:id="note-L35F2" dur="8" oct="3" pname="b" accid.ges="n" />
                                    </beam>
                                    <note xml:id="note-L36F2" dur="4" oct="4" pname="c" accid.ges="n" />
                                    <note xml:id="note-L38F2" dur="4" oct="4" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000027395951" n="4">
                                <!-- kern: =3  4C  8BBL  8AAJ  4GG  =4 -->
                                <layer xml:id="layer-000000079131298" n="1">
                                    <note xml:id="note-L34F1" dur="4" oct="3" pname="c" accid.ges="n" />
                                    <beam xml:id="beam-000000008362744">
                                        <note xml:id="note-L36F1" dur="8" oct="2" pname="b" accid.ges="n" />
                                        <note xml:id="note-L37F1" dur="8" oct="2" pname="a" accid.ges="n" />
                                    </beam>
                                    <note xml:id="note-L38F1" dur="4" oct="2" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000164147365" n="4">
                            <staff xml:id="staff-000000098613770" n="1">
                                <!-- kern: =4  2a;  4b  =5 -->
                                <layer xml:id="layer-000000025122792" n="1">
                                    <note xml:id="note-L40F4" dur="2" fermata="above" oct="4" pname="a" accid.ges="n" />
                                    <note xml:id="note-L41F4" dur="4" oct="4" pname="b" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000188505361" n="2">
                                <!-- kern: =4  2f#;  4g  =5 -->
                                <layer xml:id="layer-000000155740944" n="1">
                                    <note xml:id="note-L40F3" dur="2" fermata="above" oct="4" pname="f" accid.ges="s" />
                                    <note xml:id="note-L41F3" dur="4" oct="4" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000026986311" n="3">
                                <!-- kern: =4  2d;  4d  =5 -->
                                <layer xml:id="layer-000000102824283" n="1">
                                    <note xml:id="note-L40F2" dur="2" fermata="above" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L41F2" dur="4" oct="4" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000010389453" n="4">
                                <!-- kern: =4  2D;  4GG  =5 -->
                                <layer xml:id="layer-000000184014175" n="1">
                                    <note xml:id="note-L40F1" dur="2" fermata="above" oct="3" pname="d" accid.ges="n" />
                                    <note xml:id="note-L41F1" dur="4" oct="2" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000086864194" n="5">
                            <staff xml:id="staff-000000100728233" n="1">
                                <!-- kern: =5  2dd  4cc  =6 -->
                                <layer xml:id="layer-000000196410953" n="1">
                                    <note xml:id="note-L43F4" dur="2" oct="5" pname="d" accid.ges="n" />
                                    <note xml:id="note-L45F4" dur="4" oct="5" pname="c" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000078058143" n="2">
                                <!-- kern: =5  4d  4e  4f#  =6 -->
                                <layer xml:id="layer-000000166562528" n="1">
                                    <note xml:id="note-L43F3" dur="4" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L44F3" dur="4" oct="4" pname="e" accid.ges="n" />
                                    <note xml:id="note-L45F3" dur="4" oct="4" pname="f" accid.ges="s" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000025449448" n="3">
                                <!-- kern: =5  4A  4B  4c  =6 -->
                                <layer xml:id="layer-000000069649857" n="1">
                                    <note xml:id="note-L43F2" dur="4" oct="3" pname="a" accid.ges="n" />
                                    <note xml:id="note-L44F2" dur="4" oct="3" pname="b" accid.ges="n" />
                                    <note xml:id="note-L45F2" dur="4" oct="4" pname="c" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000164890183" n="4">
                                <!-- kern: =5  4FF#  4GG  4AA  =6 -->
                                <layer xml:id="layer-000000101714255" n="1">
                                    <note xml:id="note-L43F1" dur="4" oct="2" pname="f" accid.ges="s" />
                                    <note xml:id="note-L44F1" dur="4" oct="2" pname="g" accid.ges="n" />
                                    <note xml:id="note-L45F1" dur="4" oct="2" pname="a" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000043186700" n="6">
                            <staff xml:id="staff-000000025293706" n="1">
                                <!-- kern: =6  4b  2a  =7 -->
                                <layer xml:id="layer-000000201289957" n="1">
                                    <note xml:id="note-L47F4" dur="4" oct="4" pname="b" accid.ges="n" />
                                    <note xml:id="note-L48F4" dur="2" oct="4" pname="a" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000124303000" n="2">
                                <!-- kern: =6  2g  4f#  =7 -->
                                <layer xml:id="layer-000000196305871" n="1">
                                    <note xml:id="note-L47F3" dur="2" oct="4" pname="g" accid.ges="n" />
                                    <note xml:id="note-L49F3" dur="4" oct="4" pname="f" accid.ges="s" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000088440963" n="3">
                                <!-- kern: =6  4d  4e  8dL  8cJ  =7 -->
                                <layer xml:id="layer-000000021938450" n="1">
                                    <note xml:id="note-L47F2" dur="4" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L48F2" dur="4" oct="4" pname="e" accid.ges="n" />
                                    <beam xml:id="beam-000000130469116">
                                        <note xml:id="note-L49F2" dur="8" oct="4" pname="d" accid.ges="n" />
                                        <note xml:id="note-L50F2" dur="8" oct="4" pname="c" accid.ges="n" />
                                    </beam>
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000153838094" n="4">
                                <!-- kern: =6  4BB  4C  4D  =7 -->
                                <layer xml:id="layer-000000125333075" n="1">
                                    <note xml:id="note-L47F1" dur="4" oct="2" pname="b" accid.ges="n" />
                                    <note xml:id="note-L48F1" dur="4" oct="3" pname="c" accid.ges="n" />
                                    <note xml:id="note-L49F1" dur="4" oct="3" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000008969300" n="7" right="rptend">
                            <staff xml:id="staff-000000119095224" n="1">
                                <!-- kern: =7  2g;  =:|! -->
                                <layer xml:id="layer-000000060940882" n="1">
                                    <note xml:id="note-L52F4" dur="2" fermata="above" oct="4" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000178679167" n="2">
                                <!-- kern: =7  2d;  =:|! -->
                                <layer xml:id="layer-000000111843634" n="1">
                                    <note xml:id="note-L52F3" dur="2" fermata="above" oct="4" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000019636207" n="3">
                                <!-- kern: =7  2B;  =:|! -->
                                <layer xml:id="layer-000000130054578" n="1">
                                    <note xml:id="note-L52F2" dur="2" fermata="above" oct="3" pname="b" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000172254634" n="4">
                                <!-- kern: =7  2GG;  =:|! -->
                                <layer xml:id="layer-000000173147321" n="1">
                                    <note xml:id="note-L52F1" dur="2" fermata="above" oct="2" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000086776760">
                            <staff xml:id="staff-000000149713746" n="1">
                                <!-- kern: =:|!  *>B  4b  =8 -->
                                <layer xml:id="layer-000000115220610" n="1">
                                    <note xml:id="note-L55F4" dur="4" oct="4" pname="b" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000032339832" n="2">
                                <!-- kern: =:|!  *>B  [4g  =8 -->
                                <layer xml:id="layer-000000013508512" n="1">
                                    <note xml:id="note-L55F3" dur="4" oct="4" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000007447049" n="3">
                                <!-- kern: =:|!  *>B  4d  =8 -->
                                <layer xml:id="layer-000000192383222" n="1">
                                    <note xml:id="note-L55F2" dur="4" oct="4" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000179004287" n="4">
                                <!-- kern: =:|!  *>B  4GG  =8 -->
                                <layer xml:id="layer-000000023385018" n="1">
                                    <note xml:id="note-L55F1" dur="4" oct="2" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <tie xml:id="tie-000000056251850" startid="#note-L55F3" endid="#note-L57F3" />
                        </measure>
                        <measure xml:id="measure-000000206208347" n="8">
                            <staff xml:id="staff-000000033923147" n="1">
                                <!-- kern: =8  4b  4cc  4dd  =9 -->
                                <layer xml:id="layer-000000082760990" n="1">
                                    <note xml:id="note-L57F4" dur="4" oct="4" pname="b" accid.ges="n" />
                                    <note xml:id="note-L59F4" dur="4" oct="5" pname="c" accid.ges="n" />
                                    <note xml:id="note-L61F4" dur="4" oct="5" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000204175076" n="2">
                                <!-- kern: =8  8gL]  8f#J  8eL  8f#J  [4g  =9 -->
                                <layer xml:id="layer-000000041253819" n="1">
                                    <beam xml:id="beam-000000145226446">
                                        <note xml:id="note-L57F3" dur="8" oct="4" pname="g" accid.ges="n" />
                                        <note xml:id="note-L58F3" dur="8" oct="4" pname="f" accid.ges="s" />
                                    </beam>
                                    <beam xml:id="beam-000000116541196">
                                        <note xml:id="note-L59F3" dur="8" oct="4" pname="e" accid.ges="n" />
                                        <note xml:id="note-L60F3" dur="8" oct="4" pname="f" accid.ges="s" />
                                    </beam>
                                    <note xml:id="note-L61F3" dur="4" oct="4" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000106392874" n="3">
                                <!-- kern: =8  4d  4c  8BL  8AJ  =9 -->
                                <layer xml:id="layer-000000105745587" n="1">
                                    <note xml:id="note-L57F2" dur="4" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L59F2" dur="4" oct="4" pname="c" accid.ges="n" />
                                    <beam xml:id="beam-000000134259633">
                                        <note xml:id="note-L61F2" dur="8" oct="3" pname="b" accid.ges="n" />
                                        <note xml:id="note-L62F2" dur="8" oct="3" pname="a" accid.ges="n" />
                                    </beam>
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000150163952" n="4">
                                <!-- kern: =8  4GG  4AA  4BB  =9 -->
                                <layer xml:id="layer-000000113803843" n="1">
                                    <note xml:id="note-L57F1" dur="4" oct="2" pname="g" accid.ges="n" />
                                    <note xml:id="note-L59F1" dur="4" oct="2" pname="a" accid.ges="n" />
                                    <note xml:id="note-L61F1" dur="4" oct="2" pname="b" accid.ges="n" />
                                </layer>
                            </staff>
                            <tie xml:id="tie-000000109780679" startid="#note-L61F3" endid="#note-L64F3" />
                        </measure>
                        <measure xml:id="measure-000000056694863" n="9">
                            <staff xml:id="staff-000000205732325" n="1">
                                <!-- kern: =9  4.dd  8cc  4b  =10 -->
                                <layer xml:id="layer-000000148365456" n="1">
                                    <note xml:id="note-L64F4" dots="1" dur="4" oct="5" pname="d" accid.ges="n" />
                                    <note xml:id="note-L67F4" dur="8" oct="5" pname="c" accid.ges="n" />
                                    <note xml:id="note-L68F4" dur="4" oct="4" pname="b" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000079779685" n="2">
                                <!-- kern: =9  8gL]  8aJ  8gL  8f#J  4g  =10 -->
                                <layer xml:id="layer-000000010474888" n="1">
                                    <beam xml:id="beam-000000172543691">
                                        <note xml:id="note-L64F3" dur="8" oct="4" pname="g" accid.ges="n" />
                                        <note xml:id="note-L65F3" dur="8" oct="4" pname="a" accid.ges="n" />
                                    </beam>
                                    <beam xml:id="beam-000000031995248">
                                        <note xml:id="note-L66F3" dur="8" oct="4" pname="g" accid.ges="n" />
                                        <note xml:id="note-L67F3" dur="8" oct="4" pname="f" accid.ges="s" />
                                    </beam>
                                    <note xml:id="note-L68F3" dur="4" oct="4" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000183140099" n="3">
                                <!-- kern: =9  8BL  8cJ  4d  4d  =10 -->
                                <layer xml:id="layer-000000097600002" n="1">
                                    <beam xml:id="beam-000000115235800">
                                        <note xml:id="note-L64F2" dur="8" oct="3" pname="b" accid.ges="n" />
                                        <note xml:id="note-L65F2" dur="8" oct="4" pname="c" accid.ges="n" />
                                    </beam>
                                    <note xml:id="note-L66F2" dur="4" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L68F2" dur="4" oct="4" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000047336009" n="4">
                                <!-- kern: =9  4.BB  8AA  4GG  =10 -->
                                <layer xml:id="layer-000000164951270" n="1">
                                    <note xml:id="note-L64F1" dots="1" dur="4" oct="2" pname="b" accid.ges="n" />
                                    <note xml:id="note-L67F1" dur="8" oct="2" pname="a" accid.ges="n" />
                                    <note xml:id="note-L68F1" dur="4" oct="2" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000144945686" n="10">
                            <staff xml:id="staff-000000053025827" n="1">
                                <!-- kern: =10  2a;  4g  =11 -->
                                <layer xml:id="layer-000000105011948" n="1">
                                    <note xml:id="note-L70F4" dur="2" fermata="above" oct="4" pname="a" accid.ges="n" />
                                    <note xml:id="note-L71F4" dur="4" oct="4" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000214109248" n="2">
                                <!-- kern: =10  2f#;  4e  =11 -->
                                <layer xml:id="layer-000000173239086" n="1">
                                    <note xml:id="note-L70F3" dur="2" fermata="above" oct="4" pname="f" accid.ges="s" />
                                    <note xml:id="note-L71F3" dur="4" oct="4" pname="e" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000210543987" n="3">
                                <!-- kern: =10  2d;  4B  =11 -->
                                <layer xml:id="layer-000000211070429" n="1">
                                    <note xml:id="note-L70F2" dur="2" fermata="above" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L71F2" dur="4" oct="3" pname="b" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000203996112" n="4">
                                <!-- kern: =10  2D;  [4E  =11 -->
                                <layer xml:id="layer-000000184574967" n="1">
                                    <note xml:id="note-L70F1" dur="2" fermata="above" oct="3" pname="d" accid.ges="n" />
                                    <note xml:id="note-L71F1" dur="4" oct="3" pname="e" accid.ges="n" />
                                </layer>
                            </staff>
                            <tie xml:id="tie-000000108033507" startid="#note-L71F1" endid="#note-L73F1" />
                        </measure>
                        <measure xml:id="measure-000000029327933" n="11">
                            <staff xml:id="staff-000000121388848" n="1">
                                <!-- kern: =11  2b  4cc  =12 -->
                                <layer xml:id="layer-000000105732502" n="1">
                                    <note xml:id="note-L73F4" dur="2" oct="4" pname="b" accid.ges="n" />
                                    <note xml:id="note-L76F4" dur="4" oct="5" pname="c" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000072903686" n="2">
                                <!-- kern: =11  4e  8f#L  8gJ  4a  =12 -->
                                <layer xml:id="layer-000000143620682" n="1">
                                    <note xml:id="note-L73F3" dur="4" oct="4" pname="e" accid.ges="n" />
                                    <beam xml:id="beam-000000118212163">
                                        <note xml:id="note-L74F3" dur="8" oct="4" pname="f" accid.ges="s" />
                                        <note xml:id="note-L75F3" dur="8" oct="4" pname="g" accid.ges="n" />
                                    </beam>
                                    <note xml:id="note-L76F3" dur="4" oct="4" pname="a" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000152829988" n="3">
                                <!-- kern: =11  4G  4B  4e  =12 -->
                                <layer xml:id="layer-000000198645094" n="1">
                                    <note xml:id="note-L73F2" dur="4" oct="3" pname="g" accid.ges="n" />
                                    <note xml:id="note-L74F2" dur="4" oct="3" pname="b" accid.ges="n" />
                                    <note xml:id="note-L76F2" dur="4" oct="4" pname="e" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000008426542" n="4">
                                <!-- kern: =11  4E]  4D  4C  =12 -->
                                <layer xml:id="layer-000000148275122" n="1">
                                    <note xml:id="note-L73F1" dur="4" oct="3" pname="e" accid.ges="n" />
                                    <note xml:id="note-L74F1" dur="4" oct="3" pname="d" accid.ges="n" />
                                    <note xml:id="note-L76F1" dur="4" oct="3" pname="c" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000196013661" n="12">
                            <staff xml:id="staff-000000097723323" n="1">
                                <!-- kern: =12  2dd  4cc  =13 -->
                                <layer xml:id="layer-000000050557961" n="1">
                                    <note xml:id="note-L78F4" dur="2" oct="5" pname="d" accid.ges="n" />
                                    <note xml:id="note-L81F4" dur="4" oct="5" pname="c" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000040401477" n="2">
                                <!-- kern: =12  4a  4.g  8f#  =13 -->
                                <layer xml:id="layer-000000085582913" n="1">
                                    <note xml:id="note-L78F3" dur="4" oct="4" pname="a" accid.ges="n" />
                                    <note xml:id="note-L79F3" dots="1" dur="4" oct="4" pname="g" accid.ges="n" />
                                    <note xml:id="note-L82F3" dur="8" oct="4" pname="f" accid.ges="s" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000208051525" n="3">
                                <!-- kern: =12  2d  4d  =13 -->
                                <layer xml:id="layer-000000010228869" n="1">
                                    <note xml:id="note-L78F2" dur="2" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L81F2" dur="4" oct="4" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000189120075" n="4">
                                <!-- kern: =12  4.BB  8C  4D  =13 -->
                                <layer xml:id="layer-000000073526508" n="1">
                                    <note xml:id="note-L78F1" dots="1" dur="4" oct="2" pname="b" accid.ges="n" />
                                    <note xml:id="note-L80F1" dur="8" oct="3" pname="c" accid.ges="n" />
                                    <note xml:id="note-L81F1" dur="4" oct="3" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000085760967" n="13">
                            <staff xml:id="staff-000000184783564" n="1">
                                <!-- kern: =13  2.b  =14 -->
                                <layer xml:id="layer-000000111132595" n="1">
                                    <note xml:id="note-L84F4" dots="1" dur="2" oct="4" pname="b" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000181259902" n="2">
                                <!-- kern: =13  2g  4f  =14 -->
                                <layer xml:id="layer-000000090496091" n="1">
                                    <note xml:id="note-L84F3" dur="2" oct="4" pname="g" accid.ges="n" />
                                    <note xml:id="note-L87F3" dur="4" accid="n" oct="4" pname="f" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000014871279" n="3">
                                <!-- kern: =13  2.d  =14 -->
                                <layer xml:id="layer-000000109112012" n="1">
                                    <note xml:id="note-L84F2" dots="1" dur="2" oct="4" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000189251452" n="4">
                                <!-- kern: =13  8GGL  8AAJ  4BB  4GG  =14 -->
                                <layer xml:id="layer-000000039364691" n="1">
                                    <beam xml:id="beam-000000177400041">
                                        <note xml:id="note-L84F1" dur="8" oct="2" pname="g" accid.ges="n" />
                                        <note xml:id="note-L85F1" dur="8" oct="2" pname="a" accid.ges="n" />
                                    </beam>
                                    <note xml:id="note-L86F1" dur="4" oct="2" pname="b" accid.ges="n" />
                                    <note xml:id="note-L87F1" dur="4" oct="2" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000071538306" n="14">
                            <staff xml:id="staff-000000035640886" n="1">
                                <!-- kern: =14  2g;  4b  =15 -->
                                <layer xml:id="layer-000000105717762" n="1">
                                    <note xml:id="note-L89F4" dur="2" fermata="above" oct="4" pname="g" accid.ges="n" />
                                    <note xml:id="note-L90F4" dur="4" oct="4" pname="b" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000083188576" n="2">
                                <!-- kern: =14  2e;  4g  =15 -->
                                <layer xml:id="layer-000000047743067" n="1">
                                    <note xml:id="note-L89F3" dur="2" fermata="above" oct="4" pname="e" accid.ges="n" />
                                    <note xml:id="note-L90F3" dur="4" oct="4" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000138551038" n="3">
                                <!-- kern: =14  2c;  4d  =15 -->
                                <layer xml:id="layer-000000049637062" n="1">
                                    <note xml:id="note-L89F2" dur="2" fermata="above" oct="4" pname="c" accid.ges="n" />
                                    <note xml:id="note-L90F2" dur="4" oct="4" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000110785627" n="4">
                                <!-- kern: =14  2C;  4GG  =15 -->
                                <layer xml:id="layer-000000006716258" n="1">
                                    <note xml:id="note-L89F1" dur="2" fermata="above" oct="3" pname="c" accid.ges="n" />
                                    <note xml:id="note-L90F1" dur="4" oct="2" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000035898552" n="15">
                            <staff xml:id="staff-000000191650024" n="1">
                                <!-- kern: =15  2dd  4cc  =16 -->
                                <layer xml:id="layer-000000043072698" n="1">
                                    <note xml:id="note-L92F4" dur="2" oct="5" pname="d" accid.ges="n" />
                                    <note xml:id="note-L96F4" dur="4" oct="5" pname="c" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000051239636" n="2">
                                <!-- kern: =15  4.a  8g  4f#  =16 -->
                                <layer xml:id="layer-000000107587563" n="1">
                                    <note xml:id="note-L92F3" dots="1" dur="4" oct="4" pname="a" accid.ges="n" />
                                    <note xml:id="note-L95F3" dur="8" oct="4" pname="g" accid.ges="n" />
                                    <note xml:id="note-L96F3" dur="4" oct="4" pname="f" accid.ges="s" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000043623166" n="3">
                                <!-- kern: =15  8dL  8cJ  4B  4c  =16 -->
                                <layer xml:id="layer-000000100357202" n="1">
                                    <beam xml:id="beam-000000069846063">
                                        <note xml:id="note-L92F2" dur="8" oct="4" pname="d" accid.ges="n" />
                                        <note xml:id="note-L93F2" dur="8" oct="4" pname="c" accid.ges="n" />
                                    </beam>
                                    <note xml:id="note-L94F2" dur="4" oct="3" pname="b" accid.ges="n" />
                                    <note xml:id="note-L96F2" dur="4" oct="4" pname="c" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000023640599" n="4">
                                <!-- kern: =15  4FF#  4GG  4AA  =16 -->
                                <layer xml:id="layer-000000003357364" n="1">
                                    <note xml:id="note-L92F1" dur="4" oct="2" pname="f" accid.ges="s" />
                                    <note xml:id="note-L94F1" dur="4" oct="2" pname="g" accid.ges="n" />
                                    <note xml:id="note-L96F1" dur="4" oct="2" pname="a" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000071393235" n="16">
                            <staff xml:id="staff-000000073324782" n="1">
                                <!-- kern: =16  2b  4a  =17 -->
                                <layer xml:id="layer-000000009617001" n="1">
                                    <note xml:id="note-L98F4" dur="2" oct="4" pname="b" accid.ges="n" />
                                    <note xml:id="note-L100F4" dur="4" oct="4" pname="a" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000143507871" n="2">
                                <!-- kern: =16  2g  [4f#  =17 -->
                                <layer xml:id="layer-000000141382921" n="1">
                                    <note xml:id="note-L98F3" dur="2" oct="4" pname="g" accid.ges="n" />
                                    <note xml:id="note-L100F3" dur="4" oct="4" pname="f" accid.ges="s" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000097903951" n="3">
                                <!-- kern: =16  2d  8dL  8cJ  =17 -->
                                <layer xml:id="layer-000000170862790" n="1">
                                    <note xml:id="note-L98F2" dur="2" oct="4" pname="d" accid.ges="n" />
                                    <beam xml:id="beam-000000138827849">
                                        <note xml:id="note-L100F2" dur="8" oct="4" pname="d" accid.ges="n" />
                                        <note xml:id="note-L101F2" dur="8" oct="4" pname="c" accid.ges="n" />
                                    </beam>
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000069739167" n="4">
                                <!-- kern: =16  4BB  4GG  4D  =17 -->
                                <layer xml:id="layer-000000167015556" n="1">
                                    <note xml:id="note-L98F1" dur="4" oct="2" pname="b" accid.ges="n" />
                                    <note xml:id="note-L99F1" dur="4" oct="2" pname="g" accid.ges="n" />
                                    <note xml:id="note-L100F1" dur="4" oct="3" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <tie xml:id="tie-000000021981905" startid="#note-L100F3" endid="#note-L103F3" />
                        </measure>
                        <measure xml:id="measure-000000029470614" n="17">
                            <staff xml:id="staff-000000182774291" n="1">
                                <!-- kern: =17  4.g  8a  4b  =18 -->
                                <layer xml:id="layer-000000170434845" n="1">
                                    <note xml:id="note-L103F4" dots="1" dur="4" oct="4" pname="g" accid.ges="n" />
                                    <note xml:id="note-L106F4" dur="8" oct="4" pname="a" accid.ges="n" />
                                    <note xml:id="note-L107F4" dur="4" oct="4" pname="b" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000126900168" n="2">
                                <!-- kern: =17  8f#L]  8eJ  8eL  8f#J  4g  =18 -->
                                <layer xml:id="layer-000000022597404" n="1">
                                    <beam xml:id="beam-000000119475364">
                                        <note xml:id="note-L103F3" dur="8" oct="4" pname="f" accid.ges="s" />
                                        <note xml:id="note-L104F3" dur="8" oct="4" pname="e" accid.ges="n" />
                                    </beam>
                                    <beam xml:id="beam-000000174498542">
                                        <note xml:id="note-L105F3" dur="8" oct="4" pname="e" accid.ges="n" />
                                        <note xml:id="note-L106F3" dur="8" oct="4" pname="f" accid.ges="s" />
                                    </beam>
                                    <note xml:id="note-L107F3" dur="4" oct="4" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000145117101" n="3">
                                <!-- kern: =17  4B  4c  4d  =18 -->
                                <layer xml:id="layer-000000064004995" n="1">
                                    <note xml:id="note-L103F2" dur="4" oct="3" pname="b" accid.ges="n" />
                                    <note xml:id="note-L105F2" dur="4" oct="4" pname="c" accid.ges="n" />
                                    <note xml:id="note-L107F2" dur="4" oct="4" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000085950374" n="4">
                                <!-- kern: =17  8EL  8D  8C  8BB  8AA  8GGJ  =18 -->
                                <layer xml:id="layer-000000180323696" n="1">
                                    <beam xml:id="beam-000000171447790">
                                        <note xml:id="note-L103F1" dur="8" oct="3" pname="e" accid.ges="n" />
                                        <note xml:id="note-L104F1" dur="8" oct="3" pname="d" accid.ges="n" />
                                        <note xml:id="note-L105F1" dur="8" oct="3" pname="c" accid.ges="n" />
                                        <note xml:id="note-L106F1" dur="8" oct="2" pname="b" accid.ges="n" />
                                        <note xml:id="note-L107F1" dur="8" oct="2" pname="a" accid.ges="n" />
                                        <note xml:id="note-L108F1" dur="8" oct="2" pname="g" accid.ges="n" />
                                    </beam>
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000010510043" n="18">
                            <staff xml:id="staff-000000087137855" n="1">
                                <!-- kern: =18  2a;  4b  =19 -->
                                <layer xml:id="layer-000000160495299" n="1">
                                    <note xml:id="note-L110F4" dur="2" fermata="above" oct="4" pname="a" accid.ges="n" />
                                    <note xml:id="note-L111F4" dur="4" oct="4" pname="b" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000156836818" n="2">
                                <!-- kern: =18  2f#;  4g  =19 -->
                                <layer xml:id="layer-000000139686053" n="1">
                                    <note xml:id="note-L110F3" dur="2" fermata="above" oct="4" pname="f" accid.ges="s" />
                                    <note xml:id="note-L111F3" dur="4" oct="4" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000134980201" n="3">
                                <!-- kern: =18  2d;  4d  =19 -->
                                <layer xml:id="layer-000000021258121" n="1">
                                    <note xml:id="note-L110F2" dur="2" fermata="above" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L111F2" dur="4" oct="4" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000010525281" n="4">
                                <!-- kern: =18  2D;  [4G  =19 -->
                                <layer xml:id="layer-000000154512006" n="1">
                                    <note xml:id="note-L110F1" dur="2" fermata="above" oct="3" pname="d" accid.ges="n" />
                                    <note xml:id="note-L111F1" dur="4" oct="3" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <tie xml:id="tie-000000102818642" startid="#note-L111F1" endid="#note-L113F1" />
                        </measure>
                        <measure xml:id="measure-000000112080262" n="19">
                            <staff xml:id="staff-000000158554023" n="1">
                                <!-- kern: =19  2dd  4cc  =20 -->
                                <layer xml:id="layer-000000106093563" n="1">
                                    <note xml:id="note-L113F4" dur="2" oct="5" pname="d" accid.ges="n" />
                                    <note xml:id="note-L115F4" dur="4" oct="5" pname="c" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000005013721" n="2">
                                <!-- kern: =19  2a  8gL  8f#J  =20 -->
                                <layer xml:id="layer-000000172047053" n="1">
                                    <note xml:id="note-L113F3" dur="2" oct="4" pname="a" accid.ges="n" />
                                    <beam xml:id="beam-000000057024502">
                                        <note xml:id="note-L115F3" dur="8" oct="4" pname="g" accid.ges="n" />
                                        <note xml:id="note-L116F3" dur="8" oct="4" pname="f" accid.ges="s" />
                                    </beam>
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000084258288" n="3">
                                <!-- kern: =19  2d  4e  =20 -->
                                <layer xml:id="layer-000000024063787" n="1">
                                    <note xml:id="note-L113F2" dur="2" oct="4" pname="d" accid.ges="n" />
                                    <note xml:id="note-L115F2" dur="4" oct="4" pname="e" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000078331264" n="4">
                                <!-- kern: =19  4G]  4F#  [4E  =20 -->
                                <layer xml:id="layer-000000072696422" n="1">
                                    <note xml:id="note-L113F1" dur="4" oct="3" pname="g" accid.ges="n" />
                                    <note xml:id="note-L114F1" dur="4" oct="3" pname="f" accid.ges="s" />
                                    <note xml:id="note-L115F1" dur="4" oct="3" pname="e" accid.ges="n" />
                                </layer>
                            </staff>
                            <tie xml:id="tie-000000203630638" startid="#note-L115F1" endid="#note-L118F1" />
                        </measure>
                        <measure xml:id="measure-000000196765997" n="20">
                            <staff xml:id="staff-000000124557313" n="1">
                                <!-- kern: =20  4b  2a  =21 -->
                                <layer xml:id="layer-000000129998904" n="1">
                                    <note xml:id="note-L118F4" dur="4" oct="4" pname="b" accid.ges="n" />
                                    <note xml:id="note-L120F4" dur="2" oct="4" pname="a" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000067712260" n="2">
                                <!-- kern: =20  2g  4f#  =21 -->
                                <layer xml:id="layer-000000042356655" n="1">
                                    <note xml:id="note-L118F3" dur="2" oct="4" pname="g" accid.ges="n" />
                                    <note xml:id="note-L121F3" dur="4" oct="4" pname="f" accid.ges="s" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000088374316" n="3">
                                <!-- kern: =20  2e  8dL  8cJ  =21 -->
                                <layer xml:id="layer-000000113522691" n="1">
                                    <note xml:id="note-L118F2" dur="2" oct="4" pname="e" accid.ges="n" />
                                    <beam xml:id="beam-000000207412849">
                                        <note xml:id="note-L121F2" dur="8" oct="4" pname="d" accid.ges="n" />
                                        <note xml:id="note-L122F2" dur="8" oct="4" pname="c" accid.ges="n" />
                                    </beam>
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000107452192" n="4">
                                <!-- kern: =20  8EL]  8DJ  4C  4D  =21 -->
                                <layer xml:id="layer-000000101266394" n="1">
                                    <beam xml:id="beam-000000103505475">
                                        <note xml:id="note-L118F1" dur="8" oct="3" pname="e" accid.ges="n" />
                                        <note xml:id="note-L119F1" dur="8" oct="3" pname="d" accid.ges="n" />
                                    </beam>
                                    <note xml:id="note-L120F1" dur="4" oct="3" pname="c" accid.ges="n" />
                                    <note xml:id="note-L121F1" dur="4" oct="3" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                        <measure xml:id="measure-000000159098842" n="21" right="end">
                            <staff xml:id="staff-000000101952950" n="1">
                                <!-- kern: =21  2g;  == -->
                                <layer xml:id="layer-000000109403300" n="1">
                                    <note xml:id="note-L124F4" dur="2" fermata="above" oct="4" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000046035431" n="2">
                                <!-- kern: =21  2d;  == -->
                                <layer xml:id="layer-000000136004763" n="1">
                                    <note xml:id="note-L124F3" dur="2" fermata="above" oct="4" pname="d" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000193887571" n="3">
                                <!-- kern: =21  2B;  == -->
                                <layer xml:id="layer-000000015431313" n="1">
                                    <note xml:id="note-L124F2" dur="2" fermata="above" oct="3" pname="b" accid.ges="n" />
                                </layer>
                            </staff>
                            <staff xml:id="staff-000000076721519" n="4">
                                <!-- kern: =21  2GG;  == -->
                                <layer xml:id="layer-000000126889568" n="1">
                                    <note xml:id="note-L124F1" dur="2" fermata="above" oct="2" pname="g" accid.ges="n" />
                                </layer>
                            </staff>
                        </measure>
                    </section>
                </score>
            </mdiv>
        </body>
    </music>
</mei>
rettinghaus commented 8 years ago

Just noticed: values for @role should be lower case

craigsapp commented 8 years ago

When I allowed <app> at the given point in the code of measure.cpp in my local copy of verovio, the file was processed without problems. I could submit a branch or pull request if you like to allow <app>s at that point. Here is the diff to see what was changed:

diff --git a/include/vrv/system.h b/include/vrv/system.h
index 8de9092..0a3caa3 100644
--- a/include/vrv/system.h
+++ b/include/vrv/system.h
@@ -10,6 +10,7 @@

 #include "aligner.h"
 #include "drawinginterface.h"
+#include "editorial.h"
 #include "object.h"

 namespace vrv {
@@ -51,6 +52,7 @@ public:
     void AddEnding(Ending *ending);
     void AddMeasure(Measure *measure);
     void AddScoreDef(ScoreDef *scoreDef);
+    void AddApp(App *app);
     ///@}

     /**
diff --git a/src/measure.cpp b/src/measure.cpp
index 5db9200..ee2307f 100644
--- a/src/measure.cpp
+++ b/src/measure.cpp
@@ -9,6 +9,8 @@

 //----------------------------------------------------------------------------

+#include <iostream>
+
 #include <assert.h>
 #include <math.h>

@@ -426,7 +428,10 @@ int Measure::CastOffSystems(FunctorParams *functorParams)
             params->m_currentSystem->AddEnding(dynamic_cast<Ending *>(*iter));
         else if ((*iter)->Is() == SCOREDEF)
             params->m_currentSystem->AddScoreDef(dynamic_cast<ScoreDef *>(*iter));
+        else if ((*iter)->Is() == APP)
+            params->m_currentSystem->AddApp(dynamic_cast<App *>(*iter));
         else {
+            std::cerr << "Error: Unknown element: " << (*iter)->Is() << std::endl;
             assert(false);
         }
     }
diff --git a/src/system.cpp b/src/system.cpp
index 15be727..a139a46 100644
--- a/src/system.cpp
+++ b/src/system.cpp
@@ -97,6 +97,13 @@ void System::AddScoreDef(ScoreDef *scoreDef)
     Modify();
 }

+void System::AddApp(App *app)
+{
+    app->SetParent(this);
+    m_children.push_back(app);
+    Modify();
+}
+
craigsapp commented 8 years ago

@rettinghaus: Are @role values supposed to be lowercase, or are they required to be lowercase?

I was using this webpage as the "authority file" (but this fact is not listed in the MEI data, just in the source code):

http://www.loc.gov/marc/relators/relaterm.html

For my translation, the capitalization has a meaning: If it is captialized then the role is listed in the above linked list. If it is not capitalized, then the role is not in the linked list, and so less standardized.

lpugin commented 8 years ago

Fixed with https://github.com/rism-ch/verovio/commit/10b7b2b4f76612309fa558fa14fbe11eabd31ae2 The check for editorial elements was using a single ID instead of the range (via the dedicated method)

lpugin commented 8 years ago

@craigsapp BTW, all the methods for adding children (e.g., AddEditorialElement) should be replace by a virtual AddChild on Object that would check in the overridden what is allowed or not. This will break you importer but will be easy to fix. Do you prefer me to do it now before the humdrum branch is merged?

craigsapp commented 8 years ago

Yes, you can switch to the new methods, and I will fix in the Humdrum importer.

rettinghaus commented 8 years ago

@craigsapp I take it back. I thought they should be lower case, but the guidelines just recommend to

Use a standard value whenever possible

craigsapp commented 8 years ago

@rettinghaus OK, but you can suggest how I can make it better to indicate the authority. I think there was a url or some other attribute field in the element for the standard being used, but that would be a bit cumbersome to repeat for each person. Perhaps there is a cleaner way, but I chose capital/lower case as an informal way to distinguish between standardized and unstandardized roles.

rettinghaus commented 8 years ago

@craigsapp there is basically no attribute to give hints for values in another attribute. The @authority just gives more info on the text(). To distinguish in such a way you would make a statement in <encodingDesc>. Anyway I would propose to use just standardized roles for @role (lower case) and put non-standard role values in @type. (at least this would be a 'cleaner way' ;-) )