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

Tablature: Symbol scaling not quite right #2527

Closed TimCrawford closed 2 years ago

TimCrawford commented 2 years ago
Click to view MEI data for example below. ```xml
```

Describe the problem [This is my original description: (French tab only, probably:) Symbol scaling isn’t quite right. Staff-line distance probably needs to be still larger, and rhythm flags also a little larger at this overall scale. (put another way, fret symbols are too big, but would be hard to read if they were shrunk to fit). The current scaling causes collisions between tall symbols on adjacent lines [NB this seems to be mainly (exclusively??) a problem with French tablature, and is probably caused by poor metrics in the French-tablature font - what to do?]

Here are the results of a little tweaking by TC in view_tab.cpp: (NB that Verovio does not display tab beyond the 12 fret (octave from open string) - this definitely needs extending! Cittern tablatures frequently use these high frets, and one baroque source goes up to fret z, i.e. two octaves above the open string; same applies for modern guitar number-based tablature)

  1. With Leipzig font: tall_glyphs_leipzig

  2. With Bravura font: tall_glyphs_bravura

My impression is that a small increase in the staffline-spacing and a few minor improvements to Leipzig's tablature symbols (originally scanned from historical examples) would solve the problem(s): the baseline of the g is too low (cf Bravura, here - NB, when p and q are added there will be the same problem) and with a slightly widened staff there should be no 'white-outs' of the staff-lines (alternatively, the Leipzig font-size could be a bit smaller).

The Bravura font (also, I think based on historical examples, but not quite consistently, perhaps) suffers from rather varying glyph-sizes which are typographically ugly (to me, anyway).

lpugin commented 2 years ago

It would be good to check what you get with the Bravura font. Could you post the result here?

TimCrawford commented 2 years ago

Laurent,

Phew, at last I have conquered the mysteries of markdown sufficiently to post the result in Issue #2527 following Craig’s slightly cryptic advice. (I may have said too much in the posting, but since this has already taken me more than one hour to do, I shall leave it for now.)

BTW the augmentation dot is probably now too high (it will clash with smaller note-values in Leipzig, where perhaps it should be displayed a bit bigger and somewhat to the right?). Dots are easy to miss in tab rhythm signs, so they should be made clearly visible. Obviously it would be better if this was font-independent, but this may not be possible.

Sorry, but I’m still not clear how to present my code changes. I now have a new verovio git repo on my hard drive, which I cloned from my new fork (https://github.com/TimCrawford/verovio). How do I show these to anyone interested? Do I just push to this (new) repo and tell people to look there?

Please excuse my git/GitHub incompetence.

lpugin commented 2 years ago

This is the current design for the g in Bravura and Leipzig, with a star at the origin of the glyph. image

image

If I understand correctly, we need to change its origin for the Leipzig one and scale it for it to fit between two lines. Is it correct?

lpugin commented 2 years ago

I made some adjustment to the font. This is what I am not obtaining. @TimCrawford let me know what you think (ignore the overlap with the duration symbols) image

lpugin commented 2 years ago

This is now the current rendering with the develop-tab branch

image

Re-open the issue if necessary