rism-digital / verovio

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

Measure repeat numbers (mRpt@n) #2784

Open craigsapp opened 2 years ago

craigsapp commented 2 years ago

Measure repeat signs always have numbers above them when rendered in verovio, starting on the first repeat sign which has a 2 above it. It would be useful to control display of these numbers (which I do not think is implemented yet).

Looking at the attributes for mRpt: https://music-encoding.org/guidelines/v4/elements/mrpt.html

It seems that @n is the most appropriate for controlling the number above the repeat. This would mean that by default verovio should not show numbers unless @n is present.

If the automatic control of number display remains in verovio, I propose adding an option that starts numbering mRpt after a minimum threshold of sequential mRpt are found in a group. For example, it is unnecessary to label an mRpt if there is only one repeat sign in a sequence. It will be an editorial style to decide how long the sequence needs to be before the mRpt are numbered, such as 3, 4, or 5. Maybe an option such as --mrpt-num-threshold 3. This would mean that the last mRpt in a sequence muse be 3 or higher in order to number all of the mRpt in the sequence (and 3 might be a good default value). Or verovio could turn off numbering by default by setting the value of --mrpt-num-threshold to a very high value, letting mRpt@n have priority, and use --mrpt-num-threshold 2 to enable the current behavior.

Another thing to consider is that there are two uses of mRpt: one is to speed up writing down music when composing. In this case repeat numbers are not used, and often a typesetting of the same score will not have mRpt since they are a shorthand only for writing the music. The second case is in orchestral parts to save space (minimize page turns) where the part has a lot of repeated material. In this case the repeat numbers are important so that the performer does not lose track of which measure they are playing (and then get fired for not keeping track).

Another consideration is that what number to assign to the first mRpt is an editorial style. Often the first mRep is labeled with 1 instead of 2 (as it is thought of as the first repetition rather than the second time the musical content is repeated).


Here is an example where no numbers are needed/wanted (so -mrpt-num-threshold 99 could be the verovio option, or don't add mRpt@n if number display is controlled in MEI data).

Screen Shot 2022-04-10 at 11 04 45 AM
Click to view MEI data for above example. ```xml </titleStmt> <pubStmt /> </fileDesc> <encodingDesc> <appInfo> <application isodate="2022-04-10T10:44:30" version="3.10.0-dev-7fa8f08"> <name>Verovio</name> <p>Transcoded from Humdrum</p> </application> </appInfo> </encodingDesc> <workList> <work> <title /> </work> </workList> <extMeta> <frames xmlns="http://www.humdrum.org/ns/humxml"> <metaFrame n="104" token="!!!RDF**kern: > = above" xml:id="L105"> <frameInfo> <startTime float="37" /> <frameType>reference</frameType> <referenceKey>RDF**kern</referenceKey> <referenceValue>> = above</referenceValue> </frameInfo> </metaFrame> <metaFrame n="105" token="!!!RDF**kern: < = below" xml:id="L106"> <frameInfo> <startTime float="37" /> <frameType>reference</frameType> <referenceKey>RDF**kern</referenceKey> <referenceValue>< = below</referenceValue> </frameInfo> </metaFrame> </frames> </extMeta> </meiHead> <music> <body> <mdiv xml:id="mhicwzt"> <score xml:id="sgi01gl"> <scoreDef xml:id="svr38em"> <staffGrp xml:id="sz0mh5g" bar.thru="true" symbol="brace"> <staffDef xml:id="s18fxuc" n="1" lines="5"> <clef xml:id="clef-L2F2" shape="G" line="2" /> <keySig xml:id="keysig-L3F2" pname="g" mode="major" sig="1s" /> <meterSig xml:id="metersig-L5F2" count="3" unit="4" /> </staffDef> <staffDef xml:id="srg9cw4" n="2" lines="5"> <clef xml:id="clef-L2F1" shape="F" line="4" /> <keySig xml:id="keysig-L3F1" pname="g" mode="major" sig="1s" /> <meterSig xml:id="metersig-L5F1" count="3" unit="4" /> </staffDef> </staffGrp> </scoreDef> <section xml:id="section-L1F1"> <pb xml:id="p1683vi" /> <section xml:id="label-B"> <measure xml:id="measure-L1" left="rptstart"> <staff xml:id="si1uw56" n="1"> <layer xml:id="layer-L1F2N1" n="1"> <beam xml:id="beam-L8F2-L9F2"> <note xml:id="note-L8F2" type="placed" dur="8" oct="4" pname="g" stem.dir="up" accid.ges="n" /> <note xml:id="note-L9F2" type="placed" dur="8" oct="4" pname="a" stem.dir="up" accid.ges="n" /> </beam> </layer> </staff> <staff xml:id="s3ptz7" n="2"> <layer xml:id="layer-L1F1N1" n="1"> <rest xml:id="rest-L8F1" dur="4" /> </layer> </staff> </measure> <measure xml:id="measure-L10" n="17"> <staff xml:id="staff-L10F2N1" n="1"> <layer xml:id="layer-L10F2N1" n="1"> <note xml:id="note-L12F3" type="placed" dur="2" oct="4" pname="b" stem.dir="up" accid.ges="n" /> <note xml:id="note-L14F3" type="placed" dur="4" oct="4" pname="b" stem.dir="up" accid.ges="n" /> </layer> <layer xml:id="layer-L12F4N2" n="2"> <chord xml:id="chord-L12F4" type="placed" dots="1" dur="2" stem.dir="down"> <note xml:id="note-L12F4S1" oct="4" pname="g" accid.ges="n" /> <note xml:id="note-L12F4S2" oct="4" pname="e" accid.ges="n" /> </chord> </layer> </staff> <staff xml:id="staff-L10F1N1" n="2"> <layer xml:id="layer-L10F1N1" n="1"> <note xml:id="note-L12F1" type="placed" dots="1" dur="2" oct="3" pname="e" stem.dir="up" accid.ges="n" /> </layer> <layer xml:id="layer-L12F2N2" n="2"> <note xml:id="note-L12F2" type="placed" dur="4" oct="2" pname="e" stem.dir="up" accid.ges="n" /> <note xml:id="note-L13F2" type="placed" dur="4" oct="2" pname="e" stem.dir="up" accid.ges="n" /> <note xml:id="note-L14F2" type="placed" dur="4" oct="2" pname="e" stem.dir="up" accid.ges="n" /> </layer> </staff> </measure> <measure xml:id="measure-L16" n="18"> <staff xml:id="staff-L16F3N1" n="1"> <layer xml:id="layer-L16F3N1" n="1"> <note xml:id="note-L18F3" type="placed" dots="1" dur="4" oct="4" pname="f" stem.dir="up" accid.ges="s" /> <beam xml:id="beam-L20F3-L22F3"> <note xml:id="note-L20F3" type="placed" dur="8" oct="4" pname="f" stem.dir="up" accid.ges="s" /> <note xml:id="note-L21F3" type="placed" dur="8" oct="4" pname="g" stem.dir="up" accid.ges="n" /> <note xml:id="note-L22F3" type="placed" dur="8" oct="4" pname="f" stem.dir="up" accid.ges="s" /> </beam> </layer> </staff> <staff xml:id="staff-L16F1N1" n="2"> <layer xml:id="layer-L16F1N1" n="1"> <chord xml:id="chord-L18F1" type="placed" dots="1" dur="2" stem.dir="up"> <note xml:id="note-L18F1S1" staff="1" oct="4" pname="d" accid="s" /> <note xml:id="note-L18F1S2" oct="3" pname="a" accid.ges="n" /> </chord> </layer> <layer xml:id="layer-L16F2N2" n="2"> <mRpt xml:id="mrpt-L17F2" /> </layer> </staff> </measure> <measure xml:id="measure-L24" n="19"> <staff xml:id="staff-L24F3N1" n="1"> <layer xml:id="layer-L24F3N1" n="1"> <note xml:id="note-L27F3" type="placed" dots="1" dur="4" oct="4" pname="e" stem.dir="up" accid.ges="n" /> <beam xml:id="beam-L29F3-L31F3" beam.with="below"> <note xml:id="note-L29F3" type="placed" dur="8" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="n" /> <note xml:id="note-L30F3" type="placed" dur="8" staff="2" oct="3" pname="a" stem.dir="up" accid="s" /> <note xml:id="note-L31F3" type="placed" dur="8" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="n" /> </beam> </layer> </staff> <staff xml:id="staff-L24F1N1" n="2"> <layer xml:id="layer-L24F1N1" n="1"> <chord xml:id="chord-L27F1" type="placed" dots="1" dur="2" stem.dir="up"> <note xml:id="note-L27F1S1" dots="1" dur.ges="2" dur="4" staff="1" oct="4" pname="e" accid.ges="n" /> <note xml:id="note-L27F1S2" oct="3" pname="g" accid.ges="n" /> </chord> </layer> <layer xml:id="layer-L24F2N2" n="2"> <mRpt xml:id="mrpt-L25F2" /> </layer> </staff> </measure> <measure xml:id="measure-L33" n="20"> <staff xml:id="staff-L33F3N1" n="1"> <layer xml:id="layer-L33F3N1" n="1"> <note xml:id="note-L35F3" type="placed" dots="1" dur="4" oct="4" pname="f" stem.dir="up" accid.ges="s" /> <beam xml:id="beam-L37F3-L39F3"> <note xml:id="note-L37F3" type="placed" dur="8" oct="4" pname="f" stem.dir="up" accid.ges="s" /> <note xml:id="note-L38F3" type="placed" dur="8" oct="4" pname="g" stem.dir="up" accid.ges="n" /> <note xml:id="note-L39F3" type="placed" dur="8" oct="4" pname="f" stem.dir="up" accid.ges="s" /> </beam> </layer> </staff> <staff xml:id="staff-L33F1N1" n="2"> <layer xml:id="layer-L33F1N1" n="1"> <chord xml:id="chord-L35F1" type="placed" dots="1" dur="2" stem.dir="up"> <note xml:id="note-L35F1S1" staff="1" oct="4" pname="d" accid="s" /> <note xml:id="note-L35F1S2" oct="3" pname="a"> <accid xml:id="accid-L35F1S2" accid="n" func="caution" /> </note> </chord> </layer> <layer xml:id="layer-L33F2N2" n="2"> <mRpt xml:id="mrpt-L34F2" /> </layer> </staff> </measure> <sb xml:id="sb-L42F1" type="original" /> <measure xml:id="measure-L42" n="21"> <staff xml:id="staff-L42F3N1" n="1"> <layer xml:id="layer-L42F3N1" n="1"> <chord xml:id="chord-L44F3" type="placed" dur="4" stem.dir="up"> <note xml:id="note-L44F3S1" oct="4" pname="e" accid.ges="n" /> <note xml:id="note-L44F3S2" oct="3" pname="b" accid.ges="n" /> </chord> <beam xml:id="beam-L45F3-L48F3"> <chord xml:id="chord-L45F3" type="placed" dur="8" stem.dir="up"> <note xml:id="note-L45F3S1" oct="4" pname="e" accid.ges="n" /> <note xml:id="note-L45F3S2" oct="3" pname="b" accid.ges="n" /> </chord> <chord xml:id="chord-L46F3" type="placed" dur="8" stem.dir="up"> <note xml:id="note-L46F3S1" oct="4" pname="f" accid.ges="s" /> <note xml:id="note-L46F3S2" oct="4" pname="d" accid="s" /> </chord> <chord xml:id="chord-L47F3" type="placed" dur="8" stem.dir="up"> <note xml:id="note-L47F3S1" oct="4" pname="g" accid.ges="n" /> <note xml:id="note-L47F3S2" oct="4" pname="e" accid.ges="n" /> </chord> <chord xml:id="chord-L48F3" type="placed" dur="8" stem.dir="up"> <note xml:id="note-L48F3S1" oct="4" pname="a" accid.ges="n" /> <note xml:id="note-L48F3S2" oct="4" pname="f" accid.ges="s" /> </chord> </beam> </layer> </staff> <staff xml:id="staff-L42F1N1" n="2"> <layer xml:id="layer-L42F1N1" n="1"> <note xml:id="note-L44F1" type="placed" dots="1" dur="2" oct="3" pname="a" stem.dir="up" accid.ges="n" /> </layer> <layer xml:id="layer-L42F2N2" n="2"> <mRpt xml:id="mrpt-L43F2" /> </layer> </staff> <tie xml:id="tie-L44F1-L52F1" startid="#note-L44F1" endid="#note-L52F1" /> </measure> <measure xml:id="measure-L50" n="22"> <staff xml:id="staff-L50F3N1" n="1"> <layer xml:id="layer-L50F3N1" n="1"> <chord xml:id="chord-L52F3" type="placed" dots="1" dur="4" stem.dir="up"> <note xml:id="note-L52F3S1" oct="4" pname="b" accid.ges="n" /> <note xml:id="note-L52F3S2" oct="4" pname="g" accid.ges="n" /> </chord> <beam xml:id="beam-L54F3-L56F3"> <chord xml:id="chord-L54F3" type="placed" dur="8" stem.dir="up"> <note xml:id="note-L54F3S1" oct="4" pname="b" accid.ges="n" /> <note xml:id="note-L54F3S2" oct="4" pname="g" accid.ges="n" /> </chord> <chord xml:id="chord-L55F3" type="placed" dur="8" stem.dir="up"> <note xml:id="note-L55F3S1" oct="4" pname="a" accid.ges="n" /> <note xml:id="note-L55F3S2" oct="4" pname="f" accid.ges="s" /> </chord> <chord xml:id="chord-L56F3" type="placed" dur="8" stem.dir="up"> <note xml:id="note-L56F3S1" oct="4" pname="g" accid.ges="n" /> <note xml:id="note-L56F3S2" oct="4" pname="e" accid.ges="n" /> </chord> </beam> </layer> </staff> <staff xml:id="staff-L50F1N1" n="2"> <layer xml:id="layer-L50F1N1" n="1"> <note xml:id="note-L52F1" type="placed" dots="1" dur="2" oct="3" pname="a" stem.dir="up" accid.ges="n" /> </layer> <layer xml:id="layer-L50F2N2" n="2"> <mRpt xml:id="mrpt-L51F2" /> </layer> </staff> </measure> <measure xml:id="measure-L58" n="23"> <staff xml:id="staff-L58F3N1" n="1"> <layer xml:id="layer-L58F3N1" n="1"> <chord xml:id="chord-L59F3" type="placed" dur="4" stem.dir="up"> <note xml:id="note-L59F3S1" oct="4" pname="f" accid.ges="s" /> <note xml:id="note-L59F3S2" oct="4" pname="d" accid="s" /> </chord> <beam xml:id="beam-L60F3-L61F3"> <chord xml:id="chord-L60F3" type="placed" dur="8" stem.dir="up"> <note xml:id="note-L60F3S1" oct="4" pname="b" accid.ges="n" /> <note xml:id="note-L60F3S2" oct="3" pname="b" accid.ges="n" /> </chord> <chord xml:id="chord-L61F3" type="placed" dur="8" stem.dir="up"> <note xml:id="note-L61F3S1" oct="4" pname="b" accid.ges="n" /> <note xml:id="note-L61F3S2" oct="3" pname="b" accid.ges="n" /> </chord> </beam> <chord xml:id="chord-L62F3" type="placed" dur="4" stem.dir="up"> <note xml:id="note-L62F3S1" oct="4" pname="b" accid.ges="n" /> <note xml:id="note-L62F3S2" oct="3" pname="b" accid.ges="n" /> </chord> </layer> </staff> <staff xml:id="staff-L58F1N1" n="2"> <layer xml:id="layer-L58F1N1" n="1"> <note xml:id="note-L59F1" type="placed" dots="1" dur="2" oct="2" pname="b" stem.dir="up" accid.ges="n" /> </layer> <layer xml:id="layer-L58F2N2" n="2"> <note xml:id="note-L59F2" type="placed" dur="4" oct="1" pname="b" stem.dir="up" accid.ges="n" /> <note xml:id="note-L60F2" type="placed" dur="4" oct="1" pname="b" stem.dir="up" accid.ges="n" /> <note xml:id="note-L62F2" type="placed" dur="4" oct="1" pname="b" stem.dir="up" accid.ges="n" /> </layer> </staff> <tie xml:id="tie-L59F1-L66F1" startid="#note-L59F1" endid="#note-L66F1" /> </measure> <measure xml:id="measure-L63" n="24"> <staff xml:id="staff-L63F3N1" n="1"> <layer xml:id="layer-L63F3N1" n="1"> <chord xml:id="chord-L66F3" type="placed" dur.ges="4" dur="2" stem.dir="up"> <note xml:id="note-L66F3S1" oct="4" pname="b" accid.ges="n" /> <note xml:id="note-L66F3S2" oct="3" pname="b" accid.ges="n" /> </chord> <rest xml:id="rest-L67F3" dur="4" /> <beam xml:id="beam-L68F3-L69F3"> <chord xml:id="chord-L68F3" type="placed" dur="8" stem.dir="up"> <note xml:id="note-L68F3S1" oct="4" pname="g" accid.ges="n" /> <note xml:id="note-L68F3S2" oct="4" pname="e" accid.ges="n" /> </chord> <chord xml:id="chord-L69F3" type="placed" dur="8" stem.dir="up"> <note xml:id="note-L69F3S1" oct="4" pname="a" accid.ges="n" /> <note xml:id="note-L69F3S2" oct="4" pname="f" accid.ges="s" /> </chord> </beam> </layer> </staff> <staff xml:id="staff-L63F1N1" n="2"> <layer xml:id="layer-L63F1N1" n="1"> <note xml:id="note-L66F1" type="placed" dots="1" dur="2" oct="2" pname="b" stem.dir="up" accid.ges="n" /> </layer> <layer xml:id="layer-L63F2N2" n="2"> <mRpt xml:id="mrpt-L64F2" /> </layer> </staff> </measure> <measure xml:id="measure-L71" n="25"> <staff xml:id="staff-L71F3N1" n="1"> <layer xml:id="layer-L71F3N1" n="1"> <note xml:id="note-L73F3" type="placed" dur="2" oct="4" pname="b" stem.dir="up" accid.ges="n" /> <chord xml:id="chord-L75F3" type="placed" dur="4" stem.dir="up"> <note xml:id="note-L75F3S1" oct="4" pname="b" accid.ges="n" /> <note xml:id="note-L75F3S2" oct="4" pname="e" accid.ges="n" /> </chord> </layer> <layer xml:id="layer-L73F4N2" n="2"> <chord xml:id="chord-L73F4" type="placed" dur="2" stem.dir="down"> <note xml:id="note-L73F4S1" oct="4" pname="g" accid.ges="n" /> <note xml:id="note-L73F4S2" oct="4" pname="e" accid.ges="n" /> </chord> <space xml:id="space-L75F4" dur="4" /> </layer> </staff> <staff xml:id="staff-L71F1N1" n="2"> <layer xml:id="layer-L71F1N1" n="1"> <note xml:id="note-L73F1" type="placed" dots="1" dur="2" oct="3" pname="e" stem.dir="up" accid.ges="n" /> </layer> <layer xml:id="layer-L71F2N2" n="2"> <note xml:id="note-L73F2" type="placed" dur="4" oct="2" pname="e" stem.dir="up" accid.ges="n" /> <note xml:id="note-L74F2" type="placed" dur="4" oct="2" pname="e" stem.dir="up" accid.ges="n" /> <note xml:id="note-L75F2" type="placed" dur="4" oct="2" pname="e" stem.dir="up" accid.ges="n" /> </layer> </staff> </measure> <measure xml:id="measure-L77" n="26"> <staff xml:id="staff-L77F3N1" n="1"> <layer xml:id="layer-L77F3N1" n="1"> <note xml:id="note-L79F3" type="placed" dots="1" dur="4" oct="4" pname="f" stem.dir="up" accid.ges="s" /> <beam xml:id="beam-L81F3-L83F3"> <note xml:id="note-L81F3" type="placed" dur="8" oct="4" pname="f" stem.dir="up" accid.ges="s" /> <note xml:id="note-L82F3" type="placed" dur="8" oct="4" pname="g" stem.dir="up" accid.ges="n" /> <note xml:id="note-L83F3" type="placed" dur="8" oct="4" pname="f" stem.dir="up" accid.ges="s" /> </beam> </layer> </staff> <staff xml:id="staff-L77F1N1" n="2"> <layer xml:id="layer-L77F1N1" n="1"> <chord xml:id="chord-L79F1" type="placed" dots="1" dur="2" stem.dir="up"> <note xml:id="note-L79F1S1" staff="1" oct="4" pname="d" accid="s" /> <note xml:id="note-L79F1S2" oct="3" pname="a" accid.ges="n" /> </chord> </layer> <layer xml:id="layer-L77F2N2" n="2"> <mRpt xml:id="mrpt-L78F2" /> </layer> </staff> </measure> <measure xml:id="measure-L85" n="27"> <staff xml:id="staff-L85F3N1" n="1"> <layer xml:id="layer-L85F3N1" n="1"> <note xml:id="note-L87F3" type="placed" dots="1" dur="4" oct="4" pname="e" stem.dir="up" accid.ges="n" /> <beam xml:id="beam-L89F3-L91F3" beam.with="below"> <note xml:id="note-L89F3" type="placed" dur="8" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="n" /> <note xml:id="note-L90F3" type="placed" dur="8" staff="2" oct="3" pname="a" stem.dir="up" accid="s" /> <note xml:id="note-L91F3" type="placed" dur="8" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="n" /> </beam> </layer> </staff> <staff xml:id="staff-L85F1N1" n="2"> <layer xml:id="layer-L85F1N1" n="1"> <note xml:id="note-L87F1" type="placed" dots="1" dur="2" oct="3" pname="g" stem.dir="up" accid.ges="n" /> </layer> <layer xml:id="layer-L85F2N2" n="2"> <mRpt xml:id="mrpt-L86F2" /> </layer> </staff> </measure> <measure xml:id="measure-L93" n="28"> <staff xml:id="staff-L93F3N1" n="1"> <layer xml:id="layer-L93F3N1" n="1"> <note xml:id="note-L96F3" type="placed" dots="1" dur="4" oct="4" pname="f" stem.dir="up" accid.ges="s" /> <beam xml:id="beam-L98F3-L100F3"> <note xml:id="note-L98F3" type="placed" dur="8" oct="4" pname="f" stem.dir="up" accid.ges="s" /> <note xml:id="note-L99F3" type="placed" dur="8" oct="4" pname="g" stem.dir="up" accid.ges="n" /> <note xml:id="note-L100F3" type="placed" dur="8" oct="4" pname="f" stem.dir="up" accid.ges="s" /> </beam> </layer> </staff> <staff xml:id="staff-L93F1N1" n="2"> <layer xml:id="layer-L93F1N1" n="1"> <chord xml:id="chord-L96F1" type="placed" dots="0" dur.ges="2" dots.ges="1" dur="2" stem.dir="up"> <note xml:id="note-L96F1S1" staff="1" oct="4" pname="d" accid="s" /> <note xml:id="note-L96F1S2" oct="3" pname="a"> <accid xml:id="accid-L96F1S2" accid="n" func="caution" /> </note> </chord> </layer> <layer xml:id="layer-L93F2N2" n="2"> <mRpt xml:id="mrpt-L94F2" /> </layer> </staff> </measure> </section> </section> </score> </mdiv> </body> </music> </mei> ``` </details> <p>This example is complicated because it is actually a layer repeat instead of a measure repeat (or you can consider/encode the middle voice on the top staff and have them display on the bottom staff).</p> <p>Notice that in measures 19 and 27, the <code>mRpt</code> number is colliding with the notes in the same area. Repeat numbers are not need in this case, because it is not necessary to count the repetitions since the pianists is also playing other notes at the same time, it is impossible to lose count of the repetitions in this case.</p> <p>Note the <code>2</code> label in measure 24. This is the only repeat, and therefore is not necessary to repeat.</p> <p>I see no MEI control for vertical placement (such as through oloc/ploc) which would be useful in this example since it is a layer repeat, and most of them should probably be displayed lower on the staff (I have not see the original source to verify).</p> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/rettinghaus"><img src="https://avatars.githubusercontent.com/u/7693447?v=4" />rettinghaus</a> commented <strong> 2 years ago</strong> </div> <div class="markdown-body"> <p>@craigsapp I don't think <code>@n</code> should be used for displaying a number here. We should have a <code>@num</code> here, and also a <code>@num.place</code> to control the placement. Could you please open a ticket on MEI side?</p> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/craigsapp"><img src="https://avatars.githubusercontent.com/u/3487289?v=4" />craigsapp</a> commented <strong> 2 years ago</strong> </div> <div class="markdown-body"> <p>OK, although what is the purpose of <code>mRpt@n</code> otherwise? But I can imagine that <code>@num=""</code> could be used to suppress display of a number.</p> </div> </div> <div class="page-bar-simple"> </div> <div class="footer"> <ul class="body"> <li>© <script> document.write(new Date().getFullYear()) </script> Githubissues.</li> <li>Githubissues is a development platform for aggregating issues.</li> </ul> </div> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script> <script src="/githubissues/assets/js.js"></script> <script src="/githubissues/assets/markdown.js"></script> <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.4.0/build/highlight.min.js"></script> <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.4.0/build/languages/go.min.js"></script> <script> hljs.highlightAll(); </script> </body> </html>