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

Mensur signs with only @numbase #3525

Closed craigsapp closed 4 weeks ago

craigsapp commented 1 year ago

It would be useful if <mensur> could display @numbase when there is no @num.

Currently <mensur> can show a @num without a @numbase:

Screenshot 2023-09-30 at 13 50 46
Click to view MEI data for above example ```xml </titleStmt> <pubStmt /> </fileDesc> <encodingDesc> <appInfo> <application isodate="2023-09-30T13:50:39" version="4.1.0-dev-70e54d8"> <name>Verovio</name> <p>Transcoded from Humdrum</p> </application> </appInfo> </encodingDesc> <workList> <work> <title /> </work> </workList> </meiHead> <music> <body> <mdiv xml:id="mdqrnvg"> <score xml:id="s9j2fj8"> <scoreDef xml:id="s17ip29u" midi.bpm="280.000000"> <staffGrp xml:id="s1udnyjc"> <staffDef xml:id="staffdef-L1F1" n="1" notationtype="mensural.white" lines="5"> <clef xml:id="clef-L2F1" shape="C" line="3" /> </staffDef> </staffGrp> </scoreDef> <section xml:id="section-L1F1"> <staff xml:id="staff-L1F1" n="1"> <layer xml:id="layer-L1F1N1" n="1"> <mensur xml:id="mensur-L3F1" num="3" modusmaior="2" modusminor="2" prolatio="2" tempus="3" sign="C" /> <note xml:id="note-L5F1" dur="brevis" oct="4" pname="c" /> <barLine xml:id="barline-L6F1" form="single" /> <mensur xml:id="mensur-L7F1" num="2" sign="C" /> <note xml:id="note-L8F1" dur="brevis" dur.quality="imperfecta" oct="4" pname="d" /> <barLine xml:id="barline-L9F1" form="single" /> </layer> </staff> </section> </score> </mdiv> </body> </music> </mei> ``` </details> <pre><code class="language-xml"> <mensur sign="C" num="3" /> <mensur sign="C" num="2" /></code></pre> <p>And if there are both <code>@num</code> and <code>@numbase</code>:</p> <img width="326" alt="Screenshot 2023-09-30 at 13 52 46" src="https://github.com/rism-digital/verovio/assets/3487289/45a73e08-49c5-4b9b-8c9c-3f63a61d504d"> <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/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="2023-09-30T13:53:35" version="4.1.0-dev-70e54d8"> <name>Verovio</name> <p>Transcoded from Humdrum</p> </application> </appInfo> </encodingDesc> <workList> <work> <title /> </work> </workList> </meiHead> <music> <body> <mdiv xml:id="m8ixgc3"> <score xml:id="s4vrvnl"> <scoreDef xml:id="s1xeobj2" midi.bpm="280.000000"> <staffGrp xml:id="sjwlk6u"> <staffDef xml:id="staffdef-L1F1" n="1" notationtype="mensural.white" lines="5"> <clef xml:id="clef-L2F1" shape="C" line="3" /> </staffDef> </staffGrp> </scoreDef> <section xml:id="section-L1F1"> <staff xml:id="staff-L1F1" n="1"> <layer xml:id="layer-L1F1N1" n="1"> <mensur xml:id="mensur-L3F1" num="3" numbase="2" sign="C" /> <note xml:id="note-L5F1" dur="brevis" dur.quality="perfecta" oct="4" pname="c" /> <barLine xml:id="barline-L6F1" form="single" /> <mensur xml:id="mensur-L7F1" num="2" numbase="3" sign="C" /> <note xml:id="note-L8F1" dur="brevis" dur.quality="imperfecta" oct="4" pname="d" /> <barLine xml:id="barline-L9F1" form="single" /> </layer> </staff> </section> </score> </mdiv> </body> </music> </mei> ``` </details> <pre><code class="language-xml"> <mensur sign="C" num="2" numbase="3" /> <mensur sign="C" num="3" numbase="2" /></code></pre> <p>But when there is only <code>@numbase</code>, there is no number displayed (underneath the mensuration sign):</p> <img width="393" alt="Screenshot 2023-09-30 at 13 55 19" src="https://github.com/rism-digital/verovio/assets/3487289/337a0162-a102-4f6c-b20e-34e605e178c9"> <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/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="2023-09-30T13:55:28" version="4.1.0-dev-70e54d8"> <name>Verovio</name> <p>Transcoded from Humdrum</p> </application> </appInfo> </encodingDesc> <workList> <work> <title /> </work> </workList> </meiHead> <music> <body> <mdiv xml:id="m1ymwvpg"> <score xml:id="sxhxt9p"> <scoreDef xml:id="s61sjas" midi.bpm="280.000000"> <staffGrp xml:id="si50j4l"> <staffDef xml:id="staffdef-L1F1" n="1" notationtype="mensural.white" lines="5"> <clef xml:id="clef-L2F1" shape="C" line="3" /> </staffDef> </staffGrp> </scoreDef> <section xml:id="section-L1F1"> <staff xml:id="staff-L1F1" n="1"> <layer xml:id="layer-L1F1N1" n="1"> <mensur xml:id="mensur-L3F1" numbase="3" sign="C" /> <note xml:id="note-L5F1" dur="brevis" dur.quality="perfecta" oct="4" pname="c" /> <barLine xml:id="barline-L6F1" form="single" /> <mensur xml:id="mensur-L7F1" numbase="2" sign="C" /> <note xml:id="note-L8F1" dur="brevis" dur.quality="imperfecta" oct="4" pname="d" /> <barLine xml:id="barline-L9F1" form="single" /> </layer> </staff> </section> </score> </mdiv> </body> </music> </mei> ``` </details> <p>The mensurations in this example are:</p> <pre><code class="language-xml"> <mensur sign="C" numbase="3" /> <mensur sign="C" numbase="2" /></code></pre> <p>Where there should be a <code>3</code> below the <code>C</code> and then a <code>2</code> below the <code>C</code> in the second mensuration sign.</p> <p>Here is an example of </p> <pre><code class="language-xml"> <mensur sign="O" slash="1" numbase="3" /></code></pre> <p>in a real example with cut-circle over 3:</p> <img width="292" alt="Screenshot 2023-09-30 at 14 00 27" src="https://github.com/rism-digital/verovio/assets/3487289/f3cac73a-fce2-41f8-bf64-582e76fbae02"> </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> 1 year ago</strong> </div> <div class="markdown-body"> <p>It makes sense to me. @annplaksin and @martha-thomae any comments on this?</p> </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> 1 year ago</strong> </div> <div class="markdown-body"> <p><a href="https://github.com/rism-digital/verovio/issues/288">https://github.com/rism-digital/verovio/issues/288</a> lists several mensuration signs in JRP that have a number under the main mensuration sign without a top number:</p> <pre><code>155 O/3 Jap3009 &#e911; over &#xe928; 6 C|/3 Jos0406d &#e918; over &#xe928; 4 C|/2 Jos0902d &#xe918; over &#xe927;</code></pre> <p>The first one occurs at a rate of about 1% of the time in the database, while the other two are rare (<code>cut-circle/3</code> is from the 1520's project database).</p> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/annplaksin"><img src="https://avatars.githubusercontent.com/u/12529090?v=4" />annplaksin</a> commented <strong> 1 year ago</strong> </div> <div class="markdown-body"> <p>I know the 3 with a circle on top of the 3 as a sesquialtera sign. As far as I know, it was introduced by Petrucci prints and can be found in later manuscripts as well, e.g. here: <a href="https://www.e-codices.unifr.ch/en/csg/0463/31v">https://www.e-codices.unifr.ch/en/csg/0463/31v</a> </p> <p>We solved the logical side of sesquialtera with <code>@level</code> but we still circle around the visual representation. The main issue with using only <code>@num</code> or only <code>@numbase</code> is, that it does not explain how it should be resolved, e.g.:</p> <ul> <li>as 3/2 in a sesquialtera proportion -> needs an implicit denominator</li> <li>as a 3/1 in a tripla proportion (rare but as far as I know possible) -> needs an implicit denominator</li> <li>as modus cum tempore sign -> would be resolved with <code>@tempus</code> and <code>@modus*</code></li> </ul> <p>It definitely makes sense to be able to display a <code>@numbase</code> without <code>@num</code> and vice versa, but I guess in the long run, we need a way to capture the implicit counterpart without displaying it.</p> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/benory"><img src="https://avatars.githubusercontent.com/u/74871483?v=4" />benory</a> commented <strong> 1 year ago</strong> </div> <div class="markdown-body"> <p>Thanks, all, for your help with this!</p> <p>Anna: Ah, the picture that I provided Craig doesn't quite do it justice. It's a Cut-Circle (not a circle) on top of a 3, which is the preferred sign for sesquialtera in the manuscript Bologna Q20. (You're of course right that Petrucci introduces the Circle-over-3.)</p> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/martha-thomae"><img src="https://avatars.githubusercontent.com/u/13948831?v=4" />martha-thomae</a> commented <strong> 1 year ago</strong> </div> <div class="markdown-body"> <blockquote> <p>It makes sense to me. @annplaksin and @martha-thomae any comments on this?</p> </blockquote> <p>This makes sense to me to be able to render <code>@numbase</code> under the mensuration sign even when a <code>@num</code> is not given.</p> </div> </div> <div class="comment"> <div class="user"> <a rel="noreferrer nofollow" target="_blank" href="https://github.com/benory"><img src="https://avatars.githubusercontent.com/u/74871483?v=4" />benory</a> commented <strong> 7 months ago</strong> </div> <div class="markdown-body"> <p>Hi folks! I wanted to bump this. I've been working with the New Senfl Edition to add their scores to my project, and I'm now also in need of the sign Cut-C over 3. Any chance we can get mensuration signs with only a numbase?</p> </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> 4 weeks ago</strong> </div> <div class="markdown-body"> <p>How should Cut-C over 3 be expressed (in CMN)? (exclude <code>@num</code> which is implicitly 2, and only give <code>@numbase="3"</code>?</p> </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> 4 weeks ago</strong> </div> <div class="markdown-body"> <p>Like this?</p> <pre><code class="language-xml"><?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> </meiHead> <music> <body> <mdiv xml:id="m1756h3a"> <score xml:id="s14g40td"> <scoreDef xml:id="slw6g3r" midi.bpm="280.000000"> <staffGrp xml:id="s1dfdahk"> <staffDef xml:id="staffdef-L1F1" n="1" notationtype="mensural.white" lines="5"> <clef xml:id="clef-L2F1" shape="C" line="3" /> </staffDef> </staffGrp> </scoreDef> <section xml:id="section-L1F1"> <staff xml:id="staff-L1F1" n="1"> <layer xml:id="layer-L1F1N1" n="1"> <mensur xml:id="mensur-L3F1" sign="C" slash="1" numbase="3" /> </layer> </staff> </section> </score> </mdiv> </body> </music> </mei></code></pre> <img width="76" alt="image" src="https://github.com/user-attachments/assets/7882d6f0-a6a4-4520-9d5c-79ed177f63cb"> </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> 4 weeks ago</strong> </div> <div class="markdown-body"> <p>Yes, that looks great!</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>