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
678 stars 185 forks source link

Cautionary time signature + system break interaction #2723

Closed craigsapp closed 2 years ago

craigsapp commented 2 years ago

Space is allocated to a time signature change at a system break only when one is present on the bottom staff. If there is a change on another staff, space is not allocated for the change.

Notice that the cautionary time signature change to 2/2 at the end of measure 4 is falling off of the system when it is on the top staff, but the 2/2 change at the end of measure 6 is being displayed correctly:

Screen Shot 2022-03-21 at 9 37 12 PM
Click to view MEI data for above example ```xml </titleStmt> <pubStmt /> </fileDesc> <encodingDesc> <appInfo> <application isodate="2022-03-21T21:37:25" version="3.10.0-dev-fe12a79-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="22" token="!!!verovio: spacingSystem 1" xml:id="L23"> <frameInfo> <startTime float="32" /> <frameType>reference</frameType> <referenceKey>verovio</referenceKey> <referenceValue>spacingSystem 1</referenceValue> </frameInfo> </metaFrame> <metaFrame n="23" token="!!!verovio: pageWidth 600" xml:id="L24"> <frameInfo> <startTime float="32" /> <frameType>reference</frameType> <referenceKey>verovio</referenceKey> <referenceValue>pageWidth 600</referenceValue> </frameInfo> </metaFrame> </frames> </extMeta> </meiHead> <music> <body> <mdiv xml:id="mzbpjwr"> <score xml:id="s88j0j3"> <scoreDef xml:id="sm1qen2" midi.bpm="400.000000"> <staffGrp xml:id="sggtem4" bar.thru="true" symbol="brace"> <staffDef xml:id="sku4s06" n="1" lines="5"> <clef xml:id="cjunkjz" shape="G" line="2" /> <meterSig xml:id="metersig-L2F2" count="4" unit="4" /> </staffDef> <staffDef xml:id="s6pyrbc" n="2" lines="5"> <clef xml:id="c54sd8y" 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="1"> <staff xml:id="s5yz8rg" n="1"> <layer xml:id="layer-L1F2N1" n="1"> <note xml:id="note-L4F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="sacsc98" n="2"> <layer xml:id="layer-L1F1N1" n="1"> <note xml:id="note-L4F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> <measure xml:id="measure-L5" n="2"> <staff xml:id="staff-L5F2N1" n="1"> <layer xml:id="layer-L5F2N1" n="1"> <note xml:id="note-L6F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="staff-L5F1N1" n="2"> <layer xml:id="layer-L5F1N1" n="1"> <note xml:id="note-L6F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> <measure xml:id="measure-L7" n="3"> <staff xml:id="staff-L7F2N1" n="1"> <layer xml:id="layer-L7F2N1" n="1"> <note xml:id="note-L8F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="staff-L7F1N1" n="2"> <layer xml:id="layer-L7F1N1" n="1"> <note xml:id="note-L8F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> <measure xml:id="measure-L9" n="4"> <staff xml:id="staff-L9F2N1" n="1"> <layer xml:id="layer-L9F2N1" n="1"> <note xml:id="note-L10F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="staff-L9F1N1" n="2"> <layer xml:id="layer-L9F1N1" n="1"> <note xml:id="note-L10F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> <scoreDef xml:id="sagjjyw"> <staffGrp xml:id="stca0iv"> <staffDef xml:id="srmht9s" n="1"> <meterSig xml:id="mbg5q7s" count="2" unit="2" /> </staffDef> </staffGrp> </scoreDef> <measure xml:id="measure-L11" n="5"> <staff xml:id="staff-L11F2N1" n="1"> <layer xml:id="layer-L11F2N1" n="1"> <note xml:id="note-L13F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="staff-L11F1N1" n="2"> <layer xml:id="layer-L11F1N1" n="1"> <note xml:id="note-L13F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> <measure xml:id="measure-L14" n="6"> <staff xml:id="staff-L14F2N1" n="1"> <layer xml:id="layer-L14F2N1" n="1"> <note xml:id="note-L15F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="staff-L14F1N1" n="2"> <layer xml:id="layer-L14F1N1" n="1"> <note xml:id="note-L15F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> <scoreDef xml:id="s6onb24"> <staffGrp xml:id="syubsy1"> <staffDef xml:id="safiav5" n="2"> <meterSig xml:id="mazgl7h" count="2" unit="2" /> </staffDef> </staffGrp> </scoreDef> <measure xml:id="measure-L16" n="7"> <staff xml:id="staff-L16F2N1" n="1"> <layer xml:id="layer-L16F2N1" n="1"> <note xml:id="note-L18F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="staff-L16F1N1" n="2"> <layer xml:id="layer-L16F1N1" n="1"> <note xml:id="note-L18F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> <measure xml:id="measure-L19" right="end" n="8"> <staff xml:id="staff-L19F2N1" n="1"> <layer xml:id="layer-L19F2N1" n="1"> <note xml:id="note-L20F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="staff-L19F1N1" n="2"> <layer xml:id="layer-L19F1N1" n="1"> <note xml:id="note-L20F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> </section> </score> </mdiv> </body> </music> </mei> ``` </details> </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>The same thing also occurs with key signatures:</p> <img width="387" alt="Screen Shot 2022-03-21 at 9 43 46 PM" src="https://user-images.githubusercontent.com/3487289/159409796-f2f75635-e0f0-4840-88eb-76726d6c78a4.png"> <details> <summary> Click to view MEI data for above example </summary> ```xml <?xml version="1.0" encoding="UTF-8"?> <?xml-model href="https://music-encoding.org/schema/dev/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/dev/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.0-dev"> <meiHead> <fileDesc> <titleStmt> <title /> </titleStmt> <pubStmt /> </fileDesc> <encodingDesc> <appInfo> <application isodate="2022-03-21T21:43:50" version="3.10.0-dev-fe12a79-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="23" token="!!!verovio: spacingSystem 1" xml:id="L24"> <frameInfo> <startTime float="32" /> <frameType>reference</frameType> <referenceKey>verovio</referenceKey> <referenceValue>spacingSystem 1</referenceValue> </frameInfo> </metaFrame> <metaFrame n="24" token="!!!verovio: pageWidth 600" xml:id="L25"> <frameInfo> <startTime float="32" /> <frameType>reference</frameType> <referenceKey>verovio</referenceKey> <referenceValue>pageWidth 600</referenceValue> </frameInfo> </metaFrame> </frames> </extMeta> </meiHead> <music> <body> <mdiv xml:id="mh393fb"> <score xml:id="ss7db4k"> <scoreDef xml:id="s3890m1" midi.bpm="400.000000"> <staffGrp xml:id="sj7vmh2" bar.thru="true" symbol="brace"> <staffDef xml:id="scdswiq" n="1" lines="5"> <clef xml:id="cqa61gt" shape="G" line="2" /> <keySig xml:id="keysig-L3F2" sig="1f" /> <meterSig xml:id="metersig-L2F2" count="4" unit="4" /> </staffDef> <staffDef xml:id="snuseat" n="2" lines="5"> <clef xml:id="cc2c7k8" shape="G" line="2" /> <keySig xml:id="keysig-L3F1" sig="1f" /> <meterSig xml:id="metersig-L2F1" count="4" unit="4" /> </staffDef> </staffGrp> </scoreDef> <section xml:id="section-L1F1"> <measure xml:id="measure-L1" n="1"> <staff xml:id="s4mxefx" n="1"> <layer xml:id="layer-L1F2N1" n="1"> <note xml:id="note-L5F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="s4t3nb3" n="2"> <layer xml:id="layer-L1F1N1" n="1"> <note xml:id="note-L5F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> <measure xml:id="measure-L6" n="2"> <staff xml:id="staff-L6F2N1" n="1"> <layer xml:id="layer-L6F2N1" n="1"> <note xml:id="note-L7F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="staff-L6F1N1" n="2"> <layer xml:id="layer-L6F1N1" n="1"> <note xml:id="note-L7F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> <measure xml:id="measure-L8" n="3"> <staff xml:id="staff-L8F2N1" n="1"> <layer xml:id="layer-L8F2N1" n="1"> <note xml:id="note-L9F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="staff-L8F1N1" n="2"> <layer xml:id="layer-L8F1N1" n="1"> <note xml:id="note-L9F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> <measure xml:id="measure-L10" n="4"> <staff xml:id="staff-L10F2N1" n="1"> <layer xml:id="layer-L10F2N1" n="1"> <note xml:id="note-L11F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="staff-L10F1N1" n="2"> <layer xml:id="layer-L10F1N1" n="1"> <note xml:id="note-L11F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> <scoreDef xml:id="s9e3wjk"> <staffGrp xml:id="sugz6r1"> <staffDef xml:id="sddgtza" n="1"> <keySig xml:id="keysig-L13F2" sig="1s" /> </staffDef> </staffGrp> </scoreDef> <measure xml:id="measure-L12" n="5"> <staff xml:id="staff-L12F2N1" n="1"> <layer xml:id="layer-L12F2N1" n="1"> <note xml:id="note-L14F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="staff-L12F1N1" n="2"> <layer xml:id="layer-L12F1N1" n="1"> <note xml:id="note-L14F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> <measure xml:id="measure-L15" n="6"> <staff xml:id="staff-L15F2N1" n="1"> <layer xml:id="layer-L15F2N1" n="1"> <note xml:id="note-L16F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="staff-L15F1N1" n="2"> <layer xml:id="layer-L15F1N1" n="1"> <note xml:id="note-L16F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> <scoreDef xml:id="stdxciu"> <staffGrp xml:id="sje84ux"> <staffDef xml:id="s79pw9x" n="2"> <keySig xml:id="keysig-L18F1" sig="1s" /> </staffDef> </staffGrp> </scoreDef> <measure xml:id="measure-L17" n="7"> <staff xml:id="staff-L17F2N1" n="1"> <layer xml:id="layer-L17F2N1" n="1"> <note xml:id="note-L19F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="staff-L17F1N1" n="2"> <layer xml:id="layer-L17F1N1" n="1"> <note xml:id="note-L19F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> <measure xml:id="measure-L20" right="end" n="8"> <staff xml:id="staff-L20F2N1" n="1"> <layer xml:id="layer-L20F2N1" n="1"> <note xml:id="note-L21F2" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> <staff xml:id="staff-L20F1N1" n="2"> <layer xml:id="layer-L20F1N1" n="1"> <note xml:id="note-L21F1" dur="1" oct="4" pname="c" accid.ges="n" /> </layer> </staff> </measure> </section> </score> </mdiv> </body> </music> </mei> ``` </details> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/lpugin"><img src="https://avatars.githubusercontent.com/u/689412?v=4" />lpugin</a> commented <strong> 2 years ago</strong> </div> <div class="markdown-body"> <p><img src="https://user-images.githubusercontent.com/689412/159526339-1c31362f-24c2-4c9c-856b-445f89c52195.png" alt="image" /></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>