musescore / MuseScore

MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!
https://musescore.org
Other
12.19k stars 2.64k forks source link

Implement correct SMuFL stems for renaissance/medieval noteheads #20249

Open gnzgg opened 10 months ago

gnzgg commented 10 months ago

Issue type

Engraving bug (incorrect score rendering)

Bug description

Hi ! I'm in the process of transcribing some good ol' Franco-Flemish Renaissance polyphony, which requires me to use long notes with square heads. The "Alt. Brevis" notehead style is actually really great in that regard, but i noticed a tiny issue with the longa and its stem:

By default, the width of the stem is 0.1, which is appropriate with the default notehead style (the one that looks like this "IIOII"), but doesn't work with the larger square notehead. Of course, stem width can be edited so that shouldn't be a problem, but getting it exactly right happens to be impossible !

A stem width of 0.15 is almost perfect, with a minuscule scuffed joint ! I tried to offset the note by 0.01, or using a width of 0.14 or 1.6, but nothing works !

The easiest fix i can think of would be to make the "Alt. Brevis" square note's line very slightly thicker to match a 0.15 stem width

I made a little picture to illustrate the issue ! Musescore

and here's a little reference with some unrelated nerdy comments

Capture d'écran 2023-11-29 154132

This is a very small issue but it is very extremely important because one of my teacher is a world class expert in ancient music notation and i'm sneakily trying to convert him to musescore by casually having the most perfectly rendered transcriptions ever

Steps to reproduce

-Make a 4/1 measure and write a longa (= 2 brevis = 4 whole notes) -change the notehead style to "alt. brevis" -try to get the stem and the note to smoothly connect -impossible, can't be done

Screenshots/Screen recordings

No response

MuseScore Version

4.x

Regression

I don't know

Operating system

Windows 11

Additional context

No response

oktophonie commented 10 months ago

This actually came up on the Leland repo a while ago: https://github.com/MuseScoreFonts/Leland/issues/25

The fundamental problem is that the vertical line components of any notehead are part of the notehead glyph, but the stems are drawn as a line of a given thickness, and what we're asking for here is for the two to perfectly match, Of course this will vary from font to font (and might even vary between noteheads in a font, possibly), so the stem width needs to be dynamic, based on the notehead. The only sensible way I can imagine that is if this value is defined for each glyph in question as part of the SMuFL metadata; or, glyphs could be designed which incorporate the stem (which would then be of fixed length).

Actually, now I bother to look: probably we need to look into using these combining stems: https://w3c.github.io/smufl/latest/tables/medieval-and-renaissance-noteheads-and-stems.html (I consider this a feature request rather than a bug)

sammik commented 10 months ago

for inspiration, lilypond does it nice lilypond-mensural

https://lilypond.org/doc/v2.24/Documentation/notation/note-head-styles

gnzgg commented 10 months ago

Sorry for double posting, but I just realized that the default notehead also have the exact same issue (shown here with a 0.15 stem width)

Capture d'écran 2023-12-01 101724