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

Beam + layer interaction #3602

Open
craigsapp opened this issue Feb 19, 2024 · 0 comments
Open

Beam + layer interaction #3602

craigsapp opened this issue Feb 19, 2024 · 0 comments

Comments

@craigsapp
Copy link
Contributor

craigsapp commented Feb 19, 2024

In the following example, measure 2 is incorrect, with the top voice stems made too short in order to avoid the notes in the second layer. But these notes are not in the way, so the adjustment to the notes in the first layer should not be done.

Screenshot 2024-02-18 at 21 02 42
Click to view MEI data for above example
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http:https://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http:https://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http:https://www.music-encoding.org/ns/mei" meiversion="5.0">
 <meiHead>
  <fileDesc>
   <titleStmt>
    <title />
   </titleStmt>
   <pubStmt>
   </pubStmt>
  </fileDesc>
  <encodingDesc>
   <appInfo>
    <application isodate="2024-02-18T21:02:44" version="4.2.0-dev-84f99b0-dirty">
     <name>Verovio</name>
     <p>Transcoded from Humdrum</p>
    </application>
   </appInfo>
  </encodingDesc>
 </meiHead>
 <music decls="#work0_encoded">
  <body>
   <mdiv xml:id="m3h0j4w">
    <score xml:id="sd971x3">
     <scoreDef xml:id="ska4q4p">
      <staffGrp xml:id="s14xj4p7">
       <staffDef xml:id="staffdef-L1F1" n="1" lines="5">
        <clef xml:id="csz7u7a" shape="G" line="2" />
       </staffDef>
      </staffGrp>
     </scoreDef>
     <section xml:id="section-L1F1">
      <measure xml:id="measure-L1">
       <staff xml:id="staff-L1F1" n="1">
        <layer xml:id="layer-L1F1N1" n="1">
         <rest xml:id="rest-L3F1" dur="16" ploc="c" oloc="6" />
         <beam xml:id="beam-L4F1-L6F1">
          <note xml:id="note-L4F1" dur="16" oct="5" pname="b" accid.ges="n" />
          <note xml:id="note-L5F1" dur="16" oct="5" pname="b" accid.ges="n" />
          <note xml:id="note-L6F1" dur="16" oct="5" pname="b" accid.ges="n" />
         </beam>
        </layer>
        <layer xml:id="layer-L1F2N2" n="2">
         <beam xml:id="beam-L3F2-L6F2">
          <chord xml:id="chord-L3F2" dur="16">
           <note xml:id="note-L3F2S1" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L3F2S2" oct="3" pname="b" accid.ges="n" />
           <note xml:id="note-L3F2S3" oct="4" pname="d" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L4F2" dur="16">
           <note xml:id="note-L4F2S1" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L4F2S2" oct="3" pname="b" accid.ges="n" />
           <note xml:id="note-L4F2S3" oct="4" pname="d" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L5F2" dur="16">
           <note xml:id="note-L5F2S1" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L5F2S2" oct="3" pname="b" accid.ges="n" />
           <note xml:id="note-L5F2S3" oct="4" pname="d" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L6F2" dur="16">
           <note xml:id="note-L6F2S1" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L6F2S2" oct="4" pname="d" accid.ges="n" />
          </chord>
         </beam>
        </layer>
       </staff>
      </measure>
      <measure xml:id="measure-L7">
       <staff xml:id="staff-L7F1N1" n="1">
        <layer xml:id="layer-L7F1N1" n="1">
         <rest xml:id="rest-L8F1" dur="16" ploc="c" oloc="6" />
         <beam xml:id="beam-L9F1-L11F1">
          <note xml:id="note-L9F1" dur="16" oct="5" pname="b" accid.ges="n" />
          <note xml:id="note-L10F1" dur="16" oct="5" pname="b" accid.ges="n" />
          <note xml:id="note-L11F1" dur="16" oct="5" pname="b" accid.ges="n" />
         </beam>
        </layer>
        <layer xml:id="layer-L7F2N2" n="2">
         <beam xml:id="beam-L8F2-L11F2" type="placed">
          <chord xml:id="chord-L8F2" dur="16" stem.dir="up">
           <note xml:id="note-L8F2S1" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L8F2S2" oct="3" pname="b" accid.ges="n" />
           <note xml:id="note-L8F2S3" oct="4" pname="d" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L9F2" dur="16" stem.dir="up">
           <note xml:id="note-L9F2S1" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L9F2S2" oct="3" pname="b" accid.ges="n" />
           <note xml:id="note-L9F2S3" oct="4" pname="d" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L10F2" dur="16" stem.dir="up">
           <note xml:id="note-L10F2S1" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L10F2S2" oct="3" pname="b" accid.ges="n" />
           <note xml:id="note-L10F2S3" oct="4" pname="d" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L11F2" dur="16" stem.dir="up">
           <note xml:id="note-L11F2S1" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L11F2S2" oct="4" pname="d" accid.ges="n" />
          </chord>
         </beam>
        </layer>
       </staff>
      </measure>
      <measure xml:id="measure-L12">
       <staff xml:id="staff-L12F1N1" n="1">
        <layer xml:id="layer-L12F1N1" n="1">
         <rest xml:id="rest-L13F1" dur="16" ploc="c" oloc="6" />
         <note xml:id="note-L14F1" dur="16" oct="5" pname="b" accid.ges="n" />
         <note xml:id="note-L15F1" dur="16" oct="5" pname="b" accid.ges="n" />
         <note xml:id="note-L16F1" dur="16" oct="5" pname="b" accid.ges="n" />
        </layer>
        <layer xml:id="layer-L12F2N2" n="2">
         <beam xml:id="beam-L13F2-L16F2" type="placed">
          <chord xml:id="chord-L13F2" dur="16" stem.dir="up">
           <note xml:id="note-L13F2S1" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L13F2S2" oct="3" pname="b" accid.ges="n" />
           <note xml:id="note-L13F2S3" oct="4" pname="d" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L14F2" dur="16" stem.dir="up">
           <note xml:id="note-L14F2S1" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L14F2S2" oct="3" pname="b" accid.ges="n" />
           <note xml:id="note-L14F2S3" oct="4" pname="d" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L15F2" dur="16" stem.dir="up">
           <note xml:id="note-L15F2S1" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L15F2S2" oct="3" pname="b" accid.ges="n" />
           <note xml:id="note-L15F2S3" oct="4" pname="d" accid.ges="n" />
          </chord>
          <chord xml:id="chord-L16F2" dur="16" stem.dir="up">
           <note xml:id="note-L16F2S1" oct="3" pname="f" accid.ges="n" />
           <note xml:id="note-L16F2S2" oct="4" pname="d" accid.ges="n" />
          </chord>
         </beam>
        </layer>
       </staff>
      </measure>
      <measure xml:id="measure-L17">
       <staff xml:id="staff-L17F1N1" n="1">
        <layer xml:id="layer-L17F1N1" n="1">
         <rest xml:id="rest-L18F1" dur="16" ploc="c" oloc="6" />
         <beam xml:id="beam-L19F1-L21F1">
          <note xml:id="note-L19F1" dur="16" oct="5" pname="b" accid.ges="n" />
          <note xml:id="note-L20F1" dur="16" oct="5" pname="b" accid.ges="n" />
          <note xml:id="note-L21F1" dur="16" oct="5" pname="b" accid.ges="n" />
         </beam>
        </layer>
        <layer xml:id="layer-L17F2N2" n="2">
         <chord xml:id="chord-L18F2" type="placed" dur="16" stem.dir="up">
          <note xml:id="note-L18F2S1" oct="3" pname="f" accid.ges="n" />
          <note xml:id="note-L18F2S2" oct="3" pname="b" accid.ges="n" />
          <note xml:id="note-L18F2S3" oct="4" pname="d" accid.ges="n" />
         </chord>
         <chord xml:id="chord-L19F2" type="placed" dur="16" stem.dir="up">
          <note xml:id="note-L19F2S1" oct="3" pname="f" accid.ges="n" />
          <note xml:id="note-L19F2S2" oct="3" pname="b" accid.ges="n" />
          <note xml:id="note-L19F2S3" oct="4" pname="d" accid.ges="n" />
         </chord>
         <chord xml:id="chord-L20F2" type="placed" dur="16" stem.dir="up">
          <note xml:id="note-L20F2S1" oct="3" pname="f" accid.ges="n" />
          <note xml:id="note-L20F2S2" oct="3" pname="b" accid.ges="n" />
          <note xml:id="note-L20F2S3" oct="4" pname="d" accid.ges="n" />
         </chord>
         <chord xml:id="chord-L21F2" type="placed" dur="16" stem.dir="up">
          <note xml:id="note-L21F2S1" oct="3" pname="f" accid.ges="n" />
          <note xml:id="note-L21F2S2" oct="4" pname="d" accid.ges="n" />
         </chord>
        </layer>
       </staff>
      </measure>
     </section>
    </score>
   </mdiv>
  </body>
 </music>
</mei>

The problem is related to beams. In measures 1, 3 & 4, the layout is correct.

Here is the source:

Screenshot 2024-02-18 at 21 07 24

Ideally the beam would be higher due to the D4 notes, and there is enough space before the notes in the top layer.

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

1 participant