TAB - Mixing mensural value symbols and beaming in historic tablatures #2235
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
References: Technology Preview forum post with discussion, screen-shots and links to additional threads https://musescore.org/en/node/81051
Implements the possibility to mix, in TAB's with note symbols at staff side, mensural value symbols (discreet glyphs) with the 'grid'-shaped beaming found in historical sources and commonly used in lute literature.
The beaming is implemented by special drawing of the
TabDurationSymbol
element holding the note value symbol, using drawing primitives instead of the relevant font glyph.The user may choose between the two renderings (discreet glyph or beaming grid), on a chord-by-chord basis, by setting the chord
BeamMode
(via for instance the relevant palette):AUTO
selects the glyph rendering,beam start
the start of the grid andbeam middle
the continuation of the grid beamed to the previous element.Typographic features of the grid (stem width, stem height and beam thickness) depend on the glyph style and are hard-coded in the style definition. As well as the number of beams for note value, which also depends on the note value style.
Also:
QFontMetricsF::tightboundingRect()
returns very approximated results)