verovio icon indicating copy to clipboard operation
verovio copied to clipboard

Cross-staff beamed notes unevenly spaced

Open wergo opened this issue 5 years ago • 2 comments

When tuplets go across staffs, their stems get unevenly spaced.

In this Beethoven Op. 126 No. 3 example, note the second 6-tuplet in the lower or the second 6-tuplet and the 3/5-tuplet in the upper staff have strangly spaced stems: cross-staff-cuenotes (When using cue notes, the tuplet numbers seem far to big.)

This is the first edition of that example: Beethoven_Op126_No3_excerpt

This uneven spacing does not appear when normal notes without tuplets cross staves (first bar is correct), but occur when crossing involves tuplets (second bar): cross-staff-tests

Here is the test code of Beethoven example:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="4.0.0">
    <meiHead>
        <fileDesc>
            <titleStmt>
                <title>Test</title>
            </titleStmt>
            <pubStmt>
                <respStmt>
                    <persName role="encoder" auth.uri="http://d-nb.info/gnd" auth="GND" codedval="1138881465">Werner Goebl</persName>
                </respStmt>
            </pubStmt>
        </fileDesc>
    </meiHead>
    <music>
        <body>
            <mdiv xml:id="mdiv-0000001665096923">
                <score xml:id="score-0000001424580804">
                    <scoreDef xml:id="scoredef-0000001268321234" key.sig="3f" meter.count="3" meter.unit="8">
                        <staffGrp xml:id="staffgrp-0000000634392425" symbol="brace" bar.thru="true">
                            <staffDef xml:id="staffdef-0000002124663267" clef.shape="G" clef.line="2" n="1" lines="5"/>
                            <staffDef xml:id="staffdef-0000000409533897" clef.shape="F" clef.line="4" n="2" lines="5"/>
                        </staffGrp>
                    </scoreDef>
                    <section xml:id="section-0000002000015636">
                        <measure xml:id="measure-0000001767597645" n="165">
                            <staff xml:id="staff-0000001060353310" n="1">
                                <layer xml:id="layer-0000001362181963" n="1">
                                    <chord xml:id="chord-0000001927946078" dur="4" stem.dir="down">
                                        <note xml:id="note-0000001989752734" oct="4" pname="b" accid.ges="f"/>
                                        <note xml:id="note-0000001378318036" oct="5" pname="f"/>
                                        <note xml:id="note-0000000009684205" oct="5" pname="a">
                                            <accid xml:id="accid-0000000218936128" accid="f"/>
                                        </note>
                                    </chord>
                                </layer>
                                <layer xml:id="layer-0000001896445588" n="2">
                                    <space xml:id="space-0000000551198995" dur="8"/>
                                    <tuplet xml:id="tuplet-0000001628372434" num="6" numbase="4" bracket.visible="false">
                                        <beam xml:id="beam-0000000292039846">
                                            <note xml:id="note-0000001350844843" dur="64" oct="5" pname="a" cue="true" stem.dir="up" accid.ges="f"/>
                                            <note xml:id="note-0000001659624033" dur="64" oct="5" pname="f" cue="true" stem.dir="up"/>
                                            <note xml:id="note-0000001783515395" dur="64" oct="5" pname="d" cue="true" stem.dir="up"/>
                                            <note xml:id="note-0000000966498939" dur="64" oct="4" pname="b" cue="true" stem.dir="up"/>
                                            <note xml:id="note-0000000381361865" dur="64" oct="4" pname="a" cue="true" stem.dir="up" accid.ges="f"/>
                                            <note xml:id="note-0000000438629473" dur="64" oct="4" pname="f" cue="true" stem.dir="up"/>
                                        </beam>
                                    </tuplet>
                                    <tuplet xml:id="tuplet-0000000012185244" num="6" numbase="4" bracket.visible="false">
                                        <beam xml:id="beam-0000001881676207">
                                            <note xml:id="note-0000001487825327" dur="64" oct="4" pname="d" cue="true" stem.dir="up"/>
                                            <note xml:id="note-0000000580685221" dur="64" oct="3" pname="b" cue="true" stem.dir="up" accid.ges="f"/>
                                            <note xml:id="note-0000001240742326" dur="64" staff="2" oct="3" pname="a" cue="true" stem.dir="up" accid.ges="f"/>
                                            <note xml:id="note-0000000467394027" dur="64" staff="2" oct="3" pname="f" cue="true" stem.dir="up"/>
                                            <note xml:id="note-0000002143714710" dur="64" staff="2" oct="3" pname="d" cue="true" stem.dir="up"/>
                                            <note xml:id="note-0000001079985251" dur="64" staff="2" oct="3" pname="f" cue="true" stem.dir="up"/>
                                        </beam>
                                    </tuplet>
                                    <beam xml:id="beam-0000000780329113">
                                        <tuplet xml:id="tuplet-0000000834771658" num="3" numbase="2" bracket.visible="false">
                                            <note xml:id="note-0000000308769962" dur="64" staff="2" oct="3" pname="a" cue="true" stem.dir="up" accid.ges="f"/>
                                            <note xml:id="note-0000001817908239" dur="64" staff="2" oct="3" pname="b" cue="true" stem.dir="up"/>
                                            <note xml:id="note-0000001333927004" breaksec="1" dur="64" staff="2" oct="4" pname="d" cue="true" stem.dir="up"/>
                                        </tuplet>
                                        <tuplet xml:id="tuplet-0000000220409410" num="5" numbase="4" bracket.visible="false">
                                            <note xml:id="note-0000001729365195" dur="64" oct="4" pname="f" cue="true" stem.dir="up"/>
                                            <note xml:id="note-0000001397153867" dur="64" oct="4" pname="a" cue="true" stem.dir="up" accid.ges="f"/>
                                            <note xml:id="note-0000000774922620" dur="64" oct="4" pname="b" cue="true" stem.dir="up" accid.ges="f"/>
                                            <note xml:id="note-0000000895301651" dur="64" oct="5" pname="d" cue="true" stem.dir="up"/>
                                            <note xml:id="note-0000002064417475" dur="64" oct="5" pname="f" cue="true" stem.dir="up"/>
                                        </tuplet>
                                    </beam>
                                    <note xml:id="note-0000001918701393" dur="16" oct="5" pname="a" stem.dir="up"/>
                                    <rest xml:id="rest-0000001257329041" dur="16" ploc="b" oloc="4"/>
                                </layer>
                            </staff>
                            <staff xml:id="staff-0000000208051603" n="2">
                                <layer xml:id="layer-0000000306479851" n="1">
                                    <beam xml:id="beam-0000000303986839">
                                        <note xml:id="note-0000001255697790" dur="64" oct="2" pname="d" cue="true" stem.dir="down"/>
                                        <note xml:id="note-0000001688826266" dur="64" oct="2" pname="f" cue="true" stem.dir="down"/>
                                        <note xml:id="note-0000001218241409" dur="64" oct="2" pname="a" cue="true" stem.dir="down" accid.ges="f"/>
                                        <note xml:id="note-0000001367216389" dur="64" oct="2" pname="b" cue="true" stem.dir="down" accid.ges="f"/>
                                    </beam>
                                    <tuplet xml:id="tuplet-0000000789527601" num="6" numbase="4" bracket.visible="false">
                                        <beam xml:id="beam-0000000778040820">
                                            <note xml:id="note-0000000136998944" dur="64" oct="3" pname="d" cue="true" stem.dir="down"/>
                                            <note xml:id="note-0000000438782224" dur="64" oct="3" pname="f" cue="true" stem.dir="down"/>
                                            <note xml:id="note-0000000887754158" dur="64" oct="3" pname="a" cue="true" stem.dir="down" accid.ges="f"/>
                                            <note xml:id="note-0000001816587264" dur="64" staff="1" oct="4" pname="d" cue="true" stem.dir="down"/>
                                            <note xml:id="note-0000001992868218" dur="64" staff="1" oct="4" pname="f" cue="true" stem.dir="down"/>
                                            <note xml:id="note-0000001297730216" dur="64" staff="1" oct="4" pname="a" cue="true" stem.dir="down" accid.ges="f"/>
                                        </beam>
                                    </tuplet>
                                    <space xml:id="space-0000000657793594" dur="8"/>
                                </layer>
                            </staff>
                            <pedal xml:id="pedal-0000001111408836" staff="2" startid="#note-0000001255697790" dir="down" place="below" vgrp="190"/>
                            <pedal xml:id="pedal-0000001111408837" staff="2" startid="#rest-0000001257329041" dir="up" place="below" vgrp="190"/>
                            <dynam xml:id="dynam-0000001238904363" place="below" staff="1" tstamp="1.000000">p</dynam>
                            <fermata xml:id="fermata-0000001412089750" staff="1" startid="#rest-0000001257329041" place="above"/>
                        </measure>
                    </section>
                </score>
            </mdiv>
        </body>
    </music>
</mei>

This is the test code of the second example:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="4.0.0">
    <meiHead>
        <fileDesc>
            <titleStmt>
                <title>Cross-staff tuplet test</title>
            </titleStmt>
            <pubStmt>
                <respStmt>
                    <persName role="encoder" auth.uri="http://d-nb.info/gnd" auth="GND" codedval="1138881465">Werner Goebl</persName>
                </respStmt>
            </pubStmt>
        </fileDesc>
    </meiHead>
    <music>
        <body>
            <mdiv xml:id="mdiv-0000001665096923">
                <score xml:id="score-0000001424580804">
                    <scoreDef xml:id="scoredef-0000001268321234" key.sig="1f" meter.count="4" meter.unit="4">
                        <staffGrp xml:id="staffgrp-0000000634392425" symbol="brace" bar.thru="true">
                            <staffDef xml:id="staffdef-0000002124663267" clef.shape="G" clef.line="2" n="1" lines="5"/>
                            <staffDef xml:id="staffdef-0000000409533897" clef.shape="F" clef.line="4" n="2" lines="5"/>
                        </staffGrp>
                    </scoreDef>
                    <section xml:id="section-0000002000015636">
                        <measure xml:id="measure-0000001848751408" n="1">
                            <staff xml:id="staff-0000001588657242" n="1">
                                <layer xml:id="layer-0000000898083143" n="1">
                                    <beam xml:id="beam-0000001292677426">
                                        <note xml:id="note-0000002084925730" dur="16" oct="5" pname="d" stem.dir="up"/>
                                        <note xml:id="note-0000000856076011" dur="16" oct="5" pname="c" stem.dir="up"/>
                                        <note xml:id="note-0000002076565624" dur="16" oct="4" pname="b" stem.dir="up"/>
                                        <note xml:id="note-0000002081695171" dur="16" oct="4" pname="a" stem.dir="up"/>
                                        <note xml:id="note-0000000247162073" dur="16" staff="2" oct="3" pname="b" stem.dir="up"/>
                                        <note xml:id="note-0000000819587613" dur="16" staff="2" oct="3" pname="g" stem.dir="up"/>
                                        <note xml:id="note-0000000848899833" dur="16" staff="2" oct="3" pname="e" stem.dir="up"/>
                                        <note xml:id="note-0000001725626210" dur="16" staff="2" oct="3" pname="c" stem.dir="up"/>
                                    </beam>
                                    <beam xml:id="beam-0000000833058735">
                                        <note xml:id="note-0000001772264352" dur="16" staff="2" oct="3" pname="c" stem.dir="up"/>
                                        <note xml:id="note-0000000848780174" dur="16" staff="2" oct="3" pname="d" stem.dir="up"/>
                                        <note xml:id="note-0000001862001044" dur="16" staff="2" oct="3" pname="e" stem.dir="up"/>
                                        <note xml:id="note-0000001519842424" dur="16" oct="3" pname="f" stem.dir="up"/>
                                        <note xml:id="note-0000001821122750" dur="16" oct="3" pname="g" stem.dir="up"/>
                                        <note xml:id="note-0000001673122206" dur="16" oct="3" pname="a" stem.dir="up"/>
                                        <note xml:id="note-0000001014042424" dur="16" oct="3" pname="b" stem.dir="up"/>
                                        <note xml:id="note-0000000580797576" dur="16" oct="4" pname="c" stem.dir="up"/>
                                    </beam>
                                </layer>
                            </staff>
                            <staff xml:id="staff-0000000575324930" n="2">
                                <layer xml:id="layer-0000001514719716" n="1"/>
                            </staff>
                        </measure>
                        <measure xml:id="measure-0000001167316915" n="1">
                            <staff xml:id="staff-0000001786238497" n="1">
                                <layer xml:id="layer-0000001636517666" n="1">
                                    <tuplet xml:id="tuplet-0000002129345333" num="9" numbase="2">
                                        <beam xml:id="beam-0000000092034476">
                                            <note xml:id="note-0000000635212292" dur="16" oct="4" pname="e" stem.dir="up"/>
                                            <note xml:id="note-0000000871782407" dur="16" oct="4" pname="d" stem.dir="up"/>
                                            <note xml:id="note-0000001913474615" dur="16" oct="4" pname="c" stem.dir="up"/>
                                            <note xml:id="note-0000001200240480" dur="16" oct="3" pname="b" stem.dir="up"/>
                                            <note xml:id="note-0000001127851089" dur="16" oct="3" pname="a" stem.dir="up"/>
                                            <note xml:id="note-0000002102584401" dur="16" staff="2" oct="3" pname="g" stem.dir="up"/>
                                            <note xml:id="note-0000001292616222" dur="16" staff="2" oct="3" pname="e" stem.dir="up"/>
                                            <note xml:id="note-0000001056270102" dur="16" staff="2" oct="3" pname="c" stem.dir="up"/>
                                            <note xml:id="note-0000001631778212" dur="16" staff="2" oct="2" pname="g" stem.dir="up"/>
                                        </beam>
                                    </tuplet>
                                </layer>
                            </staff>
                            <staff xml:id="staff-0000001930236894" n="2">
                                <layer xml:id="layer-0000001603505876" n="1">
                                    <space xml:id="space-0000001350971729" dur="4"/>
                                    <beam xml:id="beam-0000000437249572">
                                        <tuplet xml:id="tuplet-0000000164516570" num="11" numbase="8">
                                            <note xml:id="note-0000001218538301" dur="16" oct="3" pname="c"/>
                                            <note xml:id="note-0000001569167115" dur="16" oct="3" pname="d"/>
                                            <note xml:id="note-0000001892516645" dur="16" oct="3" pname="e"/>
                                            <note xml:id="note-0000001146956798" dur="16" oct="3" pname="f"/>
                                            <note xml:id="note-0000001089688514" dur="16" staff="1" oct="3" pname="g"/>
                                            <note xml:id="note-0000000654313182" dur="16" staff="1" oct="3" pname="a"/>
                                            <note xml:id="note-0000001925377234" dur="16" staff="1" oct="3" pname="b"/>
                                            <note xml:id="note-0000001531578842" dur="16" staff="1" oct="4" pname="c"/>
                                            <note xml:id="note-0000001506604552" dur="16" staff="1" oct="4" pname="d"/>
                                            <note xml:id="note-0000000523023687" dur="16" staff="1" oct="4" pname="e"/>
                                            <note xml:id="note-0000000808540238" dur="16" staff="1" oct="4" pname="f"/>
                                        </tuplet>
                                    </beam>
                                </layer>
                            </staff>
                        </measure>
                    </section>
                </score>
            </mdiv>
        </body>
    </music>
</mei>

wergo avatar Apr 05 '19 10:04 wergo

Another example:

Screen Shot 2021-01-11 at 3 17 55 PM

Note that in the second measure the spacing is correct because all of the notes in the beam are on the same staff.

Expected spacing:

Screen Shot 2021-01-11 at 3 12 37 PM
MEI test data:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="https://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="4.0.0">
 <meiHead>
  <fileDesc>
   <titleStmt>
    <title />
   </titleStmt>
   <pubStmt />
  </fileDesc>
  <encodingDesc>
   <appInfo>
    <application isodate="2021-01-11T15:18:17" version="3.1.0-dev-1666d80-dirty">
     <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="87" token="!!!RDF**kern: > = above" xml:id="L88">
     <frameInfo>
      <startTime float="6" />
      <frameType>reference</frameType>
      <referenceKey>RDF**kern</referenceKey>
      <referenceValue>&gt; = above</referenceValue>
     </frameInfo>
    </metaFrame>
    <metaFrame n="88" token="!!!RDF**kern: &lt; = below" xml:id="L89">
     <frameInfo>
      <startTime float="6" />
      <frameType>reference</frameType>
      <referenceKey>RDF**kern</referenceKey>
      <referenceValue>&lt; = below</referenceValue>
     </frameInfo>
    </metaFrame>
   </frames>
  </extMeta>
 </meiHead>
 <music>
  <body>
   <mdiv xml:id="mdiv-0000000346205389">
    <score xml:id="score-0000001097920835">
     <scoreDef xml:id="scoredef-0000000206193117" midi.bpm="40">
      <staffGrp xml:id="staffgrp-0000001810742105" bar.thru="true" symbol="brace">
       <staffDef xml:id="staffdef-0000000995728296" n="1" lines="5">
        <clef xml:id="clef-L3F3" shape="G" line="2" />
        <keySig xml:id="keysig-L4F3" pname="d" mode="minor" sig="1f" />
        <meterSig xml:id="metersig-L6F3" count="6" unit="8" />
       </staffDef>
       <staffDef xml:id="staffdef-0000000332061737" n="2" lines="5">
        <clef xml:id="clef-L3F1" shape="F" line="4" />
        <keySig xml:id="keysig-L4F1" pname="d" mode="minor" sig="1f" />
        <meterSig xml:id="metersig-L6F1" count="6" unit="8" />
       </staffDef>
      </staffGrp>
     </scoreDef>
     <section xml:id="section-L1F1">
      <pb xml:id="pb-0000001093659981" />
      <measure xml:id="measure-L1" n="67">
       <staff xml:id="staff-0000001326092426" n="1">
        <layer xml:id="layer-L1F2N1" n="1">
         <tuplet xml:id="tuplet-L10F3-L15F3" num="6" numbase="4" num.visible="false" bracket.visible="false" num.format="count">
          <rest xml:id="rest-L10F3" dur="32" />
          <beam xml:id="beam-L11F3-L15F3">
           <note xml:id="note-L11F3" dur="32" staff="2" oct="3" pname="g" stem.dir="up" accid="f" />
           <note xml:id="note-L12F3" dur="32" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="f" />
           <note xml:id="note-L13F3" dur="32" oct="4" pname="e" accid="f" />
           <note xml:id="note-L14F3" dur="32" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="f" />
           <note xml:id="note-L15F3" dur="32" staff="2" oct="3" pname="g" stem.dir="up" accid.ges="f" />
          </beam>
         </tuplet>
         <tuplet xml:id="tuplet-L16F3-L21F3" num="6" numbase="4" num.visible="false" bracket.visible="false" num.format="count">
          <rest xml:id="rest-L16F3" dur="32" />
          <beam xml:id="beam-L17F3-L21F3">
           <note xml:id="note-L17F3" dur="32" staff="2" oct="3" pname="g" stem.dir="up" accid.ges="f" />
           <note xml:id="note-L18F3" dur="32" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="f" />
           <note xml:id="note-L19F3" dur="32" oct="4" pname="e" accid.ges="f" />
           <note xml:id="note-L20F3" dur="32" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="f" />
           <note xml:id="note-L21F3" dur="32" staff="2" oct="3" pname="g" stem.dir="up" accid.ges="f" />
          </beam>
         </tuplet>
         <tuplet xml:id="tuplet-L22F3-L27F3" num="6" numbase="4" num.visible="false" bracket.visible="false" num.format="count">
          <rest xml:id="rest-L22F3" dur="32" />
          <beam xml:id="beam-L23F3-L27F3">
           <note xml:id="note-L23F3" dur="32" staff="2" oct="3" pname="g" stem.dir="up" accid.ges="f" />
           <note xml:id="note-L24F3" dur="32" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="f" />
           <note xml:id="note-L25F3" dur="32" oct="4" pname="e" accid.ges="f" />
           <note xml:id="note-L26F3" dur="32" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="f" />
           <note xml:id="note-L27F3" dur="32" staff="2" oct="3" pname="g" stem.dir="up" accid.ges="f" />
          </beam>
         </tuplet>
         <tuplet xml:id="tuplet-L29F3-L34F3" num="6" numbase="4" num.visible="false" bracket.visible="false" num.format="count">
          <rest xml:id="rest-L29F3" dur="32" />
          <beam xml:id="beam-L30F3-L34F3">
           <note xml:id="note-L30F3" dur="32" staff="2" oct="3" pname="g" accid.ges="f" />
           <note xml:id="note-L31F3" dur="32" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="f" />
           <note xml:id="note-L32F3" dur="32" oct="4" pname="e" accid.ges="f" />
           <note xml:id="note-L33F3" dur="32" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="f" />
           <note xml:id="note-L34F3" dur="32" staff="2" oct="3" pname="g" accid.ges="f" />
          </beam>
         </tuplet>
         <tuplet xml:id="tuplet-L35F3-L40F3" num="6" numbase="4" num.visible="false" bracket.visible="false" num.format="count">
          <rest xml:id="rest-L35F3" dur="32" />
          <beam xml:id="beam-L36F3-L40F3">
           <note xml:id="note-L36F3" dur="32" staff="2" oct="3" pname="g" accid.ges="f" />
           <note xml:id="note-L37F3" dur="32" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="f" />
           <note xml:id="note-L38F3" dur="32" oct="4" pname="e" accid.ges="f" />
           <note xml:id="note-L39F3" dur="32" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="f" />
           <note xml:id="note-L40F3" dur="32" staff="2" oct="3" pname="g" accid.ges="f" />
          </beam>
         </tuplet>
         <tuplet xml:id="tuplet-L41F3-L46F3" num="6" numbase="4" num.visible="false" bracket.visible="false" num.format="count">
          <rest xml:id="rest-L41F3" dur="32" />
          <beam xml:id="beam-L42F3-L46F3">
           <note xml:id="note-L42F3" dur="32" staff="2" oct="3" pname="g" accid.ges="f" />
           <note xml:id="note-L43F3" dur="32" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="f" />
           <note xml:id="note-L44F3" dur="32" oct="4" pname="e" accid.ges="f" />
           <note xml:id="note-L45F3" dur="32" staff="2" oct="3" pname="b" stem.dir="up" accid.ges="f" />
           <note xml:id="note-L46F3" dur="32" staff="2" oct="3" pname="g" accid.ges="f" />
          </beam>
         </tuplet>
        </layer>
       </staff>
       <staff xml:id="staff-0000001992222666" n="2">
        <layer xml:id="layer-L1F1N1" n="1">
         <note xml:id="note-L10F1" dots="1" dur="4" oct="1" pname="g" accid="f" />
         <note xml:id="note-L29F1" dots="1" dur="4" oct="2" pname="g" accid="f" />
        </layer>
        <layer xml:id="layer-L3F2N2" n="2">
         <beam xml:id="beam-L10F2-L22F2">
          <note xml:id="note-L10F2" dur="8" oct="1" pname="g" accid="f" />
          <note xml:id="note-L16F2" dur="8" oct="1" pname="b" accid.ges="f" />
          <note xml:id="note-L22F2" dur="8" oct="2" pname="e" accid="f" />
         </beam>
         <beam xml:id="beam-L29F2-L41F2">
          <note xml:id="note-L29F2" dur="8" oct="2" pname="g" accid="f" />
          <note xml:id="note-L35F2" dur="8" oct="2" pname="b" accid.ges="f" />
          <note xml:id="note-L41F2" dur="8" oct="3" pname="e" accid="f" />
         </beam>
        </layer>
       </staff>
       <dynam xml:id="dynam-L10F4" staff="1" tstamp="1.000000" vgrp="100">f</dynam>
       <slur xml:id="slur-L10F2-L22F2" staff="2" startid="#note-L10F2" endid="#note-L22F2" />
       <slur xml:id="slur-L29F2-L41F2" staff="2" startid="#note-L29F2" endid="#note-L41F2" />
      </measure>
      <measure xml:id="measure-L47" n="68">
       <staff xml:id="staff-L47F3N1" n="1">
        <layer xml:id="layer-L47F3N1" n="1">
         <tuplet xml:id="tuplet-L48F3-L53F3" num="6" numbase="4" num.visible="false" bracket.visible="false" num.format="count">
          <rest xml:id="rest-L48F3" dur="32" />
          <beam xml:id="beam-L49F3-L53F3">
           <note xml:id="note-L49F3" dur="32" oct="3" pname="a">
            <accid xml:id="accid-L49F3" accid="n" func="caution" />
           </note>
           <note xml:id="note-L50F3" dur="32" oct="4" pname="c" accid.ges="n" />
           <note xml:id="note-L51F3" dur="32" oct="4" pname="f" accid="s" />
           <note xml:id="note-L52F3" dur="32" oct="4" pname="e" accid="f" />
           <note xml:id="note-L53F3" dur="32" oct="4" pname="c" accid.ges="n" />
          </beam>
         </tuplet>
         <tuplet xml:id="tuplet-L54F3-L59F3" num="6" numbase="4" num.visible="false" bracket.visible="false" num.format="count">
          <rest xml:id="rest-L54F3" dur="32" />
          <beam xml:id="beam-L55F3-L59F3">
           <note xml:id="note-L55F3" dur="32" oct="3" pname="a" accid.ges="n" />
           <note xml:id="note-L56F3" dur="32" oct="4" pname="c" accid.ges="n" />
           <note xml:id="note-L57F3" dur="32" oct="4" pname="f" accid.ges="s" />
           <note xml:id="note-L58F3" dur="32" oct="4" pname="e" accid.ges="f" />
           <note xml:id="note-L59F3" dur="32" oct="4" pname="c" accid.ges="n" />
          </beam>
         </tuplet>
         <tuplet xml:id="tuplet-L60F3-L65F3" num="6" numbase="4" num.visible="false" bracket.visible="false" num.format="count">
          <rest xml:id="rest-L60F3" dur="32" />
          <beam xml:id="beam-L61F3-L65F3">
           <note xml:id="note-L61F3" dur="32" oct="3" pname="a" accid.ges="n" />
           <note xml:id="note-L62F3" dur="32" oct="4" pname="c" accid.ges="n" />
           <note xml:id="note-L63F3" dur="32" oct="4" pname="f" accid.ges="s" />
           <note xml:id="note-L64F3" dur="32" oct="4" pname="e" accid.ges="f" />
           <note xml:id="note-L65F3" dur="32" oct="4" pname="c" accid.ges="n" />
          </beam>
         </tuplet>
         <tuplet xml:id="tuplet-L66F3-L71F3" num="6" numbase="4" num.visible="false" bracket.visible="false" num.format="count">
          <rest xml:id="rest-L66F3" dur="32" />
          <beam xml:id="beam-L67F3-L71F3">
           <note xml:id="note-L67F3" dur="32" oct="3" pname="b" accid.ges="f" />
           <note xml:id="note-L68F3" dur="32" oct="4" pname="e">
            <accid xml:id="accid-L68F3" accid="f" func="caution" />
           </note>
           <note xml:id="note-L69F3" dur="32" oct="4" pname="g">
            <accid xml:id="accid-L69F3" accid="n" func="caution" />
           </note>
           <note xml:id="note-L70F3" dur="32" oct="4" pname="e" accid.ges="f" />
           <note xml:id="note-L71F3" dur="32" oct="3" pname="b" accid.ges="f" />
          </beam>
         </tuplet>
         <tuplet xml:id="tuplet-L72F3-L77F3" num="6" numbase="4" num.visible="false" bracket.visible="false" num.format="count">
          <rest xml:id="rest-L72F3" dur="32" />
          <beam xml:id="beam-L73F3-L77F3">
           <note xml:id="note-L73F3" dur="32" oct="3" pname="b" accid.ges="f" />
           <note xml:id="note-L74F3" dur="32" oct="4" pname="e" accid.ges="f" />
           <note xml:id="note-L75F3" dur="32" oct="4" pname="g" accid.ges="n" />
           <note xml:id="note-L76F3" dur="32" oct="4" pname="e" accid.ges="f" />
           <note xml:id="note-L77F3" dur="32" oct="3" pname="b" accid.ges="f" />
          </beam>
         </tuplet>
         <tuplet xml:id="tuplet-L78F3-L83F3" num="6" numbase="4" num.visible="false" bracket.visible="false" num.format="count">
          <rest xml:id="rest-L78F3" dur="32" />
          <beam xml:id="beam-L79F3-L83F3">
           <note xml:id="note-L79F3" dur="32" oct="3" pname="b" accid.ges="f" />
           <note xml:id="note-L80F3" dur="32" oct="4" pname="e" accid.ges="f" />
           <note xml:id="note-L81F3" dur="32" oct="4" pname="g" accid.ges="n" />
           <note xml:id="note-L82F3" dur="32" oct="4" pname="e" accid.ges="f" />
           <note xml:id="note-L83F3" dur="32" oct="3" pname="b" accid.ges="f" />
          </beam>
         </tuplet>
        </layer>
       </staff>
       <staff xml:id="staff-L47F1N1" n="2">
        <layer xml:id="layer-L47F1N1" n="1">
         <note xml:id="note-L48F1" dots="1" dur="4" oct="2" pname="a">
          <accid xml:id="accid-L48F1" accid="n" func="caution" />
         </note>
         <note xml:id="note-L66F1" dots="1" dur="4" oct="2" pname="b" accid.ges="f" />
        </layer>
        <layer xml:id="layer-L47F2N2" n="2">
         <beam xml:id="beam-L48F2-L60F2">
          <note xml:id="note-L48F2" dur="8" oct="2" pname="a">
           <accid xml:id="accid-L48F2" accid="n" func="caution" />
          </note>
          <note xml:id="note-L54F2" dur="8" oct="3" pname="f" accid="s" />
          <chord xml:id="chord-L60F2" dur="8">
           <note xml:id="note-L60F2S1" oct="3" pname="e" accid="f" />
           <note xml:id="note-L60F2S2" oct="3" pname="f" accid.ges="s" />
          </chord>
         </beam>
         <beam xml:id="beam-L66F2-L78F2">
          <note xml:id="note-L66F2" dur="8" oct="2" pname="b" accid.ges="f" />
          <note xml:id="note-L72F2" dur="8" oct="3" pname="g">
           <accid xml:id="accid-L72F2" accid="n" func="caution" />
          </note>
          <chord xml:id="chord-L78F2" dur="8">
           <note xml:id="note-L78F2S1" oct="3" pname="e">
            <accid xml:id="accid-L78F2S1" accid="f" func="caution" />
           </note>
           <note xml:id="note-L78F2S2" oct="3" pname="g" accid.ges="n" />
          </chord>
         </beam>
        </layer>
       </staff>
       <dynam xml:id="dynam-L54F2" place="above" staff="2" tstamp="2.000000">sf</dynam>
       <tie xml:id="tie-L54F2-L60F2S2" startid="#note-L54F2" endid="#note-L60F2S2" curvedir="above" />
       <dynam xml:id="dynam-L72F2" place="above" staff="2" tstamp="5.000000">sf</dynam>
       <tie xml:id="tie-L72F2-L78F2S2" startid="#note-L72F2" endid="#note-L78F2S2" curvedir="above" />
       <slur xml:id="slur-L48F2-L78F2" staff="2" startid="#note-L48F2" endid="#chord-L78F2" />
      </measure>
      <sb xml:id="sb-L85F1" type="z" />
     </section>
    </score>
   </mdiv>
  </body>
 </music>
</mei>

Example in situ:

https://verovio.humdrum.org/?file=beethoven/sonatas/sonata07-2.krn#mh66

craigsapp avatar Jan 11 '21 23:01 craigsapp

Probably what is happening is that the first note that jumps to another staff is not aware of the preceding note on the other staff, so it does not allocate space to it when placing the first note on the other staff. If the first cross staff note is given this information, then it will be spaced correctly.

craigsapp avatar Jan 11 '21 23:01 craigsapp