-
Notifications
You must be signed in to change notification settings - Fork 192
Beam adjustment + articulation interaction #3973
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
Comments
There is a somewhat related case when the Without 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://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0">
<meiHead>
<fileDesc>
<titleStmt>
<title />
</titleStmt>
<pubStmt/>
</fileDesc>
<encodingDesc>
<appInfo>
<application isodate="2025-02-28T16:43:40" version="4.4.0-dev-b3784cd">
<name>Verovio</name>
<p>Transcoded from Humdrum</p>
</application>
</appInfo>
</encodingDesc>
</meiHead>
<music>
<body>
<mdiv xml:id="m1udl4o9">
<score xml:id="s1csichp">
<scoreDef xml:id="s1qjes55" tempo.dist="3.0000vu">
<staffGrp xml:id="s1dcchk6">
<staffDef xml:id="staffdef-L1F1" n="1" lines="5">
<clef xml:id="c1gywlbk" shape="G" line="2" />
</staffDef>
</staffGrp>
</scoreDef>
<section xml:id="section-L1F1">
<measure xml:id="measure-L1" right="invis">
<staff xml:id="staff-L1F1" n="1">
<layer xml:id="layer-L1F1N1" n="1">
<beam xml:id="beam-L2F1-L5F1" type="placed" beam.with="below">
<note xml:id="note-L2F1" dur="16" oct="4" pname="a" stem.dir="up" accid.ges="n">
<artic xml:id="artic-L2F1" artic="stacc" place="above" />
</note>
<note xml:id="note-L3F1" dur="16" oct="5" pname="c" stem.dir="up" accid.ges="n">
<artic xml:id="artic-L3F1" artic="stacc" place="above" />
</note>
<note xml:id="note-L4F1" dur="16" oct="5" pname="e" stem.dir="up" accid.ges="n">
<artic xml:id="artic-L4F1" artic="stacc" place="above" />
</note>
<note xml:id="note-L5F1" dur="16" oct="5" pname="g" stem.dir="up" accid.ges="n">
<artic xml:id="artic-L5F1" artic="stacc" place="above" />
</note>
</beam>
<beam xml:id="beam-L6F1-L9F1" type="placed" beam.with="below">
<note xml:id="note-L6F1" dur="16" oct="5" pname="g" stem.dir="up" accid.ges="n">
<artic xml:id="artic-L6F1" artic="stacc" place="above" />
</note>
<note xml:id="note-L7F1" dur="16" oct="5" pname="e" stem.dir="up" accid.ges="n">
<artic xml:id="artic-L7F1" artic="stacc" place="above" />
</note>
<note xml:id="note-L8F1" dur="16" oct="5" pname="c" stem.dir="up" accid.ges="n">
<artic xml:id="artic-L8F1" artic="stacc" place="above" />
</note>
<note xml:id="note-L9F1" dur="16" oct="4" pname="a" stem.dir="up" accid.ges="n">
<artic xml:id="artic-L9F1" artic="stacc" place="above" />
</note>
</beam>
</layer>
</staff>
</measure>
</section>
</score>
</mdiv>
</body>
</music>
</mei> The staccatos are placed vertically as expected (although technically they are a little too close to the beams). When The staccatos are centered on the noteheads as expected, but the vertical heights are not adjusted for the angle of the beam (i.e. they need to move down on the beam going up and up on the beam going down. |
In the following example, notice that the staccato/tenuto on the beam ending notes are not adjusted when the beam is adjusted:
Click to view MEI data for above example.
The articulation should follow the beam's vertical position when the beam is adjusted such that the spacing between the beam and the articulation is the same for both beams.
If the articulations are within the staff this would be less of a problem since they would be constrained to be in the middle of the staff space (but in that case the articulations would be on the notehead sides if the notes, away from the beams).
The sharp stretches out the beam, causing a change in the algorithm that triggers adjustment of the beam angle (or more likely the opposite). Perhaps a more ideal situation is to have a sort of hysteresis where small changes in beam length on a system would not trigger an adjustment in the beam angles so that changes in the beam angle are not noticeable. In other words, if the angle of beam 1 is 10 degrees and beam 10.5 degrees between adjacent or nearby beams, it would be noted that these angles are close, and so either both or neither would have an adjustment. (I am not suggesting implementing this, but something to think about in the future :-).
The text was updated successfully, but these errors were encountered: