Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scoring up implementation as functor #3800

Draft
wants to merge 105 commits into
base: develop
Choose a base branch
from

Conversation

martha-thomae
Copy link
Contributor

@martha-thomae martha-thomae commented Sep 25, 2024

Assumption: The tempus is perfect (this is, breves are equal to three semibreves by default) and the other mensuration levels are imperfect. After having this working, I will move to the other mensuration levels.

This pull request includes functions that:

  • SubdivideSeq: Divide the voice into sequences of notes bounded by notes greater or equal to the note that is supposed to be perfect (in this case, based on the assumption shown above, the sequences are bounded by notes equal to a breve or longer).
  • FindDurQuals: Takes each of these sequences, takes groups of notes equivalent to three semibreves (or a perfect breve), and, based on the remainder of these groups, applies the principles of imperfection and alteration by calling the appropriate functions.
  • ImperfectionAPP: Applies imperfection a parte post (imperfection of a note by the notes that follow it) and returns true, unless an exception is found, then it returns false and no modification happens.
  • ImperfectionAPA: Applies imperfection a parte ante (imperfection of a note by the notes that precede it) and returns true, unless an exception is found, then it returns false and no modification happens.
  • Alteration: Applies alteration and returns true, unless an exception, then it returns false and no modification happens.
  • LeavePerfect: It returns 'true' for now.
  • GetDurNumberValue: It returns the value of a note in minims.

- scoringupfunctor is based on midifunctor
- scoringupfunctor header has an abstract base implementation, which allows for line 1395 in doc.cpp to not give the error of 'ScoringUpFunctor is an abstract class'
for durs of notes and rests, and tempus for mensur.
Added a provisional line in iomei.cpp 'm_doc->ScoringUpDoc()' to test the ScoringUpDoc and the related scoringup functor. Needed to remove an 'assert' in layer.cpp for things to run. And then add some debug messages for note and rests (and mensur) that are working good.
Still have to fix the 'ScoringUpFunctor::GetLayerElements', probably make it a private method
these are meant to be processed later to find the durQuality of the notes
This function sums the durational values of the notes smaller than the breve, for which it calls another function that converts the 'dur' values into the equivalent 'durational numerical values' with a switch
…rquality

Temporary solution: define another vector for notes and another for rests that relate the ids to the actual note or rest objects
The right note is found, and the durquality seems to change, but the chagnes are not stored, which makes me think that I should use a pointer to the note rather than a copy
Seemed to work within the imperfection and alteration function (based on the console), but some other function that calls them might be causing an issue
For the latter (the pointer issue), I needed to use Note* and Rest* within the map (or pairs that I used before).
…t function

Regarding the first point, the modification-related functions are the four mperfectionAPP, ImperfectionAPA, Alteration, and LeavePerfect, plus the functions that call them (FindDurQuals and EvalDotOfDiv). Regarding the second point, the GetValueUnit was dividing by one more level thant it should (as it was supposed to divide the middleSeq total by the smallerNoteLevel -not the boundUnit level)
Add support for perfect mensuration at simultaneous note levels

private:
// The current score time in the measure (incremented by each element)
double m_currentScoreTime;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure where you use this but you might want to change to Fraction introduced here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True, I am going to use this for adding the barlines automatically. Once the implementation of the scoring up is complete and correct, I will do the automatic barring stuff.

@martha-thomae
Copy link
Contributor Author

martha-thomae commented Oct 22, 2024

option

Add the --mensural-score-up boolean in the mensural option group (false by default). Start here and also add it in the implementation options.cpp file. This should be it.

Then you can check if the option is then. It would be best to call Doc::ScoreUpDoc from the Toolkit (and not from MEIInput. See this example in another branch I am working on.

Could we take a look at this together? I am almost finished with the main implementation of the scoring-up tool, and I have a few questions. Would it be ok if we have a meeting to look at those questions and to look at this to finish the implementation? Thank you!

  • Question 1: As you will see in the examples, I need to solve the issue of where I call the methods for doing the scoring up within the functor because right now the main function for this is workInMensur and it is run by VisitLayer when there is no content in the m_dursInVoiceSameMensur variable, which gets emptied at the end of VisitLayer. Therefore, the method workInMensur is never run for the last staff, which currently I am using as a reference (as you will see in the example files). So right now, it is not a big deal but I need to solve this in the future as I would like to run the workInMensur for all the staves in the "quasi-score."
  • Question 2 (less important): How to get the mensuration from <staffDef>? Right now, I am just using the <mensur> elements within <layer>, so I always have a <mensur> at the very beginning of the layer to define the mensuration of the voice.

If we could look at these last things together, @lpugin, that would be great! Thank you!

Next message will contain the examples :)

@martha-thomae
Copy link
Contributor Author

martha-thomae commented Oct 22, 2024

test data

You can post on example here. Eventually they should be added to the test-suite in mensural. The option can be set in extMeta. See this example

I am providing here some example files:

  1. Mensural Notation Basic Test Cases for the Principles of Imperfection and Alteration with tempus perfectum (i.e., breves perfect by default). The violet notes are the ones that are changed by the context (these are, imperfect breves and altered semibreves).

Quasi-score

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?><mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0">
   <meiHead>
      <fileDesc>
         <titleStmt>
            <title>Mensural Notation Test Cases - Rhythmic Interpretation</title>
         </titleStmt>
         <pubStmt/>
      </fileDesc>
   </meiHead>
   <music xml:id="mwsd8r01">
      <body xml:id="bti8j8i1">
         <mdiv xml:id="mhxokwe1">
            <score xml:id="s6zv1l8">
               <scoreDef xml:id="s9ril8p1">
                  <staffGrp xml:id="sjxiacd" n="1" symbol="bracket">
                     <staffDef xml:id="saqb8di2" clef.line="3" clef.shape="C" lines="5" modusmaior="2" modusminor="2" n="1" notationtype="mensural" prolatio="2" tempus="3">
                        <label xml:id="l9mlo7r2">1Sb-DEFAULT-ImpAPP</label>
                     </staffDef>
                     <staffDef xml:id="s9uqisd" clef.line="3" clef.shape="C" lines="5" modusmaior="2" modusminor="2" n="3" notationtype="mensural" prolatio="2" tempus="3">
                        <label xml:id="li3srd6">1Sb-EXCEPTION(dot.perf)-ImpAPA</label>
                     </staffDef>
                     <staffDef xml:id="svxtpe2" clef.line="3" clef.shape="C" lines="5" modusmaior="2" modusminor="2" n="5" notationtype="mensural" prolatio="2" tempus="3">
                        <label xml:id="l6efadl2">1Sb-EXCEPTION(shortstart)-ImpAPA</label>
                     </staffDef>
                     <staffDef xml:id="sspsxqs2" clef.line="3" clef.shape="C" lines="5" modusmaior="2" modusminor="2" n="7" notationtype="mensural" prolatio="2" tempus="3">
                        <label xml:id="l56o5rz2">2Sb-DEFAULT-Alt</label>
                     </staffDef>
                     <staffDef xml:id="sy5hz1a1" clef.line="3" clef.shape="C" lines="5" modusmaior="2" modusminor="2" n="9" notationtype="mensural" prolatio="2" tempus="3">
                        <label xml:id="lyedodm2">2Sb-EXCEPTION(dot.imp)-ImpAPPandAPA</label>
                     </staffDef>
                     <staffDef xml:id="swpeyjd1" clef.line="3" clef.shape="C" lines="5" modusmaior="2" modusminor="2" n="11" notationtype="mensural" prolatio="2" tempus="3">
                        <label xml:id="lho9u961">3Sb-DEFAULT-Regular</label>
                     </staffDef>
                     <staffDef xml:id="sgsh7lb" clef.line="3" clef.shape="C" lines="5" modusmaior="2" modusminor="2" n="13" notationtype="mensural" prolatio="2" tempus="3">
                        <label xml:id="llwpo4q2">3Sb-EXCEPTION(dot.imp)-ImpAPPandAlt</label>
                     </staffDef>
                     <staffDef xml:id="sgwkneq2" clef.line="3" clef.shape="C" lines="5" modusmaior="2" modusminor="2" n="15" notationtype="mensural" prolatio="2" tempus="3">
                        <label xml:id="ljs7kju2">4Sb-DEFAULT-ImpAPP</label>
                     </staffDef>
                     <staffDef xml:id="s23pfqs1" clef.line="3" clef.shape="C" lines="5" modusmaior="2" modusminor="2" n="17" notationtype="mensural" prolatio="2" tempus="3">
                        <label xml:id="lel0ewp2">4Sb-EXCEPTION(dot.perf)-ImpAPA</label>
                     </staffDef>
                     <staffDef xml:id="slax3aq1" clef.line="3" clef.shape="C" lines="5" modusmaior="2" modusminor="2" n="19" notationtype="mensural" prolatio="2" tempus="3">
                        <label xml:id="lj636v41">5Sb-DEFAULT-ImpAPPandAPA</label>
                     </staffDef>
                     <staffDef xml:id="skjmk23" clef.line="3" clef.shape="C" lines="5" modusmaior="2" modusminor="2" n="21" notationtype="mensural" prolatio="2" tempus="3">
                        <label xml:id="l8r3qcr2">5Sb-EXCEPTION(dot.perf)-Alt</label>
                     </staffDef>
                     <staffDef xml:id="szkypxt2" clef.line="3" clef.shape="C" lines="5" modusmaior="2" modusminor="2" n="23" notationtype="mensural" prolatio="2" tempus="3">
                        <label xml:id="la1rrzd1">6Sb-DEFAULT-ImpAPPandAlt</label>
                     </staffDef>
                     <staffDef xml:id="s31tmlh1" clef.line="3" clef.shape="C" lines="5" modusmaior="2" modusminor="2" n="25" notationtype="mensural" prolatio="2" tempus="3">
                        <label xml:id="lqvoa931">6Sb-EXCEPTION(dot.perf)-Regular</label>
                     </staffDef>
                     <staffDef xml:id="s7z6b8d1" clef.line="3" clef.shape="C" lines="5" modusmaior="2" modusminor="2" n="26" notationtype="mensural" prolatio="2" tempus="3">
                        <label xml:id="lls9h4u1">ref</label>
                     </staffDef>
                  </staffGrp>
               </scoreDef>
               <section xml:id="sjfrbfh1">
                  <measure xml:id="measure001" n="1" right="invis">
                     <staff xml:id="s14544p2" n="1">
                        <layer xml:id="l56dfqc" n="1">
                           <mensur modusmaior="2" modusminor="2" prolatio="2" tempus="3"/>
                           <!-- 1 Semibreve - Imperfection a.p.p. -->
                           <note xml:id="nyh1jsv1" dur="brevis" oct="4" pname="c" color="violet"/>
                           <note xml:id="njkw2oe1" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="baoju61" form="dashed"/>
                           <note xml:id="njcb6sg1" dur="brevis" oct="4" pname="c"/>
                           <barLine xml:id="baoju6u1" form="dashed"/>
                        </layer>
                     </staff>
                     <staff xml:id="sdmy0ce1" n="3">
                        <layer xml:id="l1ad0j1" n="1">
                           <mensur modusmaior="2" modusminor="2" prolatio="2" tempus="3"/>
                           <!-- 1 Semibreve - EXCEPTION: Dot of Division - Imperfection a.p.a. -->
                           <note xml:id="nth801p1" dur="brevis" oct="4" pname="c"/>
                           <dot xml:id="dp8s8w5"/>
                           <barLine xml:id="baoj6u1" form="dashed"/>
                           <note xml:id="nczi7c4" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="n7s6rq81" dur="brevis" oct="4" pname="c" color="violet"/>
                           <barLine xml:id="b4vxw501" form="dashed"/>
                        </layer>
                     </staff>
                     <staff xml:id="snrwofj2" n="5">
                        <layer xml:id="l2r3qlz2" n="1">
                           <mensur modusmaior="2" modusminor="2" prolatio="2" tempus="3"/>
                           <!-- 1 Semibreve - EXCEPTION: Start with Short Note - Imperfection a.p.a. -->
                           <note xml:id="n0heigo1" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nugizxl1" dur="brevis" oct="4" pname="c" color="violet"/>
                           <barLine xml:id="bnt8tkk2" form="dashed"/>
                        </layer>
                     </staff>
                     <staff xml:id="sdg7hst1" n="7">
                        <layer xml:id="llnskeb" n="1">
                           <mensur modusmaior="2" modusminor="2" prolatio="2" tempus="3"/>
                           <!-- 2 Semibreves - Alteration -->
                           <note xml:id="nvzv8731" dur="brevis" oct="4" pname="c"/>
                           <barLine xml:id="baju6u1" form="dashed"/>
                           <note xml:id="nqb7tjh1" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nzw5wgu2" dur="semibrevis" oct="4" pname="c" color="violet"/>
                           <barLine xml:id="b6u1" form="dashed"/>
                           <note xml:id="naudxyw1" dur="brevis" oct="4" pname="c"/>
                           <barLine xml:id="bhet54v1" form="dashed"/>
                        </layer>
                     </staff>
                     <staff xml:id="s9x3ujp2" n="9">
                        <layer xml:id="lbw1aul2" n="1">
                           <mensur modusmaior="2" modusminor="2" prolatio="2" tempus="3"/>
                           <!-- 2 Semibreves - EXCEPTION: Dot of Imperfection - Imp. a.p.p. & Imp a.p.a. -->
                           <note xml:id="ndl57s61" dur="brevis" oct="4" pname="c" color="violet"/>
                           <note xml:id="ni2i30d1" dur="semibrevis" oct="4" pname="c"/>
                           <dot xml:id="dh3gpgx1"/>
                           <barLine xml:id="aoju6u1" form="dashed"/>
                           <note xml:id="nhyk5ql2" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nhyawp01" dur="brevis" oct="4" pname="c" color="violet"/>
                           <barLine xml:id="bbaoblx1" form="dashed"/>
                        </layer>
                     </staff>
                     <staff xml:id="sd9j8g3" n="11">
                        <layer xml:id="lw4xk5a" n="1">
                           <mensur modusmaior="2" modusminor="2" prolatio="2" tempus="3"/>
                           <!-- 3 Semibreves - Perfect -->
                           <note xml:id="nds6fgc1" dur="brevis" oct="4" pname="c"/>
                           <barLine xml:id="boju6u1" form="dashed"/>
                           <note xml:id="nfkd3ya1" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nt702re" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="ncpjorc1" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="bau6u1" form="dashed"/>
                           <note xml:id="nwpfzr4" dur="brevis" oct="4" pname="c"/>
                           <barLine xml:id="bldfexg1" form="dashed"/>
                        </layer>
                     </staff>
                     <staff xml:id="stw06zl2" n="13">
                        <layer xml:id="llcgv8u1" n="1">
                           <mensur modusmaior="2" modusminor="2" prolatio="2" tempus="3"/>
                           <!-- 3 Semibreves - EXCEPTION: Dot of Imperfection - Imp. a.p.p. & Alteration -->
                           <note xml:id="n9wl0rs2" dur="brevis" oct="4" pname="c" color="violet"/>
                           <note xml:id="ngrra1n2" dur="semibrevis" oct="4" pname="c"/>
                           <dot xml:id="dow86e01"/>
                           <barLine xml:id="bao6u1" form="dashed"/>
                           <note xml:id="nobj47q2" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="ntj8r621" dur="semibrevis" oct="4" pname="c" color="violet"/>
                           <barLine xml:id="baoju1" form="dashed"/>
                           <note xml:id="niqowp31" dur="brevis" oct="4" pname="c"/>
                           <barLine xml:id="b2cte8r2" form="dashed"/>
                        </layer>
                     </staff>
                     <staff xml:id="s1nu8nw2" n="15">
                        <layer xml:id="lvssck21" n="1">
                           <mensur modusmaior="2" modusminor="2" prolatio="2" tempus="3"/>
                           <!-- 4 Semibreves - Imperfection a.p.p. -->
                           <note xml:id="nab7fp61" dur="brevis" oct="4" pname="c" color="violet"/>
                           <note xml:id="nrl1z0j1" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="b2ce31" form="dashed"/>
                           <note xml:id="ntrmzd61" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nnqvfu91" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="n4afipo2" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="b2m8ce" form="dashed"/>
                           <note xml:id="nb2ote81" dur="brevis" oct="4" pname="c"/>
                           <barLine xml:id="b2m8ce31" form="dashed"/>
                        </layer>
                     </staff>
                     <staff xml:id="sunzni1" n="17">
                        <layer xml:id="l3eoezb" n="1">
                           <mensur modusmaior="2" modusminor="2" prolatio="2" tempus="3"/>
                           <!-- 4 Semibreves - EXCEPTION: Dot of Perfection - Imperfection a.p.a. -->
                           <note xml:id="n906ck51" dur="brevis" oct="4" pname="c"/>
                           <dot xml:id="dnyrstg"/>
                           <barLine xml:id="bse84" form="dashed"/>
                           <note xml:id="nc03lb51" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="njr66bt1" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="n3n4hxc" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="bsenr" form="dashed"/>
                           <note xml:id="npplxv9" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="n4sbgtz2" dur="brevis" oct="4" pname="c" color="violet"/>
                           <barLine xml:id="bsenr84" form="dashed"/>
                        </layer>
                     </staff>
                     <staff xml:id="scmegt91" n="19">
                        <layer xml:id="lxi8d54" n="1">
                           <mensur modusmaior="2" modusminor="2" prolatio="2" tempus="3"/>
                           <!-- 5 Semibreves - Imperfection a.p.p. & Imperfection a.p.a. -->
                           <note xml:id="nlkmbbs2" dur="brevis" oct="4" pname="c" color="violet"/>
                           <note xml:id="nwws6fq1" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="bu6u1" form="dashed"/>
                           <note xml:id="nain8pr2" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="n1w24gw2" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nf5m9o2" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="baou1" form="dashed"/>
                           <note xml:id="ngy3vxc1" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nlsp3rp2" dur="brevis" oct="4" pname="c" color="violet"/>
                           <barLine xml:id="bqnep2o1" form="dashed"/>
                        </layer>
                     </staff>
                     <staff xml:id="sug9jk41" n="21">
                        <layer xml:id="lccz6a61" n="1">
                           <mensur modusmaior="2" modusminor="2" prolatio="2" tempus="3"/>
                           <!-- 5 Semibreves - EXCEPTION: Dot of Perfection - Alteration -->
                           <note xml:id="nta4lys2" dur="brevis" oct="4" pname="c"/>
                           <dot xml:id="dvp98d"/>
                           <barLine xml:id="b71nd1" form="dashed"/>
                           <note xml:id="nansmgy2" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nrix6h91" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nlo23al2" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="buk7d1" form="dashed"/>
                           <note xml:id="nq585bo2" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="ntl0uhf1" dur="semibrevis" oct="4" pname="c" color="violet"/>
                           <barLine xml:id="buknd1" form="dashed"/>
                           <note xml:id="neuhlra" dur="brevis" oct="4" pname="c"/>
                           <barLine xml:id="buk71nd1" form="dashed"/>
                        </layer>
                     </staff>
                     <staff xml:id="sl1a2zx2" n="23">
                        <layer xml:id="l91tyhw2" n="1">
                           <mensur modusmaior="2" modusminor="2" prolatio="2" tempus="3"/>
                           <!-- 6 Semibreves - Imperfection a.p.p. & Alteration -->
                           <note xml:id="n5mg8021" dur="brevis" oct="4" pname="c" color="violet"/>
                           <note xml:id="nmm2wzw1" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="ikl2o1" form="dashed"/>
                           <note xml:id="n3bwpth" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="n84sxns1" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nmweeqh1" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="b3i2o1" form="dashed"/>
                           <note xml:id="n1fo9i6" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nx1np6s1" dur="semibrevis" oct="4" pname="c" color="violet"/>
                           <barLine xml:id="b3ikl1" form="dashed"/>
                           <note xml:id="n2gvlnv1" dur="brevis" oct="4" pname="c"/>
                           <barLine xml:id="b3ikl2o1" form="dashed"/>
                        </layer>
                     </staff>
                     <staff xml:id="smz2yv41" n="25">
                        <layer xml:id="lf7kcpj2" n="1">
                           <mensur modusmaior="2" modusminor="2" prolatio="2" tempus="3"/>
                           <!-- 6 Semibreves - EXCEPTION: Dot of Perfection - Regular Values -->
                           <note xml:id="ngliydq2" dur="brevis" oct="4" pname="c"/>
                           <dot xml:id="dljoa31"/>
                           <barLine xml:id="biye22" form="dashed"/>
                           <note xml:id="ndazey5" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nfn34jb1" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="n0azi0q1" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="biy2r2" form="dashed"/>
                           <note xml:id="nuq5tat2" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nxdwlnq2" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nw2by431" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="be22r2" form="dashed"/>
                           <note xml:id="nhncinu2" dur="brevis" oct="4" pname="c"/>
                           <barLine xml:id="biye22r2" form="dashed"/>
                        </layer>
                     </staff>
                     <staff xml:id="s8fogqh1" n="26">
                        <layer xml:id="l9m1xau1" n="1">
                           <mensur modusmaior="2" modusminor="2" prolatio="2" tempus="3"/>
                           <!-- reference -->
                           <note xml:id="n68lz4b1" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="n2acyz41" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nds1e32" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="b6ky6t11" form="dashed"/>
                           <note xml:id="nkw4lru2" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="n4di64w1" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="ngg6x0t1" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="bwanub41" form="dashed"/>
                           <note xml:id="n7eu6yx1" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nk0n3461" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nstf0c51" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="b53qd93" form="dashed"/>
                           <note xml:id="nx5od02" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nj0xqv51" dur="semibrevis" oct="4" pname="c"/>
                           <note xml:id="nu3pggl2" dur="semibrevis" oct="4" pname="c"/>
                           <barLine xml:id="btpp6gi1" form="dashed"/>
                        </layer>
                     </staff>
                  </measure>
               </section>
            </score>
         </mdiv>
      </body>
   </music>
</mei>

Properly lined up score

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0">
   <meiHead>
      <fileDesc>
         <titleStmt>
            <title>Mensural Notation Test Cases - Rhythmic Interpretation</title>
         </titleStmt>
         <pubStmt />
      </fileDesc>
   </meiHead>
   <music>
      <body>
         <mdiv xml:id="mhxokwe1">
            <score xml:id="s6zv1l8">
               <scoreDef xml:id="s9ril8p1">
                  <staffGrp xml:id="sjxiacd" n="1" symbol="bracket">
                     <staffDef xml:id="saqb8di2" n="1" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="l9mlo7r2">1Sb-DEFAULT-ImpAPP</label>
                     </staffDef>
                     <staffDef xml:id="s9uqisd" n="3" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="li3srd6">1Sb-EXCEPTION(dot.perf)-ImpAPA</label>
                     </staffDef>
                     <staffDef xml:id="svxtpe2" n="5" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="l6efadl2">1Sb-EXCEPTION(shortstart)-ImpAPA</label>
                     </staffDef>
                     <staffDef xml:id="sspsxqs2" n="7" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="l56o5rz2">2Sb-DEFAULT-Alt</label>
                     </staffDef>
                     <staffDef xml:id="sy5hz1a1" n="9" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lyedodm2">2Sb-EXCEPTION(dot.imp)-ImpAPPandAPA</label>
                     </staffDef>
                     <staffDef xml:id="swpeyjd1" n="11" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lho9u961">3Sb-DEFAULT-Regular</label>
                     </staffDef>
                     <staffDef xml:id="sgsh7lb" n="13" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="llwpo4q2">3Sb-EXCEPTION(dot.imp)-ImpAPPandAlt</label>
                     </staffDef>
                     <staffDef xml:id="sgwkneq2" n="15" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="ljs7kju2">4Sb-DEFAULT-ImpAPP</label>
                     </staffDef>
                     <staffDef xml:id="s23pfqs1" n="17" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lel0ewp2">4Sb-EXCEPTION(dot.perf)-ImpAPA</label>
                     </staffDef>
                     <staffDef xml:id="slax3aq1" n="19" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lj636v41">5Sb-DEFAULT-ImpAPPandAPA</label>
                     </staffDef>
                     <staffDef xml:id="skjmk23" n="21" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="l8r3qcr2">5Sb-EXCEPTION(dot.perf)-Alt</label>
                     </staffDef>
                     <staffDef xml:id="szkypxt2" n="23" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="la1rrzd1">6Sb-DEFAULT-ImpAPPandAlt</label>
                     </staffDef>
                     <staffDef xml:id="s31tmlh1" n="25" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lqvoa931">6Sb-EXCEPTION(dot.perf)-Regular</label>
                     </staffDef>
                     <staffDef xml:id="s7z6b8d1" n="26" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lls9h4u1">ref</label>
                     </staffDef>
                  </staffGrp>
               </scoreDef>
               <section xml:id="sjfrbfh1">
                  <measure xml:id="measure001" right="invis" n="1">
                     <staff xml:id="s14544p2" n="1">
                        <layer xml:id="l56dfqc" n="1">
                           <mensur xml:id="mmb4c3n" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 1 Semibreve - Imperfection a.p.p. -->
                           <note xml:id="nyh1jsv1" dur="brevis" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="njkw2oe1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="baoju61" form="dashed" />
                           <note xml:id="njcb6sg1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="baoju6u1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="sdmy0ce1" n="3">
                        <layer xml:id="l1ad0j1" n="1">
                           <mensur xml:id="m7et1i0" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 1 Semibreve - EXCEPTION: Dot of Division - Imperfection a.p.a. -->
                           <note xml:id="nth801p1" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="dp8s8w5" form="div" />
                           <barLine xml:id="baoj6u1" form="dashed" />
                           <note xml:id="nczi7c4" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n7s6rq81" dur="brevis" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="b4vxw501" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="snrwofj2" n="5">
                        <layer xml:id="l2r3qlz2" n="1">
                           <mensur xml:id="mknkxid" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 1 Semibreve - EXCEPTION: Start with Short Note - Imperfection a.p.a. -->
                           <note xml:id="n0heigo1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nugizxl1" dur="brevis" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bnt8tkk2" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="sdg7hst1" n="7">
                        <layer xml:id="llnskeb" n="1">
                           <mensur xml:id="mzh4l1z" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 2 Semibreves - Alteration -->
                           <note xml:id="nvzv8731" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="baju6u1" form="dashed" />
                           <note xml:id="nqb7tjh1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nzw5wgu2" dur="semibrevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="b6u1" form="dashed" />
                           <note xml:id="naudxyw1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="bhet54v1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s9x3ujp2" n="9">
                        <layer xml:id="lbw1aul2" n="1">
                           <mensur xml:id="m1h3xdqd" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 2 Semibreves - EXCEPTION: Dot of Imperfection - Imp. a.p.p. & Imp a.p.a. -->
                           <note xml:id="ndl57s61" dur="brevis" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="ni2i30d1" dur="semibrevis" oct="4" pname="c" />
                           <dot xml:id="dh3gpgx1" form="div" />
                           <barLine xml:id="aoju6u1" form="dashed" />
                           <note xml:id="nhyk5ql2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nhyawp01" dur="brevis" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bbaoblx1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="sd9j8g3" n="11">
                        <layer xml:id="lw4xk5a" n="1">
                           <mensur xml:id="m1seccmq" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 3 Semibreves - Perfect -->
                           <note xml:id="nds6fgc1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="boju6u1" form="dashed" />
                           <note xml:id="nfkd3ya1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nt702re" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="ncpjorc1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="bau6u1" form="dashed" />
                           <note xml:id="nwpfzr4" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="bldfexg1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="stw06zl2" n="13">
                        <layer xml:id="llcgv8u1" n="1">
                           <mensur xml:id="m10x012r" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 3 Semibreves - EXCEPTION: Dot of Imperfection - Imp. a.p.p. & Alteration -->
                           <note xml:id="n9wl0rs2" dur="brevis" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="ngrra1n2" dur="semibrevis" oct="4" pname="c" />
                           <dot xml:id="dow86e01" form="div" />
                           <barLine xml:id="bao6u1" form="dashed" />
                           <note xml:id="nobj47q2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="ntj8r621" dur="semibrevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="baoju1" form="dashed" />
                           <note xml:id="niqowp31" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b2cte8r2" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s1nu8nw2" n="15">
                        <layer xml:id="lvssck21" n="1">
                           <mensur xml:id="m1dr5p95" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 4 Semibreves - Imperfection a.p.p. -->
                           <note xml:id="nab7fp61" dur="brevis" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="nrl1z0j1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="b2ce31" form="dashed" />
                           <note xml:id="ntrmzd61" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nnqvfu91" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n4afipo2" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="b2m8ce" form="dashed" />
                           <note xml:id="nb2ote81" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b2m8ce31" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="sunzni1" n="17">
                        <layer xml:id="l3eoezb" n="1">
                           <mensur xml:id="mgfyvm2" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 4 Semibreves - EXCEPTION: Dot of Perfection - Imperfection a.p.a. -->
                           <note xml:id="n906ck51" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="dnyrstg" form="div" />
                           <barLine xml:id="bse84" form="dashed" />
                           <note xml:id="nc03lb51" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="njr66bt1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n3n4hxc" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="bsenr" form="dashed" />
                           <note xml:id="npplxv9" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n4sbgtz2" dur="brevis" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bsenr84" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="scmegt91" n="19">
                        <layer xml:id="lxi8d54" n="1">
                           <mensur xml:id="m1qcgzx2" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 5 Semibreves - Imperfection a.p.p. & Imperfection a.p.a. -->
                           <note xml:id="nlkmbbs2" dur="brevis" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="nwws6fq1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="bu6u1" form="dashed" />
                           <note xml:id="nain8pr2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n1w24gw2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nf5m9o2" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="baou1" form="dashed" />
                           <note xml:id="ngy3vxc1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nlsp3rp2" dur="brevis" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bqnep2o1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="sug9jk41" n="21">
                        <layer xml:id="lccz6a61" n="1">
                           <mensur xml:id="m5y7y5q" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 5 Semibreves - EXCEPTION: Dot of Perfection - Alteration -->
                           <note xml:id="nta4lys2" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="dvp98d" form="div" />
                           <barLine xml:id="b71nd1" form="dashed" />
                           <note xml:id="nansmgy2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nrix6h91" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nlo23al2" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="buk7d1" form="dashed" />
                           <note xml:id="nq585bo2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="ntl0uhf1" dur="semibrevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="buknd1" form="dashed" />
                           <note xml:id="neuhlra" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="buk71nd1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="sl1a2zx2" n="23">
                        <layer xml:id="l91tyhw2" n="1">
                           <mensur xml:id="mcgy8n" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 6 Semibreves - Imperfection a.p.p. & Alteration -->
                           <note xml:id="n5mg8021" dur="brevis" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="nmm2wzw1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="ikl2o1" form="dashed" />
                           <note xml:id="n3bwpth" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n84sxns1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nmweeqh1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="b3i2o1" form="dashed" />
                           <note xml:id="n1fo9i6" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nx1np6s1" dur="semibrevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="b3ikl1" form="dashed" />
                           <note xml:id="n2gvlnv1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b3ikl2o1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="smz2yv41" n="25">
                        <layer xml:id="lf7kcpj2" n="1">
                           <mensur xml:id="m15s590l" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 6 Semibreves - EXCEPTION: Dot of Perfection - Regular Values -->
                           <note xml:id="ngliydq2" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="dljoa31" form="div" />
                           <barLine xml:id="biye22" form="dashed" />
                           <note xml:id="ndazey5" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nfn34jb1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n0azi0q1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="biy2r2" form="dashed" />
                           <note xml:id="nuq5tat2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nxdwlnq2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nw2by431" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="be22r2" form="dashed" />
                           <note xml:id="nhncinu2" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="biye22r2" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s8fogqh1" n="26">
                        <layer xml:id="l9m1xau1" n="1">
                           <mensur xml:id="m15z1om4" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- reference -->
                           <note xml:id="n68lz4b1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n2acyz41" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nds1e32" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="b6ky6t11" form="dashed" />
                           <note xml:id="nkw4lru2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n4di64w1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="ngg6x0t1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="bwanub41" form="dashed" />
                           <note xml:id="n7eu6yx1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nk0n3461" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nstf0c51" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="b53qd93" form="dashed" />
                           <note xml:id="nx5od02" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nj0xqv51" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nu3pggl2" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="btpp6gi1" form="dashed" />
                        </layer>
                     </staff>
                  </measure>
               </section>
            </score>
         </mdiv>
      </body>
   </music>
</mei>

@martha-thomae
Copy link
Contributor Author

martha-thomae commented Oct 22, 2024

Now a file that contains dots of division (like the previous example) and also dos of augmentation.

  1. Mensural Notation Test Mixed Dots with tempus perfectum (i.e., breves perfect by default). The violet notes are the ones that are changed by the context (these are, imperfect breves and altered semibreves).

Quasi-score

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0">
   <meiHead>
      <fileDesc>
         <titleStmt>
            <title>Mensural Notation Test Cases - Rhythmic Interpretation</title>
         </titleStmt>
         <pubStmt />
      </fileDesc>
   </meiHead>
   <music>
      <body>
         <mdiv xml:id="mhxokwe1">
            <score xml:id="s6zv1l8">
               <scoreDef xml:id="s9ril8p1">
                  <staffGrp xml:id="sjxiacd" n="1" symbol="bracket">
                     <staffDef xml:id="sspsxqs2" n="1" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="l56o5rz2">2Sb-DEFAULT-Alt</label>
                     </staffDef>
                     <staffDef xml:id="sy5hz1a1" n="2" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lyedodm2">2Sb-EXCEPTION(dot.imp)-ImpAPPandAPA</label>
                     </staffDef>
                     <staffDef xml:id="sy5hz1a1a" n="3" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lyedodm2a">2Sb-EXCEPTION(dot.imp)-ImpAPPandAPA</label>
                     </staffDef>
                     <staffDef xml:id="sy5hz1a1b" n="4" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lyedodm2b">2Sb-EXCEPTION(dot.imp)-ImpAPPandAPA</label>
                     </staffDef>

                     <staffDef xml:id="swpeyjd1" n="5" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lho9u961">3Sb-DEFAULT-Regular</label>
                     </staffDef>
                     <staffDef xml:id="sgsh7lb" n="6" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="llwpo4q2">3Sb-EXCEPTION(dot.imp)-ImpAPPandAlt</label>
                     </staffDef>
                     <staffDef xml:id="sgsh7lba" n="7" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="llwpo4q2a">3Sb-EXCEPTION(dot.imp)-ImpAPPandAlt</label>
                     </staffDef>
                     <staffDef xml:id="sgsh7lbb" n="8" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="llwpo4q2b">3Sb-EXCEPTION(dot.imp)-ImpAPPandAlt</label>
                     </staffDef>

                     <staffDef xml:id="sgwkneq2" n="9" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="ljs7kju2">4Sb-DEFAULT-ImpAPP</label>
                     </staffDef>
                     <staffDef xml:id="sgwkn2" n="10" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="ljs7k2">4Sb-DEFAULT-ImpAPP</label>
                     </staffDef>
                     <staffDef xml:id="s23pfqs1" n="11" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lel0ewp2">4Sb-EXCEPTION(dot.perf)-ImpAPA</label>
                     </staffDef>
                     <staffDef xml:id="s23pf1" n="12" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lelwp2">4Sb-EXCEPTION(dot.perf)-ImpAPA</label>
                     </staffDef>
                     <staffDef xml:id="s23pf1001" n="13" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lelwp2001">4Sb-EXCEPTION(dot.perf)-ImpAPA</label>
                     </staffDef>

                     <staffDef xml:id="abaslax3aq1" n="14" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="abalj636v41">5Sb-DEFAULT-ImpAPPandAPA</label>
                     </staffDef>
                     <staffDef xml:id="bcbskjmk23" n="15" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="bcbl8r3qcr2">5Sb-EXCEPTION(dot.perf)-Alt</label>
                     </staffDef>
                     <staffDef xml:id="cdcskjmk3" n="16" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="cdcl8r3qr2">5Sb-EXCEPTION(dot.perf)-Alt</label>
                     </staffDef>

                     <staffDef xml:id="slax3aq1" n="17" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lj636v41">5Sb-DEFAULT-ImpAPPandAPA</label>
                     </staffDef>
                     <staffDef xml:id="skjmk23" n="18" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="l8r3qcr2">5Sb-EXCEPTION(dot.perf)-Alt</label>
                     </staffDef>
                     <staffDef xml:id="skjmk3" n="19" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="l8r3qr2">5Sb-EXCEPTION(dot.perf)-Alt</label>
                     </staffDef>

                     <staffDef xml:id="szkypxt2" n="23" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="la1rrzd1">6Sb-DEFAULT-ImpAPPandAlt</label>
                     </staffDef>
                     <staffDef xml:id="s31tmlh1" n="25" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lqvoa931">6Sb-EXCEPTION(dot.perf)-Regular</label>
                     </staffDef>
                     <staffDef xml:id="s7z6b8d1" n="26" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3">
                        <label xml:id="lls9h4u1">ref</label>
                     </staffDef>
                  </staffGrp>
               </scoreDef>
               <section xml:id="sjfrbfh1">
                  <measure xml:id="measure001" right="invis" n="1">
                     <staff xml:id="sdg7hst1" n="1">
                        <layer xml:id="llnskeb" n="1">
                           <mensur xml:id="m1twlteb" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 2 Semibreves - Alteration -->
                           <note xml:id="nvzv8731" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="baju6u1" form="dashed" />
                           <note xml:id="nqb7tjh1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nzw5wgu2" dur="semibrevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="b6u1" form="dashed" />
                           <note xml:id="naudxyw1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="bhet54v1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s9x3ujp2" n="2">
                        <layer xml:id="lbw1aul2" n="1">
                           <mensur xml:id="m9rhqrl" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <note xml:id="ndl57s61" dur="brevis" oct="4" pname="c" color="violet" />
                           <note xml:id="ni2i30d1" dur="semibrevis" oct="4" pname="c" />
                           <dot xml:id="dh3gpgx1" />
                           <barLine xml:id="aoju6u1" form="dashed" />
                           <note xml:id="nhyk5ql2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nhyawp01" dur="brevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bbaoblx1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s9x3ujp" n="3">
                        <layer xml:id="lbwaul2" n="1">
                           <mensur xml:id="m9rhqr" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <note xml:id="ndl57s1" dur="brevis" oct="4" pname="c" color="violet" />
                           <note xml:id="ni2i3d2" dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note xml:id="ni2i0d3" dur="semiminima" oct="4" pname="c" />
                           <dot xml:id="dh3ggx1" />
                           <barLine xml:id="aou6u1" form="dashed" />
                           <note xml:id="nhykql2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nhywp01" dur="brevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="baoblx1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s9x3uj" n="4">
                        <layer xml:id="lbwul2" n="1">
                           <mensur xml:id="rhqrl" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <note xml:id="nd7s61" dur="brevis" oct="4" pname="c" color="violet" />
                           <note xml:id="ni30d1" dur="semibrevis" oct="4" pname="c" />
                           <dot xml:id="dh3gx1" />
                           <barLine xml:id="au6u1" form="dashed" />
                           <note xml:id="nhykl2a" dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note xml:id="nhykl2b" dur="semiminima" oct="4" pname="c" />
                           <note xml:id="nhya01" dur="brevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="boblx1" form="dashed" />
                        </layer>
                     </staff>

                     <staff xml:id="sd9j8g3" n="5">
                        <layer xml:id="lw4xk5a" n="1">
                           <mensur xml:id="m1l3x31b" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 3 Semibreves - Perfect -->
                           <note xml:id="nds6fgc1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="boju6u1" form="dashed" />
                           <note xml:id="nfkd3ya1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nt702re" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="ncpjorc1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="bau6u1" form="dashed" />
                           <note xml:id="nwpfzr4" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="bldfexg1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="stw06zl2" n="6">
                        <layer xml:id="llcgv8u1" n="1">
                           <mensur xml:id="m15uf1in" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <note xml:id="n9wl0rs2" dur="brevis" oct="4" pname="c" color="violet" />
                           <note xml:id="ngrra1n2" dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note xml:id="ngrra1n2a" dur="semiminima" oct="4" pname="c" />
                           <dot xml:id="dow86e01" />
                           <barLine xml:id="bao6u1" form="dashed" />
                           <note xml:id="nobj47q2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="ntj8r621" dur="semibrevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="baoju1" form="dashed" />
                           <note xml:id="niqowp31" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b2cte8r2" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="stw062" n="7">
                        <layer xml:id="cgv8u1" n="1">
                           <mensur xml:id="m15uin" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <note xml:id="n9wls2" dur="brevis" oct="4" pname="c" color="violet" />
                           <note xml:id="nga1n2" dur="semibrevis" oct="4" pname="c" />
                           <dot xml:id="dowe01" />
                           <barLine xml:id="bao6" form="dashed" />
                           <note xml:id="nobj47" dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note xml:id="nj47" dur="semiminima" oct="4" pname="c" />
                           <note xml:id="ntj821" dur="semibrevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bju1" form="dashed" />
                           <note xml:id="niqo31" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="bte8r2" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="stw06z" n="8">
                        <layer xml:id="llc8u1" n="1">
                           <mensur xml:id="m5un" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <note xml:id="n9wl0r" dur="brevis" oct="4" pname="c" color="violet" />
                           <note xml:id="ngrrn2" dur="semibrevis" oct="4" pname="c" />
                           <dot xml:id="dowe1" />
                           <barLine xml:id="bau1" form="dashed" />
                           <note xml:id="nobj42" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="ntj8r1" dur="semibrevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="oju1" form="dashed" />
                           <note xml:id="niqp31" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b2e8r2" form="dashed" />
                        </layer>
                     </staff>

                     <staff xml:id="s1nu8nw2" n="9">
                        <layer xml:id="lvssck21" n="1">
                           <mensur xml:id="m1bjn3sx" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 4 Semibreves - Imperfection a.p.p. -->
                           <note xml:id="nab7fp61" dur="brevis" oct="4" pname="c" color="violet" />
                           <note xml:id="nrl1z0j1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="b2ce31" form="dashed" />
                           <note xml:id="ntrmzd61" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nnqvfu91" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n4afipo2" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="b2m8ce" form="dashed" />
                           <note xml:id="nb2ote81" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b2m8ce31" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s1nu8n2" n="10">
                        <layer xml:id="lvsck21" n="1">
                           <mensur xml:id="m1bj3sx" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 4 Semibreves - Imperfection a.p.p. -->
                           <note xml:id="nab7f61" dur="brevis" oct="4" pname="c" color="violet" />
                           <note xml:id="nrl1zj1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="b2e31" form="dashed" />
                           <note xml:id="ntrmz61a" dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note xml:id="ntrmz61b" dur="semiminima" oct="4" pname="c" />
                           <note xml:id="nnqvf91" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n4afio2a" dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note xml:id="n4afio2b" dur="semiminima" oct="4" pname="c" />
                           <barLine xml:id="b28ce" form="dashed" />
                           <note xml:id="nb2ot81" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b28ce31" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s1nu82" n="11">
                        <layer xml:id="lvs001" n="1">
                           <mensur xml:id="jn00x" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 4 Semibreves - Imperfection a.p.p. -->
                           <note xml:id="na7fp61" dur="brevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="ce31" form="dashed" />
                           <note xml:id="nr1z0j1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="ntrzd61" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nnqfu91" dur="semibrevis" oct="4" pname="c" />
                           <dot/>
                           <barLine xml:id="m8ce" form="dashed" />
                           <note xml:id="n4aipo2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nb2te81" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="m8ce31" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="efes1nu82" n="12">
                        <layer xml:id="efelvs001" n="1">
                           <mensur xml:id="efejn00x" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 4 Semibreves - Imperfection a.p.p. -->
                           <note xml:id="efena7fp61" dur="brevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="efece31" form="dashed" />
                           <note xml:id="efenr1z0j1" dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note xml:id="efenr1z0j102" dur="semiminima" oct="4" pname="c" />
                           <note xml:id="efentrzd61" dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note xml:id="efentrzd6102" dur="semiminima" oct="4" pname="c" />
                           <note xml:id="efennqfu91" dur="semibrevis" oct="4" pname="c" />
                           <dot/>
                           <barLine xml:id="efem8ce" form="dashed" />
                           <note xml:id="efen4aipo2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="efenb2te81" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="efem8ce31" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s1n2001" n="13">
                        <layer xml:id="lv01001" n="1">
                           <mensur xml:id="jnx001" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 4 Semibreves - Imperfection a.p.p. -->
                           <note xml:id="na7f1001" dur="brevis" oct="4" pname="c"/>
                           <dot/>
                           <barLine xml:id="m30001001" form="dashed" />
                           <note xml:id="nr1j1001" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="ntr1a001" dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note xml:id="ntr1b001" dur="semiminima" oct="4" pname="c" />
                           <note xml:id="nnqv1001" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="me001" form="dashed" />
                           <note xml:id="n4afa001" dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note xml:id="n4afb001" dur="semiminima" oct="4" pname="c" />
                           <note xml:id="nb2t1001" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="m8c1001" form="dashed" />
                        </layer>
                     </staff>

                     <staff xml:id="abascmegt91" n="14">
                        <layer xml:id="abalxi8d54" n="1">
                           <mensur xml:id="abam1uhodeg" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 5 Semibreves - Imperfection a.p.p. & Imperfection a.p.a. -->
                           <note xml:id="abanlkmbbs2" dur="brevis" oct="4" pname="c" color="violet" />
                           <note xml:id="abanwws6fq1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="ababu6u1" form="dashed" />
                           <note xml:id="abanain8pr2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="aban1w24gw201" dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note xml:id="aban1w24gw202" dur="semiminima" oct="4" pname="c" />
                           <note xml:id="abanf5m9o2" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="ababaou1" form="dashed" />
                           <note xml:id="abangy3vxc1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="abanlsp3rp2" dur="brevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="ababqnep2o1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="bcbsug9jk41" n="15">
                        <layer xml:id="bcblccz6a61" n="1">
                           <mensur xml:id="bcbm1b4w1mx" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 5 Semibreves - EXCEPTION: Dot of Perfection - Alteration -->
                           <note xml:id="bcbnta4lys2" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="bcbdvp98d" />
                           <barLine xml:id="bcbb71nd1" form="dashed" />
                           <note xml:id="bcbnansmgy2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="bcbnrix6h9101" dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note xml:id="bcbnrix6h9102" dur="semiminima" oct="4" pname="c" />
                           <note xml:id="bcbnlo23al2" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="bcbbuk7d1" form="dashed" />
                           <note xml:id="bcbnq585bo2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="bcbntl0uhf1" dur="semibrevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bcbbuknd1" form="dashed" />
                           <note xml:id="bcbneuhlra" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="bcbbuk71nd1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="cdcsug9jk" n="16">
                        <layer xml:id="cdclccz6a" n="1">
                           <mensur xml:id="cdcm1b4w1" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 5 Semibreves - EXCEPTION: Dot of Perfection - Alteration -->
                           <note xml:id="cdcnta4ly" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="cdcb71n" form="dashed" />
                           <note xml:id="cdcnansmg" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="cdcnrix6h01" dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note xml:id="cdcnrix6h02" dur="semiminima" oct="4" pname="c" />
                           <note xml:id="cdcnlo23a" dur="semibrevis" oct="4" pname="c" />
                           <dot xml:id="cdcdvp9" />
                           <barLine xml:id="cdcbuk7" form="dashed" />
                           <note xml:id="cdcnq585b" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="cdcntl0uh" dur="semibrevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="cdcbukn" form="dashed" />
                           <note xml:id="cdcneuhl" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="cdcbuk71n" form="dashed" />
                        </layer>
                     </staff>

                     <staff xml:id="scmegt91" n="17">
                        <layer xml:id="lxi8d54" n="1">
                           <mensur xml:id="m1uhodeg" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 5 Semibreves - Imperfection a.p.p. & Imperfection a.p.a. -->
                           <note xml:id="nlkmbbs2" dur="brevis" oct="4" pname="c" color="violet" />
                           <note xml:id="nwws6fq1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="bu6u1" form="dashed" />
                           <note xml:id="nain8pr2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n1w24gw2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nf5m9o2" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="baou1" form="dashed" />
                           <note xml:id="ngy3vxc1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nlsp3rp2" dur="brevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bqnep2o1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="sug9jk41" n="18">
                        <layer xml:id="lccz6a61" n="1">
                           <mensur xml:id="m1b4w1mx" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 5 Semibreves - EXCEPTION: Dot of Perfection - Alteration -->
                           <note xml:id="nta4lys2" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="dvp98d" />
                           <barLine xml:id="b71nd1" form="dashed" />
                           <note xml:id="nansmgy2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nrix6h91" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nlo23al2" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="buk7d1" form="dashed" />
                           <note xml:id="nq585bo2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="ntl0uhf1" dur="semibrevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="buknd1" form="dashed" />
                           <note xml:id="neuhlra" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="buk71nd1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="sug9jk" n="19">
                        <layer xml:id="lccz6a" n="1">
                           <mensur xml:id="m1b4w1" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 5 Semibreves - EXCEPTION: Dot of Perfection - Alteration -->
                           <note xml:id="nta4ly" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b71n" form="dashed" />
                           <note xml:id="nansmg" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nrix6h" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nlo23a" dur="semibrevis" oct="4" pname="c" />
                           <dot xml:id="dvp9" />
                           <barLine xml:id="buk7" form="dashed" />
                           <note xml:id="nq585b" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="ntl0uh" dur="semibrevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bukn" form="dashed" />
                           <note xml:id="neuhl" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="buk71n" form="dashed" />
                        </layer>
                     </staff>

                     <staff xml:id="sl1a2zx2" n="23">
                        <layer xml:id="l91tyhw2" n="1">
                           <mensur xml:id="m58wil5" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 6 Semibreves - Imperfection a.p.p. & Alteration -->
                           <note xml:id="n5mg8021" dur="brevis" oct="4" pname="c" color="violet" />
                           <note xml:id="nmm2wzw1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="ikl2o1" form="dashed" />
                           <note xml:id="n3bwpth" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n84sxns1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nmweeqh1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="b3i2o1" form="dashed" />
                           <note xml:id="n1fo9i6" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nx1np6s1" dur="semibrevis" oct="4" pname="c" color="violet" />
                           <barLine xml:id="b3ikl1" form="dashed" />
                           <note xml:id="n2gvlnv1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b3ikl2o1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="smz2yv41" n="25">
                        <layer xml:id="lf7kcpj2" n="1">
                           <mensur xml:id="m1e9xnc8" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- 6 Semibreves - EXCEPTION: Dot of Perfection - Regular Values -->
                           <note xml:id="ngliydq2" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="dljoa31" />
                           <barLine xml:id="biye22" form="dashed" />
                           <note xml:id="ndazey5" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nfn34jb1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n0azi0q1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="biy2r2" form="dashed" />
                           <note xml:id="nuq5tat2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nxdwlnq2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nw2by431" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="be22r2" form="dashed" />
                           <note xml:id="nhncinu2" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="biye22r2" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s8fogqh1" n="26">
                        <layer xml:id="l9m1xau1" n="1">
                           <mensur xml:id="m144pfoe" modusmaior="2" modusminor="2" prolatio="2" tempus="3" />
                           <!-- reference -->
                           <note xml:id="n68lz4b1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n2acyz41" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nds1e32" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="b6ky6t11" form="dashed" />
                           <note xml:id="nkw4lru2" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n4di64w1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="ngg6x0t1" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="bwanub41" form="dashed" />
                           <note xml:id="n7eu6yx1" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nk0n3461" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nstf0c51" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="b53qd93" form="dashed" />
                           <note xml:id="nx5od02" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nj0xqv51" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nu3pggl2" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="btpp6gi1" form="dashed" />
                        </layer>
                     </staff>
                  </measure>
               </section>
            </score>
         </mdiv>
      </body>
   </music>
</mei>

Properly lined up score

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0">
   <meiHead>
      <fileDesc>
         <titleStmt>
            <title>Mensural Notation Test Cases - Rhythmic Interpretation</title>
         </titleStmt>
         <pubStmt />
      </fileDesc>
   </meiHead>
   <music>
      <body>
         <mdiv xml:id="mhxokwe1">
            <score xml:id="s6zv1l8">
               <scoreDef xml:id="s9ril8p1">
                  <staffGrp xml:id="sjxiacd" n="1" symbol="bracket">
                     <staffDef xml:id="sspsxqs2" n="1" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="l56o5rz2">2Sb-DEFAULT-Alt</label>
                     </staffDef>
                     <staffDef xml:id="sy5hz1a1" n="2" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="lyedodm2">2Sb-EXCEPTION(dot.imp)-ImpAPPandAPA</label>
                     </staffDef>
                     <staffDef xml:id="sy5hz1a1a" n="3" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="lyedodm2a">2Sb-EXCEPTION(dot.imp)-ImpAPPandAPA</label>
                     </staffDef>
                     <staffDef xml:id="sy5hz1a1b" n="4" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="lyedodm2b">2Sb-EXCEPTION(dot.imp)-ImpAPPandAPA</label>
                     </staffDef>
                     <staffDef xml:id="swpeyjd1" n="5" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="lho9u961">3Sb-DEFAULT-Regular</label>
                     </staffDef>
                     <staffDef xml:id="sgsh7lb" n="6" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="llwpo4q2">3Sb-EXCEPTION(dot.imp)-ImpAPPandAlt</label>
                     </staffDef>
                     <staffDef xml:id="sgsh7lba" n="7" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="llwpo4q2a">3Sb-EXCEPTION(dot.imp)-ImpAPPandAlt</label>
                     </staffDef>
                     <staffDef xml:id="sgsh7lbb" n="8" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="llwpo4q2b">3Sb-EXCEPTION(dot.imp)-ImpAPPandAlt</label>
                     </staffDef>
                     <staffDef xml:id="sgwkneq2" n="9" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="ljs7kju2">4Sb-DEFAULT-ImpAPP</label>
                     </staffDef>
                     <staffDef xml:id="sgwkn2" n="10" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="ljs7k2">4Sb-DEFAULT-ImpAPP</label>
                     </staffDef>
                     <staffDef xml:id="s23pfqs1" n="11" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="lel0ewp2">4Sb-EXCEPTION(dot.perf)-ImpAPA</label>
                     </staffDef>
                     <staffDef xml:id="s23pf1" n="12" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="lelwp2">4Sb-EXCEPTION(dot.perf)-ImpAPA</label>
                     </staffDef>
                     <staffDef xml:id="s23pf1001" n="13" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="lelwp2001">4Sb-EXCEPTION(dot.perf)-ImpAPA</label>
                     </staffDef>
                     <staffDef xml:id="abaslax3aq1" n="14" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="abalj636v41">5Sb-DEFAULT-ImpAPPandAPA</label>
                     </staffDef>
                     <staffDef xml:id="bcbskjmk23" n="15" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="bcbl8r3qcr2">5Sb-EXCEPTION(dot.perf)-Alt</label>
                     </staffDef>
                     <staffDef xml:id="cdcskjmk3" n="16" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="cdcl8r3qr2">5Sb-EXCEPTION(dot.perf)-Alt</label>
                     </staffDef>
                     <staffDef xml:id="slax3aq1" n="17" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="lj636v41">5Sb-DEFAULT-ImpAPPandAPA</label>
                     </staffDef>
                     <staffDef xml:id="skjmk23" n="18" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="l8r3qcr2">5Sb-EXCEPTION(dot.perf)-Alt</label>
                     </staffDef>
                     <staffDef xml:id="skjmk3" n="19" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="l8r3qr2">5Sb-EXCEPTION(dot.perf)-Alt</label>
                     </staffDef>
                     <staffDef xml:id="szkypxt2" n="23" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="la1rrzd1">6Sb-DEFAULT-ImpAPPandAlt</label>
                     </staffDef>
                     <staffDef xml:id="s31tmlh1" n="25" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="lqvoa931">6Sb-EXCEPTION(dot.perf)-Regular</label>
                     </staffDef>
                     <staffDef xml:id="s7z6b8d1" n="26" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="lls9h4u1">ref</label>
                     </staffDef>
                  </staffGrp>
               </scoreDef>
               <section xml:id="sjfrbfh1">
                  <measure xml:id="measure001" right="invis" n="1">
                     <staff xml:id="sdg7hst1" n="1">
                        <layer xml:id="llnskeb" n="1">
                           <mensur xml:id="m1twlteb" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- 2 Semibreves - Alteration -->
                           <note xml:id="nvzv8731" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="baju6u1" form="dashed" />
                           <note xml:id="nqb7tjh1" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nzw5wgu2" dur="brevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="b6u1" form="dashed" />
                           <note xml:id="naudxyw1" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="bhet54v1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s9x3ujp2" n="2">
                        <layer xml:id="lbw1aul2" n="1">
                           <mensur xml:id="m9rhqrl" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <note xml:id="ndl57s61" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="ni2i30d1" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="dh3gpgx1" form="div" />
                           <barLine xml:id="aoju6u1" form="dashed" />
                           <note xml:id="nhyk5ql2" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nhyawp01" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bbaoblx1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s9x3ujp" n="3">
                        <layer xml:id="lbwaul2" n="1">
                           <mensur xml:id="m9rhqr" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <note xml:id="ndl57s1" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="ni2i3d2" dur="semibrevis" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="daggbhq" form="aug" />
                           <note xml:id="ni2i0d3" dur="minima" oct="4" pname="c" />
                           <dot xml:id="dh3ggx1" form="div" />
                           <barLine xml:id="aou6u1" form="dashed" />
                           <note xml:id="nhykql2" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nhywp01" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="baoblx1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s9x3uj" n="4">
                        <layer xml:id="lbwul2" n="1">
                           <mensur xml:id="rhqrl" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <note xml:id="nd7s61" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="ni30d1" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="dh3gx1" form="div" />
                           <barLine xml:id="au6u1" form="dashed" />
                           <note xml:id="nhykl2a" dur="semibrevis" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="ds1evxi" form="aug" />
                           <note xml:id="nhykl2b" dur="minima" oct="4" pname="c" />
                           <note xml:id="nhya01" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="boblx1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="sd9j8g3" n="5">
                        <layer xml:id="lw4xk5a" n="1">
                           <mensur xml:id="m1l3x31b" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- 3 Semibreves - Perfect -->
                           <note xml:id="nds6fgc1" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="boju6u1" form="dashed" />
                           <note xml:id="nfkd3ya1" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nt702re" dur="brevis" oct="4" pname="c" />
                           <note xml:id="ncpjorc1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="bau6u1" form="dashed" />
                           <note xml:id="nwpfzr4" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="bldfexg1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="stw06zl2" n="6">
                        <layer xml:id="llcgv8u1" n="1">
                           <mensur xml:id="m15uf1in" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <note xml:id="n9wl0rs2" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="ngrra1n2" dur="semibrevis" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="d1odcm7r" form="aug" />
                           <note xml:id="ngrra1n2a" dur="minima" oct="4" pname="c" />
                           <dot xml:id="dow86e01" form="div" />
                           <barLine xml:id="bao6u1" form="dashed" />
                           <note xml:id="nobj47q2" dur="brevis" oct="4" pname="c" />
                           <note xml:id="ntj8r621" dur="brevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="baoju1" form="dashed" />
                           <note xml:id="niqowp31" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="b2cte8r2" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="stw062" n="7">
                        <layer xml:id="cgv8u1" n="1">
                           <mensur xml:id="m15uin" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <note xml:id="n9wls2" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="nga1n2" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="dowe01" form="div" />
                           <barLine xml:id="bao6" form="dashed" />
                           <note xml:id="nobj47" dur="semibrevis" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="d1uu84rm" form="aug" />
                           <note xml:id="nj47" dur="minima" oct="4" pname="c" />
                           <note xml:id="ntj821" dur="brevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bju1" form="dashed" />
                           <note xml:id="niqo31" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="bte8r2" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="stw06z" n="8">
                        <layer xml:id="llc8u1" n="1">
                           <mensur xml:id="m5un" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <note xml:id="n9wl0r" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="ngrrn2" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="dowe1" form="div" />
                           <barLine xml:id="bau1" form="dashed" />
                           <note xml:id="nobj42" dur="brevis" oct="4" pname="c" />
                           <note xml:id="ntj8r1" dur="brevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="oju1" form="dashed" />
                           <note xml:id="niqp31" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="b2e8r2" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s1nu8nw2" n="9">
                        <layer xml:id="lvssck21" n="1">
                           <mensur xml:id="m1bjn3sx" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- 4 Semibreves - Imperfection a.p.p. -->
                           <note xml:id="nab7fp61" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="nrl1z0j1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b2ce31" form="dashed" />
                           <note xml:id="ntrmzd61" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nnqvfu91" dur="brevis" oct="4" pname="c" />
                           <note xml:id="n4afipo2" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b2m8ce" form="dashed" />
                           <note xml:id="nb2ote81" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="b2m8ce31" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s1nu8n2" n="10">
                        <layer xml:id="lvsck21" n="1">
                           <mensur xml:id="m1bj3sx" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- 4 Semibreves - Imperfection a.p.p. -->
                           <note xml:id="nab7f61" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="nrl1zj1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b2e31" form="dashed" />
                           <note xml:id="ntrmz61a" dur="semibrevis" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="d1xc35ge" form="aug" />
                           <note xml:id="ntrmz61b" dur="minima" oct="4" pname="c" />
                           <note xml:id="nnqvf91" dur="brevis" oct="4" pname="c" />
                           <note xml:id="n4afio2a" dur="semibrevis" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="dgly3ef" form="aug" />
                           <note xml:id="n4afio2b" dur="minima" oct="4" pname="c" />
                           <barLine xml:id="b28ce" form="dashed" />
                           <note xml:id="nb2ot81" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="b28ce31" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s1nu82" n="11">
                        <layer xml:id="lvs001" n="1">
                           <mensur xml:id="jn00x" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- 4 Semibreves - Imperfection a.p.p. -->
                           <note xml:id="na7fp61" dur="longa" oct="4" pname="c" color="violet" />
                           <barLine xml:id="ce31" form="dashed" />
                           <note xml:id="nr1z0j1" dur="brevis" oct="4" pname="c" />
                           <note xml:id="ntrzd61" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nnqfu91" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="ds39xkw" form="div" />
                           <barLine xml:id="m8ce" form="dashed" />
                           <note xml:id="n4aipo2" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nb2te81" dur="longa" dur.quality="imperfecta" oct="4" pname="c" />
                           <barLine xml:id="m8ce31" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="efes1nu82" n="12">
                        <layer xml:id="efelvs001" n="1">
                           <mensur xml:id="efejn00x" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- 4 Semibreves - Imperfection a.p.p. -->
                           <note xml:id="efena7fp61" dur="longa" oct="4" pname="c" color="violet" />
                           <barLine xml:id="efece31" form="dashed" />
                           <note xml:id="efenr1z0j1" dur="semibrevis" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="ditkq7g" form="aug" />
                           <note xml:id="efenr1z0j102" dur="minima" oct="4" pname="c" />
                           <note xml:id="efentrzd61" dur="semibrevis" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="d1gc1xrb" form="aug" />
                           <note xml:id="efentrzd6102" dur="minima" oct="4" pname="c" />
                           <note xml:id="efennqfu91" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="d1kl379o" form="div" />
                           <barLine xml:id="efem8ce" form="dashed" />
                           <note xml:id="efen4aipo2" dur="brevis" oct="4" pname="c" />
                           <note xml:id="efenb2te81" dur="longa" dur.quality="imperfecta" oct="4" pname="c" />
                           <barLine xml:id="efem8ce31" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s1n2001" n="13">
                        <layer xml:id="lv01001" n="1">
                           <mensur xml:id="jnx001" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- 4 Semibreves - Imperfection a.p.p. -->
                           <note xml:id="na7f1001" dur="longa" oct="4" pname="c" />
                           <dot xml:id="dfpo6ox" form="div" />
                           <barLine xml:id="m30001001" form="dashed" />
                           <note xml:id="nr1j1001" dur="brevis" oct="4" pname="c" />
                           <note xml:id="ntr1a001" dur="semibrevis" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="dniimp0" form="aug" />
                           <note xml:id="ntr1b001" dur="minima" oct="4" pname="c" />
                           <note xml:id="nnqv1001" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="me001" form="dashed" />
                           <note xml:id="n4afa001" dur="semibrevis" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="d1wm4izc" form="aug" />
                           <note xml:id="n4afb001" dur="minima" oct="4" pname="c" />
                           <note xml:id="nb2t1001" dur="longa" dur.quality="imperfecta" oct="4" pname="c" />
                           <barLine xml:id="m8c1001" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="abascmegt91" n="14">
                        <layer xml:id="abalxi8d54" n="1">
                           <mensur xml:id="abam1uhodeg" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- 5 Semibreves - Imperfection a.p.p. & Imperfection a.p.a. -->
                           <note xml:id="abanlkmbbs2" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="abanwws6fq1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="ababu6u1" form="dashed" />
                           <note xml:id="abanain8pr2" dur="brevis" oct="4" pname="c" />
                           <note xml:id="aban1w24gw201" dur="semibrevis" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="dfb7f90" form="aug" />
                           <note xml:id="aban1w24gw202" dur="minima" oct="4" pname="c" />
                           <note xml:id="abanf5m9o2" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="ababaou1" form="dashed" />
                           <note xml:id="abangy3vxc1" dur="brevis" oct="4" pname="c" />
                           <note xml:id="abanlsp3rp2" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="ababqnep2o1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="bcbsug9jk41" n="15">
                        <layer xml:id="bcblccz6a61" n="1">
                           <mensur xml:id="bcbm1b4w1mx" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- 5 Semibreves - EXCEPTION: Dot of Perfection - Alteration -->
                           <note xml:id="bcbnta4lys2" dur="longa" oct="4" pname="c" />
                           <dot xml:id="bcbdvp98d" form="div" />
                           <barLine xml:id="bcbb71nd1" form="dashed" />
                           <note xml:id="bcbnansmgy2" dur="brevis" oct="4" pname="c" />
                           <note xml:id="bcbnrix6h9101" dur="semibrevis" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="d1lss00v" form="aug" />
                           <note xml:id="bcbnrix6h9102" dur="minima" oct="4" pname="c" />
                           <note xml:id="bcbnlo23al2" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="bcbbuk7d1" form="dashed" />
                           <note xml:id="bcbnq585bo2" dur="brevis" oct="4" pname="c" />
                           <note xml:id="bcbntl0uhf1" dur="brevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bcbbuknd1" form="dashed" />
                           <note xml:id="bcbneuhlra" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="bcbbuk71nd1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="cdcsug9jk" n="16">
                        <layer xml:id="cdclccz6a" n="1">
                           <mensur xml:id="cdcm1b4w1" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- 5 Semibreves - EXCEPTION: Dot of Perfection - Alteration -->
                           <note xml:id="cdcnta4ly" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="cdcb71n" form="dashed" />
                           <note xml:id="cdcnansmg" dur="brevis" oct="4" pname="c" />
                           <note xml:id="cdcnrix6h01" dur="semibrevis" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="dgkszu6" form="aug" />
                           <note xml:id="cdcnrix6h02" dur="minima" oct="4" pname="c" />
                           <note xml:id="cdcnlo23a" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="cdcdvp9" form="div" />
                           <barLine xml:id="cdcbuk7" form="dashed" />
                           <note xml:id="cdcnq585b" dur="brevis" oct="4" pname="c" />
                           <note xml:id="cdcntl0uh" dur="brevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="cdcbukn" form="dashed" />
                           <note xml:id="cdcneuhl" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="cdcbuk71n" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="scmegt91" n="17">
                        <layer xml:id="lxi8d54" n="1">
                           <mensur xml:id="m1uhodeg" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- 5 Semibreves - Imperfection a.p.p. & Imperfection a.p.a. -->
                           <note xml:id="nlkmbbs2" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="nwws6fq1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="bu6u1" form="dashed" />
                           <note xml:id="nain8pr2" dur="brevis" oct="4" pname="c" />
                           <note xml:id="n1w24gw2" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nf5m9o2" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="baou1" form="dashed" />
                           <note xml:id="ngy3vxc1" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nlsp3rp2" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bqnep2o1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="sug9jk41" n="18">
                        <layer xml:id="lccz6a61" n="1">
                           <mensur xml:id="m1b4w1mx" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- 5 Semibreves - EXCEPTION: Dot of Perfection - Alteration -->
                           <note xml:id="nta4lys2" dur="longa" oct="4" pname="c" />
                           <dot xml:id="dvp98d" form="div" />
                           <barLine xml:id="b71nd1" form="dashed" />
                           <note xml:id="nansmgy2" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nrix6h91" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nlo23al2" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="buk7d1" form="dashed" />
                           <note xml:id="nq585bo2" dur="brevis" oct="4" pname="c" />
                           <note xml:id="ntl0uhf1" dur="brevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="buknd1" form="dashed" />
                           <note xml:id="neuhlra" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="buk71nd1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="sug9jk" n="19">
                        <layer xml:id="lccz6a" n="1">
                           <mensur xml:id="m1b4w1" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- 5 Semibreves - EXCEPTION: Dot of Perfection - Alteration -->
                           <note xml:id="nta4ly" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="b71n" form="dashed" />
                           <note xml:id="nansmg" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nrix6h" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nlo23a" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="dvp9" form="div" />
                           <barLine xml:id="buk7" form="dashed" />
                           <note xml:id="nq585b" dur="brevis" oct="4" pname="c" />
                           <note xml:id="ntl0uh" dur="brevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bukn" form="dashed" />
                           <note xml:id="neuhl" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="buk71n" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="sl1a2zx2" n="23">
                        <layer xml:id="l91tyhw2" n="1">
                           <mensur xml:id="m58wil5" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- 6 Semibreves - Imperfection a.p.p. & Alteration -->
                           <note xml:id="n5mg8021" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="nmm2wzw1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="ikl2o1" form="dashed" />
                           <note xml:id="n3bwpth" dur="brevis" oct="4" pname="c" />
                           <note xml:id="n84sxns1" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nmweeqh1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b3i2o1" form="dashed" />
                           <note xml:id="n1fo9i6" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nx1np6s1" dur="brevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="b3ikl1" form="dashed" />
                           <note xml:id="n2gvlnv1" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="b3ikl2o1" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="smz2yv41" n="25">
                        <layer xml:id="lf7kcpj2" n="1">
                           <mensur xml:id="m1e9xnc8" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- 6 Semibreves - EXCEPTION: Dot of Perfection - Regular Values -->
                           <note xml:id="ngliydq2" dur="longa" oct="4" pname="c" />
                           <dot xml:id="dljoa31" form="div" />
                           <barLine xml:id="biye22" form="dashed" />
                           <note xml:id="ndazey5" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nfn34jb1" dur="brevis" oct="4" pname="c" />
                           <note xml:id="n0azi0q1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="biy2r2" form="dashed" />
                           <note xml:id="nuq5tat2" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nxdwlnq2" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nw2by431" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="be22r2" form="dashed" />
                           <note xml:id="nhncinu2" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="biye22r2" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s8fogqh1" n="26">
                        <layer xml:id="l9m1xau1" n="1">
                           <mensur xml:id="m144pfoe" modusmaior="2" modusminor="3" prolatio="2" tempus="2" />
                           <!-- reference -->
                           <note xml:id="n68lz4b1" dur="brevis" oct="4" pname="c" />
                           <note xml:id="n2acyz41" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nds1e32" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b6ky6t11" form="dashed" />
                           <note xml:id="nkw4lru2" dur="brevis" oct="4" pname="c" />
                           <note xml:id="n4di64w1" dur="brevis" oct="4" pname="c" />
                           <note xml:id="ngg6x0t1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="bwanub41" form="dashed" />
                           <note xml:id="n7eu6yx1" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nk0n3461" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nstf0c51" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b53qd93" form="dashed" />
                           <note xml:id="nx5od02" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nj0xqv51" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nu3pggl2" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="btpp6gi1" form="dashed" />
                        </layer>
                     </staff>
                  </measure>
               </section>
            </score>
         </mdiv>
      </body>
   </music>
</mei>

@martha-thomae
Copy link
Contributor Author

martha-thomae commented Oct 22, 2024

Finally, a more complicated example, with perfect mensuration (i.e., triple meter) at multiple note levels (and with various dots).

  1. Mensural Notation Test Mixed Perfect Levels with modus perfectum and tempus perfectum (i.e., longas and breves perfect by default). The violet notes are the ones that are changed by the context at the longa-breve level (these are, imperfect longas and altered breves) and the green notes are the ones that are changed by the context at the breve-semibreve level (these are, imperfect breves and altered semibreves)

Quasi-score

<?xml version="1.0" encoding="UTF-8"?><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?><mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0">
   <meiHead>
      <fileDesc>
         <titleStmt>
            <title>Mensural Notation Test Cases - Rhythmic Interpretation</title>
         </titleStmt>
         <pubStmt/>
      </fileDesc>
      <encodingDesc xml:id="e4or3zv2">
         <appInfo xml:id="aeik21o1">
            <application xml:id="awai5ts2" startdate="2024-10-20T03:26:05" version="1.0.14p">
               <name xml:id="nrgy22x2">mei-friend</name>
               <p xml:id="pvsv80o2">First edit by mei-friend 1.0.14p, 3 September 2024.</p>
            </application>
         </appInfo>
      </encodingDesc>
   </meiHead>
   <music>
      <body>
         <mdiv>
            <score>
               <scoreDef>
                  <staffGrp n="1" symbol="bracket">
                     <staffDef n="1" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label>1a</label>
                     </staffDef>
                     <staffDef n="2" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label>1b</label>
                     </staffDef>
                     <staffDef n="3" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label>1c</label>
                     </staffDef>
                     <staffDef n="4" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label>1d</label>
                     </staffDef>
                     <staffDef n="5" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label>1e</label>
                     </staffDef>
                     <staffDef n="6" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label>1f</label>
                     </staffDef>
                     <staffDef n="7" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label>2a</label>
                     </staffDef>
                     <staffDef n="8" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label>2b</label>
                     </staffDef>
                     <staffDef n="9" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label>2c</label>
                     </staffDef>
                     <staffDef n="10" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label>2d</label>
                     </staffDef>
                     <staffDef n="11" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label>2d</label>
                     </staffDef>
                     <staffDef n="12" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label>2d</label>
                     </staffDef>
                     <staffDef n="26" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label>ref</label>
                     </staffDef>
                  </staffGrp>
               </scoreDef>
               <section>
                  <measure right="invis" n="1">
                     <staff n="1">
                        <layer n="1">
                           <mensur modusmaior="2" modusminor="3" prolatio="2" tempus="3"/>
                           <note dur="longa" oct="4" pname="c" color="violet"/>
                           <note dur="brevis" oct="4" pname="c"/>
                           <barLine form="dashed"/>
                           <note dur="longa" oct="4" pname="c"/>
                           <barLine form="dashed"/>
                        </layer>
                     </staff>
                     <staff n="2">
                        <layer n="1">
                           <mensur modusmaior="2" modusminor="3" prolatio="2" tempus="3"/>
                           <note dur="longa" oct="4" pname="c" color="violet"/>
                           <note dur="semibrevis" oct="4" pname="c"/>
                           <note dur="semibrevis" oct="4" pname="c"/>
                           <note dur="semibrevis" oct="4" pname="c"/>
                           <barLine form="dashed"/>
                           <note dur="longa" oct="4" pname="c"/>
                           <barLine form="dashed"/>
                        </layer>
                     </staff>
                     <staff n="3">
                        <layer n="1">
                           <mensur modusmaior="2" modusminor="3" prolatio="2" tempus="3"/>
                           <note dur="longa" oct="4" pname="c" color="violet"/>
                           <note dur="semibrevis" oct="4" pname="c"/>
                           <note dur="semibrevis" oct="4" pname="c" color="green"/>
                           <barLine form="dashed"/>
                           <note dur="longa" oct="4" pname="c"/>
                           <barLine form="dashed"/>
                        </layer>
                     </staff>

                     <staff n="4">
                        <layer n="1">
                           <mensur modusmaior="2" modusminor="3" prolatio="2" tempus="3"/>
                           <note dur="longa" oct="4" pname="c"/>
                           <dot/>
                           <barLine form="dashed"/>
                           <note dur="brevis" oct="4" pname="c"/>
                           <note dur="longa" oct="4" pname="c" color="violet"/>
                           <barLine form="dashed"/>
                        </layer>
                     </staff>
                     <staff n="5">
                        <layer n="1">
                           <mensur modusmaior="2" modusminor="3" prolatio="2" tempus="3"/>
                           <note dur="longa" oct="4" pname="c"/>
                           <dot/>
                           <barLine form="dashed"/>
                           <note dur="semibrevis" oct="4" pname="c"/>
                           <note dur="semibrevis" oct="4" pname="c"/>
                           <note dur="semibrevis" oct="4" pname="c"/>
                           <note dur="longa" oct="4" pname="c" color="violet"/>
                           <barLine form="dashed"/>
                        </layer>
                     </staff>
                     <staff n="6">
                        <layer n="1">
                           <mensur modusmaior="2" modusminor="3" prolatio="2" tempus="3"/>
                           <note dur="longa" oct="4" pname="c"/>
                           <dot/>
                           <barLine form="dashed"/>
                           <note dur="semibrevis" oct="4" pname="c"/>
                           <note dur="semibrevis" oct="4" pname="c" color="green"/>
                           <note dur="longa" oct="4" pname="c" color="violet"/>
                           <barLine form="dashed"/>
                        </layer>
                     </staff>

                     <staff n="7">
                        <layer n="1">
                           <mensur modusmaior="2" modusminor="3" prolatio="2" tempus="3"/>
                           <note dur="longa" oct="4" pname="c"/>
                           <barLine form="dashed"/>
                           <note dur="brevis" oct="4" pname="c"/>
                           <note dur="brevis" oct="4" pname="c" color="violet"/>
                           <barLine form="dashed"/>
                           <note dur="longa" oct="4" pname="c"/>
                           <barLine form="dashed"/>
                        </layer>
                     </staff>
                     <staff n="8">
                        <layer n="1">
                           <mensur modusmaior="2" modusminor="3" prolatio="2" tempus="3"/>
                           <note dur="longa" oct="4" pname="c"/>
                           <barLine form="dashed"/>
                           <note dur="semibrevis" oct="4" pname="c"/>
                           <note dur="semibrevis" oct="4" pname="c" color="green"/>
                           <note dur="brevis" oct="4" pname="c" color="violet"/>
                           <barLine form="dashed"/>
                           <note dur="longa" oct="4" pname="c"/>
                           <barLine form="dashed"/>
                        </layer>
                     </staff>
                     <staff n="9">
                        <layer n="1">
                           <mensur modusmaior="2" modusminor="3" prolatio="2" tempus="3"/>
                           <note dur="longa" oct="4" pname="c"/>
                           <barLine form="dashed"/>
                           <note dur="semibrevis" oct="4" pname="c"/>
                           <note dur="semibrevis" oct="4" pname="c" />
                           <note dur="semibrevis" oct="4" pname="c" />
                           <note dur="brevis" oct="4" pname="c" color="violet"/>
                           <barLine form="dashed"/>
                           <note dur="longa" oct="4" pname="c"/>
                           <barLine form="dashed"/>
                        </layer>
                     </staff>

                     <staff n="10">
                        <layer n="1">
                           <mensur modusmaior="2" modusminor="3" prolatio="2" tempus="3"/>
                           <note dur="longa" oct="4" pname="c" color="violet"/>
                           <note dur="brevis" oct="4" pname="c" />
                           <dot />
                           <barLine form="dashed"/>
                           <note dur="brevis" oct="4" pname="c"/>
                           <note dur="longa" oct="4" pname="c" color="violet"/>
                           <barLine form="dashed"/>
                        </layer>
                     </staff>
                     <staff n="11">
                        <layer n="1">
                           <mensur modusmaior="2" modusminor="3" prolatio="2" tempus="3"/>
                           <note dur="longa" oct="4" pname="c" color="violet"/>
                           <note dur="semibrevis" oct="4" pname="c"/>
                           <note dur="semibrevis" oct="4" pname="c" color="green"/>
                           <dot />
                           <barLine form="dashed"/>
                           <note dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note dur="semiminima" oct="4" pname="c"/>
                           <note dur="semibrevis" oct="4" pname="c"/>
                           <note dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note dur="semiminima" oct="4" pname="c"/>
                           <note dur="longa" oct="4" pname="c" color="violet"/>
                           <barLine form="dashed"/>
                        </layer>
                     </staff>
                     <staff n="12">
                        <layer n="1">
                           <mensur modusmaior="2" modusminor="3" prolatio="2" tempus="3"/>
                           <note dur="longa" oct="4" pname="c" color="violet"/>
                           <note dur="minima" oct="4" pname="c" />
                           <dot/>
                           <note dur="semiminima" oct="4" pname="c"/>
                           <note dur="semibrevis" oct="4" pname="c" color="green"/>
                           <dot />
                           <barLine form="dashed"/>
                           <note dur="semibrevis" oct="4" pname="c"/>
                           <note dur="semibrevis" oct="4" pname="c"/>
                           <note dur="semibrevis" oct="4" pname="c"/>
                           <note dur="longa" oct="4" pname="c" color="violet"/>
                           <barLine form="dashed"/>
                        </layer>
                     </staff>

                     <staff n="26">
                        <layer n="1">
                           <mensur modusmaior="2" modusminor="3" prolatio="2" tempus="3"/>
                           <!-- reference -->
                           <note dur="brevis" oct="4" pname="c"/>
                           <note dur="brevis" oct="4" pname="c"/>
                           <note dur="brevis" oct="4" pname="c"/>
                           <barLine form="dashed"/>
                           <note dur="brevis" oct="4" pname="c"/>
                           <note dur="brevis" oct="4" pname="c"/>
                           <note dur="brevis" oct="4" pname="c"/>
                           <barLine form="dashed"/>
                           <note dur="brevis" oct="4" pname="c"/>
                           <note dur="brevis" oct="4" pname="c"/>
                           <note dur="brevis" oct="4" pname="c"/>
                           <barLine form="dashed"/>
                           <note dur="brevis" oct="4" pname="c"/>
                           <note dur="brevis" oct="4" pname="c"/>
                           <note dur="brevis" oct="4" pname="c"/>
                           <barLine form="dashed"/>
                        </layer>
                     </staff>
                  </measure>
               </section>
            </score>
         </mdiv>
      </body>
   </music>
</mei>

Properly lined up score

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0">
   <meiHead>
      <fileDesc>
         <titleStmt>
            <title>Mensural Notation Test Cases - Rhythmic Interpretation</title>
         </titleStmt>
         <pubStmt />
      </fileDesc>
      <encodingDesc xml:id="e4or3zv2">
         <appInfo xml:id="aeik21o1">
            <application xml:id="awai5ts2" startdate="2024-10-20T03:26:05" version="1.0.14p">
               <name xml:id="nrgy22x2">mei-friend</name>
               <p xml:id="pvsv80o2">First edit by mei-friend 1.0.14p, 3 September 2024.</p>
            </application>
         </appInfo>
      </encodingDesc>
   </meiHead>
   <music>
      <body>
         <mdiv xml:id="m30pujq">
            <score xml:id="sd8wlk">
               <scoreDef xml:id="s3q46s6">
                  <staffGrp xml:id="s1puyh1a" n="1" symbol="bracket">
                     <staffDef xml:id="s1y7td88" n="1" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="l1d55pft">1a</label>
                     </staffDef>
                     <staffDef xml:id="smwj1s" n="2" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="l1jwxlck">1b</label>
                     </staffDef>
                     <staffDef xml:id="sjs37v6" n="3" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="l5ize0k">1c</label>
                     </staffDef>
                     <staffDef xml:id="sjhy6zy" n="4" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="lqdno59">1d</label>
                     </staffDef>
                     <staffDef xml:id="smd35i1" n="5" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="ln2v04x">1e</label>
                     </staffDef>
                     <staffDef xml:id="s72t7bm" n="6" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="lnkn2ia">1f</label>
                     </staffDef>
                     <staffDef xml:id="sdei2fi" n="7" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="lp0sdeo">2a</label>
                     </staffDef>
                     <staffDef xml:id="s1c1cgre" n="8" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="l1wc6gkh">2b</label>
                     </staffDef>
                     <staffDef xml:id="sb0c8xy" n="9" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="l1up15vk">2c</label>
                     </staffDef>
                     <staffDef xml:id="s13gh9g5" n="10" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="ljm0xp5">2d</label>
                     </staffDef>
                     <staffDef xml:id="s1an5ru1" n="11" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="l923hdo">2d</label>
                     </staffDef>
                     <staffDef xml:id="s16zws5d" n="12" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="l1p4mbve">2d</label>
                     </staffDef>
                     <staffDef xml:id="sef009r" n="26" notationtype="mensural" lines="5" clef.shape="C" clef.line="3" modusmaior="2" modusminor="3" prolatio="2" tempus="2">
                        <label xml:id="llix8kt">ref</label>
                     </staffDef>
                  </staffGrp>
               </scoreDef>
               <section xml:id="swczb22">
                  <measure xml:id="mvs46je" right="invis" n="1">
                     <staff xml:id="sgaae3w" n="1">
                        <layer xml:id="l1nvwn1x" n="1">
                           <mensur xml:id="mfbr0im" modusmaior="2" modusminor="3" prolatio="2" tempus="3" />
                           <note xml:id="n1ujlk0b" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="n180pewu" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b14plsbr" form="dashed" />
                           <note xml:id="nsr3gw1" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="b1jiel0e" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="slfw0fi" n="2">
                        <layer xml:id="lqfscs0" n="1">
                           <mensur xml:id="m1nvpbyp" modusmaior="2" modusminor="3" prolatio="2" tempus="3" />
                           <note xml:id="n1mmelxz" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="nbmit4h" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n1p7v9rh" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n1izfz3m" dur="semibrevis" oct="4" pname="c" />
                           <barLine xml:id="b5qy9r0" form="dashed" />
                           <note xml:id="ncp8eq1" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="b1uf78vl" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s2wwhbs" n="3">
                        <layer xml:id="lybwyzq" n="1">
                           <mensur xml:id="m1a9cac2" modusmaior="2" modusminor="3" prolatio="2" tempus="3" />
                           <note xml:id="n13hivww" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="n1jcm89v" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n1sunuav" dur="semibrevis" dur.quality="altera" oct="4" pname="c" color="green" />
                           <barLine xml:id="b18dd5q8" form="dashed" />
                           <note xml:id="n5yvwf4" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="bmzhtc8" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="sussjhj" n="4">
                        <layer xml:id="lq2v0zj" n="1">
                           <mensur xml:id="mlbyx8j" modusmaior="2" modusminor="3" prolatio="2" tempus="3" />
                           <note xml:id="n1hr7isz" dur="longa" oct="4" pname="c" />
                           <dot xml:id="d1c4om9c" form="div" />
                           <barLine xml:id="bi9i4ky" form="dashed" />
                           <note xml:id="n1iwbtpj" dur="brevis" oct="4" pname="c" />
                           <note xml:id="n1sm2prk" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="b1t1bvae" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s1k9ljvh" n="5">
                        <layer xml:id="l5s54ac" n="1">
                           <mensur xml:id="m14c0ako" modusmaior="2" modusminor="3" prolatio="2" tempus="3" />
                           <note xml:id="na65yaq" dur="longa" oct="4" pname="c" />
                           <dot xml:id="d3wmdj3" form="div" />
                           <barLine xml:id="b13bnlf0" form="dashed" />
                           <note xml:id="n1b5gkkt" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n143tj7j" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n1cdboc7" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nkbuqbb" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bcqmqba" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s10pw6gh" n="6">
                        <layer xml:id="lt1l4bi" n="1">
                           <mensur xml:id="mtlpkam" modusmaior="2" modusminor="3" prolatio="2" tempus="3" />
                           <note xml:id="n2dgj16" dur="longa" oct="4" pname="c" />
                           <dot xml:id="d1v3wj25" form="div" />
                           <barLine xml:id="b1r87d0m" form="dashed" />
                           <note xml:id="n19a7ck0" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nwshygd" dur="semibrevis" dur.quality="altera" oct="4" pname="c" color="green" />
                           <note xml:id="nqor5kn" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="buifzd5" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s1x861gw" n="7">
                        <layer xml:id="lamoc5b" n="1">
                           <mensur xml:id="mgdipr2" modusmaior="2" modusminor="3" prolatio="2" tempus="3" />
                           <note xml:id="nta1skr" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="bs26af8" form="dashed" />
                           <note xml:id="n1leyuto" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nbkw9w1" dur="brevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="b1xa09l7" form="dashed" />
                           <note xml:id="n657oy5" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="b1yo8zvt" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s15mjt7l" n="8">
                        <layer xml:id="lg7oqkv" n="1">
                           <mensur xml:id="m15hicab" modusmaior="2" modusminor="3" prolatio="2" tempus="3" />
                           <note xml:id="npbmiju" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="bbw0j4f" form="dashed" />
                           <note xml:id="nqn66me" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n1ebnn0v" dur="semibrevis" dur.quality="altera" oct="4" pname="c" color="green" />
                           <note xml:id="n4xeurw" dur="brevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="b139ylxi" form="dashed" />
                           <note xml:id="n1ujwj9v" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="b48avot" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="sbw1iju" n="9">
                        <layer xml:id="l3u6vau" n="1">
                           <mensur xml:id="m10fyf0g" modusmaior="2" modusminor="3" prolatio="2" tempus="3" />
                           <note xml:id="n4srk35" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="bj2h4yc" form="dashed" />
                           <note xml:id="n1gt071x" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n1oan8al" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n120d3pq" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nzbdn73" dur="brevis" dur.quality="altera" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bzidknj" form="dashed" />
                           <note xml:id="n10dcxyv" dur="longa" oct="4" pname="c" />
                           <barLine xml:id="b1hk53wz" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="szg5i7i" n="10">
                        <layer xml:id="ldi24af" n="1">
                           <mensur xml:id="m1x7pjd6" modusmaior="2" modusminor="3" prolatio="2" tempus="3" />
                           <note xml:id="n4hylzz" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="n1n5t3y6" dur="brevis" oct="4" pname="c" />
                           <dot xml:id="dc72tu4" form="div" />
                           <barLine xml:id="b156ol3a" form="dashed" />
                           <note xml:id="n1dw0ozu" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nptw52r" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="b1y4xeh8" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="syzu3zw" n="11">
                        <layer xml:id="lj9qt61" n="1">
                           <mensur xml:id="m1lnm87q" modusmaior="2" modusminor="3" prolatio="2" tempus="3" />
                           <note xml:id="n1pj4j9t" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="n12y0rg8" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nkl38yk" dur="semibrevis" dur.quality="altera" oct="4" pname="c" color="green" />
                           <dot xml:id="d1epz0yv" form="div" />
                           <barLine xml:id="buu68i0" form="dashed" />
                           <note xml:id="n1x7ricu" dur="minima" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="d54yg1r" form="aug" />
                           <note xml:id="n1yusl1m" dur="semiminima" oct="4" pname="c" />
                           <note xml:id="n1l50fqp" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nuve33s" dur="minima" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="dlb6923" form="aug" />
                           <note xml:id="noypdfl" dur="semiminima" oct="4" pname="c" />
                           <note xml:id="n1a8qw8w" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="bj7msdv" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="s10vbhq5" n="12">
                        <layer xml:id="lqwcbne" n="1">
                           <mensur xml:id="m1hb3d34" modusmaior="2" modusminor="3" prolatio="2" tempus="3" />
                           <note xml:id="n3j3th2" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <note xml:id="n1eoxhbp" dur="minima" dur.quality="perfecta" oct="4" pname="c" />
                           <dot xml:id="d1yokvxi" form="aug" />
                           <note xml:id="n1oza2lw" dur="semiminima" oct="4" pname="c" />
                           <note xml:id="num0kmu" dur="semibrevis" dur.quality="altera" oct="4" pname="c" color="green" />
                           <dot xml:id="d12jltq2" form="div" />
                           <barLine xml:id="b121ep8i" form="dashed" />
                           <note xml:id="nv6g916" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nsy0vj7" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="n5juxpu" dur="semibrevis" oct="4" pname="c" />
                           <note xml:id="nf77bz3" dur="longa" dur.quality="imperfecta" oct="4" pname="c" color="violet" />
                           <barLine xml:id="b1wfs6hz" form="dashed" />
                        </layer>
                     </staff>
                     <staff xml:id="sl4ev1k" n="26">
                        <layer xml:id="l1nvklk5" n="1">
                           <mensur xml:id="mcz760k" modusmaior="2" modusminor="3" prolatio="2" tempus="3" />
                           <!-- reference -->
                           <note xml:id="nh6ybpl" dur="brevis" oct="4" pname="c" />
                           <note xml:id="ngmxnj3" dur="brevis" oct="4" pname="c" />
                           <note xml:id="n14pq4l1" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b1w28eu2" form="dashed" />
                           <note xml:id="nuv2e7v" dur="brevis" oct="4" pname="c" />
                           <note xml:id="nzuz73t" dur="brevis" oct="4" pname="c" />
                           <note xml:id="n15lyswd" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b19paw7z" form="dashed" />
                           <note xml:id="n1hgss4p" dur="brevis" oct="4" pname="c" />
                           <note xml:id="n1lmn9km" dur="brevis" oct="4" pname="c" />
                           <note xml:id="njmjfuh" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b1m528tr" form="dashed" />
                           <note xml:id="n4q5f1h" dur="brevis" oct="4" pname="c" />
                           <note xml:id="n1csjh5s" dur="brevis" oct="4" pname="c" />
                           <note xml:id="n1hykm1d" dur="brevis" oct="4" pname="c" />
                           <barLine xml:id="b1262c1s" form="dashed" />
                        </layer>
                     </staff>
                  </measure>
               </section>
            </score>
         </mdiv>
      </body>
   </music>
</mei>

@martha-thomae
Copy link
Contributor Author

In all these examples, I am using the last voice as a reference to check if the values of all the notes of the voices above are computed correctly. As I said, the violet (or green) notes are the ones that are supposed to have experienced a modification by context: an imperfection (being changed from their ternary default value into a binary value) or an alteration (being now twice as long as their original value). The dotted barlines have been added to quickly check if the duration is computed properly; if it is, the barlines should line up with the ones in the voice of reference (last staff in all files).

@@ -107,6 +107,7 @@ class ScoringUpFunctor : public Functor {
int m_modusMinor;
int m_tempus;
int m_prolatio;
std::tuple<int, int, int, int> m_mensurAsTuplet;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not use a Mensur object? That would avoid all the tuple hassle. See this as an example

As you will see, the only trick is that you need to use abs() when using the values since default is -3. So Mensur::GetProlatio() will return -3 (when nothing is set) or otherwise 2 or 3. See the definition here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants