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

Issue with valuation of rest within a change of mensuration #927

Closed karend27 closed 2 weeks ago

karend27 commented 6 years ago

garison_MENSURAL.mei.zip This might be a similar issue to the previously posted one, but in this piece, the rests are being valued incorrectly

The two longa rests (with xml-ids m-329 and m-331 in the attached file) are colored red and will be interpreted as 2-breve rest regardless because the @modusminor = “2” and neither of these rests have @num and @numbase attributes to change the longa’s imperfect default value. Since there are no @num and @numbase attributes used with these elements, all of them should be understood by Verovio according to the mensuration (@modusminor = “2”), so as “imperfect” long rests worth two breves.

Here's a screenshot of the first rest:

screen shot 2018-07-27 at 12 20 24 1

The tenor is encoded as follows: `

                            <note xml:id="m-261" color="rgba(255,0,0,1)" dur="longa"  oct="4" oct.ges="3" pname="e" />
                            <note xml:id="m-263" color="rgba(255,0,0,1)" dur="longa"  oct="4" oct.ges="3" pname="d" />
                            <barLine xml:id="m-4cbc1261-6f69-4918-94be-de926e375d96" />
                            <note xml:id="m-327" color="rgba(255,0,0,1)" dur="longa"  oct="4" oct.ges="3" pname="c" />
                            <rest xml:id="m-329" color="rgba(255,0,0,1)" dur="longa"  />
                            <rest xml:id="m-331" color="rgba(255,0,0,1)" dur="longa"  />
                            <barLine xml:id="m-0a5a7c43-b313-41a8-8cd7-9282eff656a8" />
                            <mensur xml:id="m-bdf608e2-1fa8-4c02-9b1f-6b4c51dfcd9e" modusmaior="2" modusminor="3" tempus="3" prolatio="3" />
                            <note xml:id="m-383" dur="longa"  oct="4" oct.ges="3" pname="c" />
                            <barLine xml:id="m-e46632bf-ac45-428d-bd93-1671593a8d7c" />`
martha-thomae commented 3 years ago

Hi @lpugin! Regarding your question in PR #2061: I don't think that the fix done in that PR is related to this issue. My guess is that this issue might be due to an assumption about rests. It seems like all longa rests are being detected as perfect, regardless of the @modusminor value. They should follow the mensuration (having a binary value when @modusminor = 2, and a ternary value when @modusminor = 3). Will check to see what might be causing this.

lpugin commented 2 weeks ago

This has been fixed. Please re-open if necessary

image