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

Ties starting on short notes #1310

Closed
craigsapp opened this issue Feb 18, 2020 · 3 comments
Closed

Ties starting on short notes #1310

craigsapp opened this issue Feb 18, 2020 · 3 comments

Comments

@craigsapp
Copy link
Contributor

When ties start on short notes, there is not enough space to display the tie properly. This causes ties to look like some sort of vertical line (or a v shape when zoomed in):

Screen Shot 2020-02-17 at 5 46 06 PM

Perhaps an option can be implemented for the minimal distance between notes that are tied? This could be a style option that is controllable through options, with 0 being the current behavior. The units would be MEI vus for a minimum space between notes that need a tie between them. (Either from leftside to leftside of the noteheads or rightside to leftside of the notes).

The above example is using the default spacing options. When the score is stretched there is no problem:

Screen Shot 2020-02-17 at 5 46 59 PM

But a full score may have one system that is compact and another stretched, so some ties will look ok, and others will be unreadable within the same score in the current state.

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="2020-02-17T18:03:16" version="2.6.0-dev-eae5ad6">
     <name>Verovio</name>
     <p>Transcoded from Humdrum</p>
    </application>
   </appInfo>
  </encodingDesc>
  <workList>
   <work>
    <title />
   </work>
  </workList>
 </meiHead>
 <music>
  <body>
   <mdiv xml:id="mdiv-0000001746592268">
    <score xml:id="score-0000001318165373">
     <scoreDef xml:id="scoredef-0000001606489616">
      <staffGrp xml:id="staffgrp-0000000677557810">
       <staffDef xml:id="staffdef-0000000280167109" n="1" lines="5">
        <clef xml:id="clef-0000001622485149" shape="G" line="2" />
        <meterSig xml:id="metersig-L2F1" count="4" unit="4" />
       </staffDef>
      </staffGrp>
     </scoreDef>
     <section xml:id="section-L1F1">
      <measure xml:id="measure-L1" n="0">
       <staff xml:id="staff-0000001675340536" n="1">
        <layer xml:id="layer-L1F1N1" n="1">
         <beam xml:id="beam-L4F1-L5F1">
          <chord xml:id="chord-L4F1" dots="1" dur="8">
           <note xml:id="note-L4F1S1" oct="5" pname="f" accid.ges="n" />
           <note xml:id="note-L4F1S2" oct="4" pname="f" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L5F1" dur="16">
           <note xml:id="note-L5F1S1" oct="5" pname="f" accid.ges="n" />
           <note xml:id="note-L5F1S2" oct="4" pname="f" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L6F1-L7F1">
          <chord xml:id="chord-L6F1" dots="1" dur="8">
           <note xml:id="note-L6F1S1" oct="5" pname="f" accid.ges="n" />
           <note xml:id="note-L6F1S2" oct="4" pname="f" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L7F1" dur="16">
           <note xml:id="note-L7F1S1" oct="5" pname="f" accid.ges="n" />
           <note xml:id="note-L7F1S2" oct="4" pname="f" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L8F1-L9F1">
          <chord xml:id="chord-L8F1" dots="1" dur="8">
           <note xml:id="note-L8F1S1" oct="5" pname="f" accid.ges="n" />
           <note xml:id="note-L8F1S2" oct="4" pname="f" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L9F1" dur="16">
           <note xml:id="note-L9F1S1" oct="5" pname="f" accid.ges="n" />
           <note xml:id="note-L9F1S2" oct="4" pname="f" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L10F1-L11F1">
          <chord xml:id="chord-L10F1" dots="1" dur="8">
           <note xml:id="note-L10F1S1" oct="5" pname="f" accid.ges="n" />
           <note xml:id="note-L10F1S2" oct="4" pname="f" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L11F1" dur="16">
           <note xml:id="note-L11F1S1" oct="5" pname="f" accid.ges="n" />
           <note xml:id="note-L11F1S2" oct="4" pname="f" accid.ges="n" />
          </chord>
         </beam>
        </layer>
       </staff>
       <tie xml:id="tie-L5F1S1-L6F1S1" startid="#note-L5F1S1" endid="#note-L6F1S1" />
       <tie xml:id="tie-L7F1S1-L8F1S1" startid="#note-L7F1S1" endid="#note-L8F1S1" />
       <tie xml:id="tie-L9F1S1-L10F1S1" startid="#note-L9F1S1" endid="#note-L10F1S1" />
      </measure>
     </section>
    </score>
   </mdiv>
  </body>
 </music>
</mei>
@craigsapp
Copy link
Contributor Author

Longer example:

Screen Shot 2020-02-17 at 6 18 23 PM

Notice for single-note ties, there is an avoidance mechanism where the slur is moved above/below the notes to allow them to get wider. Perhaps this system can also be implemented for chords and/or use a minimal distance option as described in the previous message.

MEI 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="2020-02-17T18:18:32" version="2.6.0-dev-eae5ad6">
     <name>Verovio</name>
     <p>Transcoded from Humdrum</p>
    </application>
   </appInfo>
  </encodingDesc>
  <workList>
   <work>
    <title />
   </work>
  </workList>
 </meiHead>
 <music>
  <body>
   <mdiv xml:id="mdiv-0000001533356144">
    <score xml:id="score-0000001133242495">
     <scoreDef xml:id="scoredef-0000000875186670">
      <staffGrp xml:id="staffgrp-0000000326192846" symbol="bracket">
       <staffDef xml:id="staffdef-0000001435874453" n="1" lines="5">
        <clef xml:id="clef-L2F4" shape="G" line="2" />
        <keySig xml:id="keysig-L3F4" pname="c" mode="major" sig="0" />
        <meterSig xml:id="metersig-L5F4" count="4" unit="4" />
       </staffDef>
       <staffDef xml:id="staffdef-0000002028026118" n="2" lines="5">
        <clef xml:id="clef-L2F3" shape="G" line="2" />
        <keySig xml:id="keysig-L3F3" pname="c" mode="major" sig="0" />
        <meterSig xml:id="metersig-L5F3" count="4" unit="4" />
       </staffDef>
       <staffDef xml:id="staffdef-0000000892333153" n="3" lines="5">
        <clef xml:id="clef-L2F2" shape="C" line="3" />
        <keySig xml:id="keysig-L3F2" pname="c" mode="major" sig="0" />
        <meterSig xml:id="metersig-L5F2" count="4" unit="4" />
       </staffDef>
       <staffDef xml:id="staffdef-0000000501799527" n="4" lines="5">
        <clef xml:id="clef-L2F1" shape="F" line="4" />
        <keySig xml:id="keysig-L3F1" pname="c" mode="major" sig="0" />
        <meterSig xml:id="metersig-L5F1" count="4" unit="4" />
       </staffDef>
      </staffGrp>
     </scoreDef>
     <section xml:id="section-L1F1">
      <measure xml:id="measure-L1" n="0">
       <staff xml:id="staff-0000000830376509" n="1">
        <layer xml:id="layer-L1F4N1" n="1">
         <rest xml:id="rest-L7F4" dots="1" dur="8" />
         <note xml:id="note-L9F4" dur="16" oct="4" pname="e" accid.ges="n" />
         <beam xml:id="beam-L10F4-L11F4">
          <chord xml:id="chord-L10F4" dots="1" dur="8">
           <note xml:id="note-L10F4S1" oct="5" pname="e" accid.ges="n" />
           <note xml:id="note-L10F4S2" oct="5" pname="b" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L11F4" dur="16">
           <note xml:id="note-L11F4S1" oct="5" pname="e" accid.ges="n" />
           <note xml:id="note-L11F4S2" oct="5" pname="b" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L12F4-L13F4">
          <chord xml:id="chord-L12F4" dur="8">
           <note xml:id="note-L12F4S1" oct="5" pname="e" accid.ges="n" />
           <note xml:id="note-L12F4S2" oct="5" pname="b" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L13F4" dur="8">
           <note xml:id="note-L13F4S1" oct="5" pname="d" accid.ges="n" />
           <note xml:id="note-L13F4S2" oct="5" pname="a" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L14F4-L15F4">
          <chord xml:id="chord-L14F4" dur="16">
           <note xml:id="note-L14F4S1" oct="5" pname="d" accid.ges="n" />
           <note xml:id="note-L14F4S2" oct="5" pname="a" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L15F4" dots="1" dur="8">
           <note xml:id="note-L15F4S1" oct="5" pname="c" accid.ges="n" />
           <note xml:id="note-L15F4S2" oct="5" pname="g" accid.ges="n" />
          </chord>
         </beam>
        </layer>
       </staff>
       <staff xml:id="staff-0000000585458680" n="2">
        <layer xml:id="layer-L1F3N1" n="1">
         <rest xml:id="rest-L7F3" dots="1" dur="8" />
         <note xml:id="note-L9F3" dur="16" oct="3" pname="b" accid.ges="n" />
         <beam xml:id="beam-L10F3-L11F3">
          <chord xml:id="chord-L10F3" dots="1" dur="8">
           <note xml:id="note-L10F3S1" oct="4" pname="e" accid.ges="n" />
           <note xml:id="note-L10F3S2" oct="4" pname="b" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L11F3" dur="16">
           <note xml:id="note-L11F3S1" oct="4" pname="e" accid.ges="n" />
           <note xml:id="note-L11F3S2" oct="4" pname="b" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L12F3-L13F3">
          <chord xml:id="chord-L12F3" dur="8">
           <note xml:id="note-L12F3S1" oct="4" pname="e" accid.ges="n" />
           <note xml:id="note-L12F3S2" oct="4" pname="b" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L13F3" dur="8">
           <note xml:id="note-L13F3S1" oct="4" pname="d" accid.ges="n" />
           <note xml:id="note-L13F3S2" oct="4" pname="a" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L14F3-L15F3">
          <chord xml:id="chord-L14F3" dur="16">
           <note xml:id="note-L14F3S1" oct="4" pname="d" accid.ges="n" />
           <note xml:id="note-L14F3S2" oct="4" pname="a" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L15F3" dots="1" dur="8">
           <note xml:id="note-L15F3S1" oct="4" pname="c" accid.ges="n" />
           <note xml:id="note-L15F3S2" oct="4" pname="g" accid.ges="n" />
          </chord>
         </beam>
        </layer>
       </staff>
       <staff xml:id="staff-0000001689245277" n="3">
        <layer xml:id="layer-L1F2N1" n="1">
         <rest xml:id="rest-L7F2" dur="4" />
         <beam xml:id="beam-L10F2-L11F2">
          <note xml:id="note-L10F2" dots="1" dur="8" oct="3" pname="b" accid.ges="n" />
          <note xml:id="note-L11F2" dur="16" oct="3" pname="b" accid.ges="n" />
         </beam>
         <beam xml:id="beam-L12F2-L13F2">
          <note xml:id="note-L12F2" dur="8" oct="3" pname="b" accid.ges="n" />
          <note xml:id="note-L13F2" dur="8" oct="3" pname="a" accid.ges="n" />
         </beam>
         <beam xml:id="beam-L14F2-L15F2">
          <note xml:id="note-L14F2" dur="16" oct="3" pname="a" accid.ges="n" />
          <note xml:id="note-L15F2" dots="1" dur="8" oct="3" pname="g" accid.ges="n" />
         </beam>
        </layer>
       </staff>
       <staff xml:id="staff-0000001542445605" n="4">
        <layer xml:id="layer-L1F1N1" n="1">
         <rest xml:id="rest-L7F1" dur="8" />
         <rest xml:id="rest-L8F1" dur="16" />
         <note xml:id="note-L9F1" dur="16" oct="3" pname="e" accid.ges="n" />
         <beam xml:id="beam-L10F1-L11F1">
          <note xml:id="note-L10F1" dots="1" dur="8" oct="3" pname="g" accid.ges="n" />
          <note xml:id="note-L11F1" dur="16" oct="3" pname="g" accid.ges="n" />
         </beam>
         <beam xml:id="beam-L12F1-L13F1">
          <note xml:id="note-L12F1" dur="8" oct="3" pname="g" accid.ges="n" />
          <note xml:id="note-L13F1" dur="8" oct="3" pname="f" accid.ges="n" />
         </beam>
         <beam xml:id="beam-L14F1-L15F1">
          <note xml:id="note-L14F1" dur="16" oct="3" pname="f" accid.ges="n" />
          <note xml:id="note-L15F1" dots="1" dur="8" oct="3" pname="e" accid.ges="n" />
         </beam>
        </layer>
       </staff>
       <tie xml:id="tie-L11F4S1-L12F4S1" startid="#note-L11F4S1" endid="#note-L12F4S1" />
       <tie xml:id="tie-L11F4S2-L12F4S2" startid="#note-L11F4S2" endid="#note-L12F4S2" />
       <tie xml:id="tie-L13F4S1-L14F4S1" startid="#note-L13F4S1" endid="#note-L14F4S1" />
       <tie xml:id="tie-L13F4S2-L14F4S2" startid="#note-L13F4S2" endid="#note-L14F4S2" />
       <tie xml:id="tie-L11F3S1-L12F3S1" startid="#note-L11F3S1" endid="#note-L12F3S1" />
       <tie xml:id="tie-L11F3S2-L12F3S2" startid="#note-L11F3S2" endid="#note-L12F3S2" />
       <tie xml:id="tie-L13F3S1-L14F3S1" startid="#note-L13F3S1" endid="#note-L14F3S1" />
       <tie xml:id="tie-L13F3S2-L14F3S2" startid="#note-L13F3S2" endid="#note-L14F3S2" />
       <tie xml:id="tie-L11F2-L12F2" startid="#note-L11F2" endid="#note-L12F2" />
       <tie xml:id="tie-L13F2-L14F2" startid="#note-L13F2" endid="#note-L14F2" />
       <tie xml:id="tie-L11F1-L12F1" startid="#note-L11F1" endid="#note-L12F1" />
       <tie xml:id="tie-L13F1-L14F1" startid="#note-L13F1" endid="#note-L14F1" />
      </measure>
      <measure xml:id="measure-L16" n="5">
       <staff xml:id="staff-L16F4N1" n="1">
        <layer xml:id="layer-L16F4N1" n="1">
         <mRest xml:id="mrest-L17F4" />
        </layer>
       </staff>
       <staff xml:id="staff-L16F3N1" n="2">
        <layer xml:id="layer-L16F3N1" n="1">
         <rest xml:id="rest-L17F3" dur="4" />
         <beam xml:id="beam-L20F3-L21F3">
          <note xml:id="note-L20F3" dots="1" dur="8" oct="3" pname="b" accid.ges="n" />
          <note xml:id="note-L21F3" dur="16" oct="3" pname="b" accid.ges="n" />
         </beam>
         <beam xml:id="beam-L22F3-L23F3">
          <note xml:id="note-L22F3" dur="8" oct="3" pname="b" accid.ges="n" />
          <note xml:id="note-L23F3" dur="8" oct="3" pname="a" accid.ges="n" />
         </beam>
         <beam xml:id="beam-L24F3-L25F3">
          <note xml:id="note-L24F3" dur="16" oct="3" pname="a" accid.ges="n" />
          <note xml:id="note-L25F3" dots="1" dur="8" oct="3" pname="g" accid.ges="n" />
         </beam>
        </layer>
       </staff>
       <staff xml:id="staff-L16F2N1" n="3">
        <layer xml:id="layer-L16F2N1" n="1">
         <rest xml:id="rest-L17F2" dur="4" />
         <beam xml:id="beam-L20F2-L21F2">
          <note xml:id="note-L20F2" dots="1" dur="8" oct="3" pname="e" accid.ges="n" />
          <note xml:id="note-L21F2" dur="16" oct="3" pname="e" accid.ges="n" />
         </beam>
         <beam xml:id="beam-L22F2-L23F2">
          <note xml:id="note-L22F2" dur="8" oct="3" pname="e" accid.ges="n" />
          <note xml:id="note-L23F2" dur="8" oct="3" pname="d" accid.ges="n" />
         </beam>
         <beam xml:id="beam-L24F2-L25F2">
          <note xml:id="note-L24F2" dur="16" oct="3" pname="d" accid.ges="n" />
          <note xml:id="note-L25F2" dots="1" dur="8" oct="3" pname="c" accid.ges="n" />
         </beam>
        </layer>
       </staff>
       <staff xml:id="staff-L16F1N1" n="4">
        <layer xml:id="layer-L16F1N1" n="1">
         <rest xml:id="rest-L17F1" dur="8" />
         <rest xml:id="rest-L18F1" dur="16" />
         <note xml:id="note-L19F1" dur="16" oct="2" pname="b" accid.ges="n" />
         <beam xml:id="beam-L20F1-L21F1">
          <chord xml:id="chord-L20F1" dots="1" dur="8">
           <note xml:id="note-L20F1S1" oct="2" pname="b" accid.ges="n" />
           <note xml:id="note-L20F1S2" oct="3" pname="g" accid.ges="n" />
           <note xml:id="note-L20F1S3" oct="4" pname="e" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L21F1" dur="16">
           <note xml:id="note-L21F1S1" oct="2" pname="b" accid.ges="n" />
           <note xml:id="note-L21F1S2" oct="3" pname="g" accid.ges="n" />
           <note xml:id="note-L21F1S3" oct="4" pname="e" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L22F1-L23F1">
          <chord xml:id="chord-L22F1" dur="8">
           <note xml:id="note-L22F1S1" oct="2" pname="b" accid.ges="n" />
           <note xml:id="note-L22F1S2" oct="3" pname="g" accid.ges="n" />
           <note xml:id="note-L22F1S3" oct="4" pname="e" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L23F1" dur="8">
           <note xml:id="note-L23F1S1" oct="2" pname="a" accid.ges="n" />
           <note xml:id="note-L23F1S2" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L23F1S3" oct="4" pname="d" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L24F1-L25F1">
          <chord xml:id="chord-L24F1" dur="16">
           <note xml:id="note-L24F1S1" oct="2" pname="a" accid.ges="n" />
           <note xml:id="note-L24F1S2" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L24F1S3" oct="4" pname="d" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L25F1" dots="1" dur="8">
           <note xml:id="note-L25F1S1" oct="2" pname="g" accid.ges="n" />
           <note xml:id="note-L25F1S2" oct="3" pname="e" accid.ges="n" />
           <note xml:id="note-L25F1S3" oct="4" pname="c" accid.ges="n" />
          </chord>
         </beam>
        </layer>
       </staff>
       <tie xml:id="tie-L21F3-L22F3" startid="#note-L21F3" endid="#note-L22F3" />
       <tie xml:id="tie-L21F2-L22F2" startid="#note-L21F2" endid="#note-L22F2" />
       <tie xml:id="tie-L21F1S1-L22F1S1" startid="#note-L21F1S1" endid="#note-L22F1S1" />
       <tie xml:id="tie-L21F1S2-L22F1S2" startid="#note-L21F1S2" endid="#note-L22F1S2" />
       <tie xml:id="tie-L21F1S3-L22F1S3" startid="#note-L21F1S3" endid="#note-L22F1S3" />
       <tie xml:id="tie-L23F1S1-L24F1S1" startid="#note-L23F1S1" endid="#note-L24F1S1" />
       <tie xml:id="tie-L23F1S2-L24F1S2" startid="#note-L23F1S2" endid="#note-L24F1S2" />
       <tie xml:id="tie-L23F1S3-L24F1S3" startid="#note-L23F1S3" endid="#note-L24F1S3" />
      </measure>
      <measure xml:id="measure-L26" n="6">
       <staff xml:id="staff-L26F4N1" n="1">
        <layer xml:id="layer-L26F4N1" n="1">
         <mRest xml:id="mrest-L27F4" />
        </layer>
       </staff>
       <staff xml:id="staff-L26F3N1" n="2">
        <layer xml:id="layer-L26F3N1" n="1">
         <mRest xml:id="mrest-L27F3" />
        </layer>
       </staff>
       <staff xml:id="staff-L26F2N1" n="3">
        <layer xml:id="layer-L26F2N1" n="1">
         <rest xml:id="rest-L27F2" dur="8" />
         <note xml:id="note-L28F2" dur="8" oct="3" pname="c" accid.ges="n" />
         <beam xml:id="beam-L29F2-L31F2">
          <note xml:id="note-L29F2" dur="16" oct="3" pname="d" accid.ges="n" />
          <note xml:id="note-L30F2" dur="8" oct="3" pname="e" accid.ges="n" />
          <note xml:id="note-L31F2" dur="16" oct="3" pname="d" accid.ges="n" />
         </beam>
         <beam xml:id="beam-L32F2-L33F2">
          <note xml:id="note-L32F2" dur="8" oct="3" pname="d" accid.ges="n" />
          <note xml:id="note-L33F2" dur="8" oct="3" pname="a" accid.ges="n" />
         </beam>
         <beam xml:id="beam-L34F2-L35F2">
          <note xml:id="note-L34F2" dur="16" oct="3" pname="g" accid.ges="n" />
          <note xml:id="note-L35F2" dots="1" dur="8" oct="4" pname="d" accid.ges="n" />
         </beam>
        </layer>
       </staff>
       <staff xml:id="staff-L26F1N1" n="4">
        <layer xml:id="layer-L26F1N1" n="1">
         <rest xml:id="rest-L27F1" dur="8" />
         <note xml:id="note-L28F1" dur="8" oct="3" pname="f" accid.ges="n" />
         <beam xml:id="beam-L29F1-L31F1">
          <note xml:id="note-L29F1" dur="16" oct="4" pname="c" accid.ges="n" />
          <note xml:id="note-L30F1" dur="8" oct="3" pname="a" accid.ges="n" />
          <note xml:id="note-L31F1" dur="16" oct="3" pname="a" accid.ges="n" />
         </beam>
         <beam xml:id="beam-L32F1-L33F1">
          <note xml:id="note-L32F1" dur="8" oct="3" pname="a" accid.ges="n" />
          <note xml:id="note-L33F1" dur="8" oct="3" pname="b" accid.ges="n" />
         </beam>
         <beam xml:id="beam-L34F1-L35F1">
          <note xml:id="note-L34F1" dur="16" oct="4" pname="d" accid.ges="n" />
          <note xml:id="note-L35F1" dots="1" dur="8" oct="4" pname="f" accid.ges="n" />
         </beam>
        </layer>
       </staff>
       <tie xml:id="tie-L31F2-L32F2" startid="#note-L31F2" endid="#note-L32F2" />
       <tie xml:id="tie-L31F1-L32F1" startid="#note-L31F1" endid="#note-L32F1" />
      </measure>
     </section>
    </score>
   </mdiv>
  </body>
 </music>
</mei>

@craigsapp
Copy link
Contributor Author

The problem seems to have gotten worse, with zero-width slurs having exaggerated heights making funny vertical lines in tight spacing:

Screen Shot 2020-07-14 at 4 28 41 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="2020-07-14T16:28:47" version="3.0.0-dev-79cf926-dirty">
     <name>Verovio</name>
     <p>Transcoded from Humdrum</p>
    </application>
   </appInfo>
  </encodingDesc>
  <workList>
   <work>
    <title />
   </work>
  </workList>
 </meiHead>
 <music>
  <body>
   <mdiv xml:id="mdiv-0000001198358827">
    <score xml:id="score-0000001875568621">
     <scoreDef xml:id="scoredef-0000000975193288" midi.bpm="100">
      <staffGrp xml:id="staffgrp-0000001968793454" symbol="brace" bar.thru="true">
       <staffDef xml:id="staffdef-0000000195590469" n="1" lines="5">
        <clef xml:id="clef-L3F2" shape="G" line="2" />
        <keySig xml:id="keysig-L4F2" sig="0" />
        <meterSig xml:id="metersig-L5F2" count="2" unit="4" />
       </staffDef>
       <staffDef xml:id="staffdef-0000001221107103" n="2" lines="5">
        <clef xml:id="clef-L3F1" shape="F" line="4" />
        <keySig xml:id="keysig-L4F1" sig="0" />
        <meterSig xml:id="metersig-L5F1" count="2" unit="4" />
       </staffDef>
      </staffGrp>
     </scoreDef>
     <section xml:id="section-L1F1">
      <measure xml:id="measure-L1" n="7">
       <staff xml:id="staff-0000000915046084" n="1">
        <layer xml:id="layer-L1F2N1" n="1">
         <beam xml:id="beam-L8F2-L11F2">
          <note xml:id="note-L8F2" dur="16" oct="4" pname="a" accid.ges="n" />
          <note xml:id="note-L9F2" dur="16" oct="4" pname="g" accid="s" />
          <note xml:id="note-L10F2" dur="16" oct="4" pname="a" accid.ges="n" />
          <note xml:id="note-L11F2" dur="16" oct="5" pname="c" accid.ges="n" />
         </beam>
         <beam xml:id="beam-L12F2-L15F2">
          <note xml:id="note-L12F2" dur="16" oct="5" pname="e" accid.ges="n" />
          <note xml:id="note-L13F2" dur="16" oct="5" pname="d" accid.ges="n" />
          <note xml:id="note-L14F2" dur="16" oct="5" pname="c" accid.ges="n" />
          <note xml:id="note-L15F2" dur="16" oct="4" pname="a" accid.ges="n" />
         </beam>
        </layer>
        <layer xml:id="layer-L3F3N2" n="2">
         <space xml:id="space-L8F3" dur="4" />
         <beam xml:id="beam-L12F3-L14F3">
          <note xml:id="note-L12F3" dur="8" oct="4" pname="f" accid.ges="n" />
          <note xml:id="note-L14F3" dur="8" oct="4" pname="f" accid.ges="n" />
         </beam>
        </layer>
       </staff>
       <staff xml:id="staff-0000001009886444" n="2">
        <layer xml:id="layer-L1F1N1" n="1">
         <beam xml:id="beam-L8F1-L10F1">
          <chord xml:id="chord-L8F1" dur="8">
           <note xml:id="note-L8F1S1" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L8F1S2" oct="2" pname="f" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L10F1" dur="8">
           <note xml:id="note-L10F1S1" oct="4" pname="f" accid.ges="n" />
           <note xml:id="note-L10F1S2" oct="4" pname="c" accid.ges="n" />
           <note xml:id="note-L10F1S3" oct="3" pname="a" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L12F1-L14F1">
          <chord xml:id="chord-L12F1" dur="8">
           <note xml:id="note-L12F1S1" oct="3" pname="a" accid.ges="n" />
           <note xml:id="note-L12F1S2" oct="2" pname="a" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L14F1" dur="8">
           <note xml:id="note-L14F1S1" oct="3" pname="a" accid="f" />
           <note xml:id="note-L14F1S2" oct="2" pname="a" accid="f" />
          </chord>
         </beam>
        </layer>
       </staff>
      </measure>
      <measure xml:id="measure-L17" n="8">
       <staff xml:id="staff-L17F2N1" n="1">
        <layer xml:id="layer-L17F2N1" n="1">
         <beam xml:id="beam-L18F2-L20F2">
          <chord xml:id="chord-L18F2" dur="8">
           <note xml:id="note-L18F2S1" oct="5" pname="c" accid.ges="n" />
           <note xml:id="note-L18F2S2" oct="4" pname="e" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L19F2" dur="16">
           <note xml:id="note-L19F2S1" oct="4" pname="a" accid.ges="n" />
           <note xml:id="note-L19F2S2" oct="4" pname="e" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L20F2" dur="16">
           <note xml:id="note-L20F2S1" oct="4" pname="g" accid.ges="n" />
           <note xml:id="note-L20F2S2" oct="4" pname="e" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L21F2-L24F2">
          <chord xml:id="chord-L21F2" dur="16">
           <note xml:id="note-L21F2S1" oct="4" pname="g" accid.ges="n" />
           <note xml:id="note-L21F2S2" oct="4" pname="e" accid.ges="n" />
          </chord>
          <note xml:id="note-L22F2" dur="16" oct="5" pname="g" accid.ges="n" />
          <note xml:id="note-L23F2" dur="16" oct="5" pname="e" accid.ges="n" />
          <note xml:id="note-L24F2" dur="16" oct="5" pname="c" accid.ges="n" />
         </beam>
        </layer>
       </staff>
       <staff xml:id="staff-L17F1N1" n="2">
        <layer xml:id="layer-L17F1N1" n="1">
         <beam xml:id="beam-L18F1-L19F1">
          <chord xml:id="chord-L18F1" dur="8">
           <note xml:id="note-L18F1S1" oct="3" pname="g" accid.ges="n" />
           <note xml:id="note-L18F1S2" oct="2" pname="g" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L19F1" dur="8">
           <note xml:id="note-L19F1S1" oct="4" pname="c" accid.ges="n" />
           <note xml:id="note-L19F1S2" oct="3" pname="g" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L21F1-L23F1">
          <chord xml:id="chord-L21F1" dur="8">
           <note xml:id="note-L21F1S1" oct="3" pname="c" accid.ges="n" />
           <note xml:id="note-L21F1S2" oct="2" pname="c" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L23F1" dur="8">
           <note xml:id="note-L23F1S1" oct="4" pname="e" accid.ges="n" />
           <note xml:id="note-L23F1S2" oct="4" pname="c" accid.ges="n" />
           <note xml:id="note-L23F1S3" oct="3" pname="g" accid.ges="n" />
          </chord>
         </beam>
        </layer>
       </staff>
       <tie xml:id="tie-L20F2S1-L21F2S1" startid="#note-L20F2S1" endid="#note-L21F2S1" />
       <tie xml:id="tie-L20F2S2-L21F2S2" startid="#note-L20F2S2" endid="#note-L21F2S2" />
      </measure>
      <measure xml:id="measure-L25" n="9">
       <staff xml:id="staff-L25F2N1" n="1">
        <layer xml:id="layer-L25F2N1" n="1">
         <beam xml:id="beam-L27F2-L30F2">
          <note xml:id="note-L27F2" dur="16" oct="4" pname="a" accid.ges="n" />
          <note xml:id="note-L28F2" dur="16" oct="4" pname="g" accid="s" />
          <note xml:id="note-L29F2" dur="16" oct="4" pname="a" accid.ges="n" />
          <note xml:id="note-L30F2" dur="16" oct="5" pname="c" accid.ges="n" />
         </beam>
         <beam xml:id="beam-L31F2-L34F2">
          <note xml:id="note-L31F2" dur="16" oct="5" pname="e" accid.ges="n" />
          <note xml:id="note-L32F2" dur="16" oct="5" pname="d" accid.ges="n" />
          <note xml:id="note-L33F2" dur="16" oct="5" pname="c" accid.ges="n" />
          <note xml:id="note-L34F2" dur="16" oct="4" pname="a" accid.ges="n" />
         </beam>
        </layer>
        <layer xml:id="layer-L27F3N2" n="2">
         <space xml:id="space-L27F3" dur="4" />
         <beam xml:id="beam-L31F3-L33F3">
          <note xml:id="note-L31F3" dur="8" oct="4" pname="f" accid.ges="n" />
          <note xml:id="note-L33F3" dur="8" oct="4" pname="f" accid.ges="n" />
         </beam>
        </layer>
       </staff>
       <staff xml:id="staff-L25F1N1" n="2">
        <layer xml:id="layer-L25F1N1" n="1">
         <beam xml:id="beam-L27F1-L29F1">
          <chord xml:id="chord-L27F1" dur="8">
           <note xml:id="note-L27F1S1" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L27F1S2" oct="2" pname="f" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L29F1" dur="8">
           <note xml:id="note-L29F1S1" oct="4" pname="f" accid.ges="n" />
           <note xml:id="note-L29F1S2" oct="4" pname="c" accid.ges="n" />
           <note xml:id="note-L29F1S3" oct="3" pname="a" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L31F1-L33F1">
          <chord xml:id="chord-L31F1" dur="8">
           <note xml:id="note-L31F1S1" oct="3" pname="a" accid.ges="n" />
           <note xml:id="note-L31F1S2" oct="2" pname="a" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L33F1" dur="8">
           <note xml:id="note-L33F1S1" oct="3" pname="a" accid="f" />
           <note xml:id="note-L33F1S2" oct="2" pname="a" accid="f" />
          </chord>
         </beam>
        </layer>
       </staff>
      </measure>
      <measure xml:id="measure-L36" n="10">
       <staff xml:id="staff-L36F2N1" n="1">
        <layer xml:id="layer-L36F2N1" n="1">
         <beam xml:id="beam-L37F2-L40F2">
          <chord xml:id="chord-L37F2" dur="16">
           <note xml:id="note-L37F2S1" oct="5" pname="e" accid.ges="n" />
           <note xml:id="note-L37F2S2" oct="4" pname="g" accid.ges="n" />
           <note xml:id="note-L37F2S3" oct="4" pname="e" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L38F2" dur="16">
           <note xml:id="note-L38F2S1" oct="5" pname="d" accid="s" />
           <note xml:id="note-L38F2S2" oct="4" pname="f" accid="s" />
           <note xml:id="note-L38F2S3" oct="4" pname="d" accid="s" />
          </chord>
          <chord xml:id="chord-L39F2" dur="16">
           <note xml:id="note-L39F2S1" oct="5" pname="e" accid.ges="n" />
           <note xml:id="note-L39F2S2" oct="4" pname="g" accid.ges="n" />
           <note xml:id="note-L39F2S3" oct="4" pname="e" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L40F2" dur="16">
           <note xml:id="note-L40F2S1" oct="5" pname="a" accid.ges="n" />
           <note xml:id="note-L40F2S2" oct="5" pname="e" accid.ges="n" />
           <note xml:id="note-L40F2S3" oct="5" pname="c" accid.ges="n" />
           <note xml:id="note-L40F2S4" oct="4" pname="a" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L41F2-L44F2">
          <chord xml:id="chord-L41F2" dur="16">
           <note xml:id="note-L41F2S1" oct="5" pname="a" accid.ges="n" />
           <note xml:id="note-L41F2S2" oct="5" pname="e" accid.ges="n" />
           <note xml:id="note-L41F2S3" oct="5" pname="c" accid.ges="n" />
           <note xml:id="note-L41F2S4" oct="4" pname="a" accid.ges="n" />
          </chord>
          <note xml:id="note-L42F2" dur="16" oct="5" pname="e" accid.ges="n" />
          <note xml:id="note-L43F2" dur="16" oct="5" pname="c" accid.ges="n" />
          <note xml:id="note-L44F2" dur="16" oct="4" pname="a" accid.ges="n" />
         </beam>
        </layer>
       </staff>
       <staff xml:id="staff-L36F1N1" n="2">
        <layer xml:id="layer-L36F1N1" n="1">
         <beam xml:id="beam-L37F1-L39F1">
          <chord xml:id="chord-L37F1" dur="8">
           <note xml:id="note-L37F1S1" oct="3" pname="g" accid.ges="n" />
           <note xml:id="note-L37F1S2" oct="2" pname="g" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L39F1" dur="8">
           <note xml:id="note-L39F1S1" oct="4" pname="c" accid.ges="n" />
           <note xml:id="note-L39F1S2" oct="3" pname="g" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L41F1-L43F1">
          <chord xml:id="chord-L41F1" dur="8">
           <note xml:id="note-L41F1S1" oct="3" pname="e" accid.ges="n" />
           <note xml:id="note-L41F1S2" oct="2" pname="e" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L43F1" dur="8">
           <note xml:id="note-L43F1S1" oct="3" pname="e" accid="f" />
           <note xml:id="note-L43F1S2" oct="2" pname="e" accid="f" />
          </chord>
         </beam>
        </layer>
       </staff>
       <tie xml:id="tie-L40F2S1-L41F2S1" startid="#note-L40F2S1" endid="#note-L41F2S1" />
       <tie xml:id="tie-L40F2S2-L41F2S2" startid="#note-L40F2S2" endid="#note-L41F2S2" />
       <tie xml:id="tie-L40F2S3-L41F2S3" startid="#note-L40F2S3" endid="#note-L41F2S3" />
       <tie xml:id="tie-L40F2S4-L41F2S4" startid="#note-L40F2S4" endid="#note-L41F2S4" />
      </measure>
      <measure xml:id="measure-L45" n="11">
       <staff xml:id="staff-L45F2N1" n="1">
        <layer xml:id="layer-L45F2N1" n="1">
         <beam xml:id="beam-L46F2-L49F2">
          <note xml:id="note-L46F2" dur="16" oct="4" pname="a" accid.ges="n" />
          <note xml:id="note-L47F2" dur="16" oct="4" pname="a" accid="s" />
          <note xml:id="note-L48F2" dur="16" oct="4" pname="b" accid.ges="n" />
          <chord xml:id="chord-L49F2" dur="16">
           <note xml:id="note-L49F2S1" oct="5" pname="a" accid.ges="n" />
           <note xml:id="note-L49F2S2" oct="5" pname="f" accid.ges="n" />
           <note xml:id="note-L49F2S3" oct="4" pname="b" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L50F2-L51F2">
          <chord xml:id="chord-L50F2" dur="8">
           <note xml:id="note-L50F2S1" oct="5" pname="a" accid.ges="n" />
           <note xml:id="note-L50F2S2" oct="5" pname="f" accid.ges="n" />
           <note xml:id="note-L50F2S3" oct="4" pname="b" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L51F2" dur="8">
           <note xml:id="note-L51F2S1" oct="5" pname="g" accid.ges="n" />
           <note xml:id="note-L51F2S2" oct="5" pname="f" accid.ges="n" />
           <note xml:id="note-L51F2S3" oct="4" pname="b" accid.ges="n" />
          </chord>
         </beam>
        </layer>
       </staff>
       <staff xml:id="staff-L45F1N1" n="2">
        <layer xml:id="layer-L45F1N1" n="1">
         <beam xml:id="beam-L46F1-L48F1">
          <chord xml:id="chord-L46F1" dur="8">
           <note xml:id="note-L46F1S1" oct="3" pname="d" accid.ges="n" />
           <note xml:id="note-L46F1S2" oct="2" pname="d" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L48F1" dur="8">
           <note xml:id="note-L48F1S1" oct="4" pname="f" accid.ges="n" />
           <note xml:id="note-L48F1S2" oct="3" pname="b" accid.ges="n" />
           <note xml:id="note-L48F1S3" oct="3" pname="g" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L50F1-L51F1">
          <chord xml:id="chord-L50F1" dur="8">
           <note xml:id="note-L50F1S1" oct="2" pname="g" accid.ges="n" />
           <note xml:id="note-L50F1S2" oct="1" pname="g" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L51F1" dur="8">
           <note xml:id="note-L51F1S1" oct="4" pname="f" accid.ges="n" />
           <note xml:id="note-L51F1S2" oct="3" pname="b" accid.ges="n" />
           <note xml:id="note-L51F1S3" oct="3" pname="g" accid.ges="n" />
          </chord>
         </beam>
        </layer>
       </staff>
       <tie xml:id="tie-L49F2S1-L50F2S1" startid="#note-L49F2S1" endid="#note-L50F2S1" />
       <tie xml:id="tie-L49F2S2-L50F2S2" startid="#note-L49F2S2" endid="#note-L50F2S2" />
       <tie xml:id="tie-L49F2S3-L50F2S3" startid="#note-L49F2S3" endid="#note-L50F2S3" />
      </measure>
      <measure xml:id="measure-L52" n="12">
       <staff xml:id="staff-L52F2N1" n="1">
        <layer xml:id="layer-L52F2N1" n="1">
         <beam xml:id="beam-L53F2-L54F2">
          <chord xml:id="chord-L53F2" dur="8">
           <note xml:id="note-L53F2S1" oct="6" pname="e" accid.ges="n" />
           <note xml:id="note-L53F2S2" oct="5" pname="b" accid.ges="n" />
           <note xml:id="note-L53F2S3" oct="5" pname="f" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L54F2" dur="8">
           <note xml:id="note-L54F2S1" oct="6" pname="d" accid.ges="n" />
           <note xml:id="note-L54F2S2" oct="5" pname="b" accid.ges="n" />
           <note xml:id="note-L54F2S3" oct="5" pname="f" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L55F2-L56F2">
          <chord xml:id="chord-L55F2" dur="8">
           <note xml:id="note-L55F2S1" oct="6" pname="d" accid.ges="n" />
           <note xml:id="note-L55F2S2" oct="5" pname="g" accid.ges="n" />
           <note xml:id="note-L55F2S3" oct="5" pname="e" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L56F2" dur="8">
           <note xml:id="note-L56F2S1" oct="6" pname="c" accid.ges="n" />
           <note xml:id="note-L56F2S2" oct="5" pname="g" accid.ges="n" />
           <note xml:id="note-L56F2S3" oct="5" pname="e" accid.ges="n" />
          </chord>
         </beam>
        </layer>
       </staff>
       <staff xml:id="staff-L52F1N1" n="2">
        <layer xml:id="layer-L52F1N1" n="1">
         <beam xml:id="beam-L53F1-L54F1">
          <chord xml:id="chord-L53F1" dur="8">
           <note xml:id="note-L53F1S1" oct="2" pname="g" accid.ges="n" />
           <note xml:id="note-L53F1S2" oct="1" pname="g" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L54F1" dur="8">
           <note xml:id="note-L54F1S1" oct="4" pname="f" accid.ges="n" />
           <note xml:id="note-L54F1S2" oct="3" pname="b" accid.ges="n" />
           <note xml:id="note-L54F1S3" oct="3" pname="g" accid.ges="n" />
          </chord>
         </beam>
         <beam xml:id="beam-L55F1-L56F1">
          <chord xml:id="chord-L55F1" dur="8">
           <note xml:id="note-L55F1S1" oct="3" pname="c" accid.ges="n" />
           <note xml:id="note-L55F1S2" oct="2" pname="c" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L56F1" dur="8">
           <note xml:id="note-L56F1S1" oct="4" pname="e" accid.ges="n" />
           <note xml:id="note-L56F1S2" oct="4" pname="c" accid.ges="n" />
           <note xml:id="note-L56F1S3" oct="3" pname="g" accid.ges="n" />
          </chord>
         </beam>
        </layer>
       </staff>
      </measure>
     </section>
    </score>
   </mdiv>
  </body>
 </music>
</mei>

@rettinghaus
Copy link
Contributor

addressed with #2313

@lpugin lpugin closed this as completed Jul 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants