Render semantic chord parts, Unicode symbols, and muted rhythm markers - #2248
Merged
isaiahdahl merged 18 commits intoSep 18, 2026
Merged
isaiahdahl merged 18 commits into
isaiahdahl merged 18 commits into
Conversation
isaiahdahl
force-pushed
the
feat/superscript-demo
branch
from
August 7, 2026 16:59
a86a284 to
9b89822
Compare
isaiahdahl
force-pushed
the
feat/superscript-demo
branch
from
August 7, 2026 17:14
80711af to
37c0d9c
Compare
isaiahdahl
marked this pull request as ready for review
August 7, 2026 18:25
isaiahdahl
force-pushed
the
feat/superscript-demo
branch
from
August 7, 2026 18:26
37c0d9c to
bbcbbcb
Compare
isaiahdahl
force-pushed
the
feat/superscript-demo
branch
2 times, most recently
from
August 13, 2026 20:51
dc45a06 to
f592b61
Compare
isaiahdahl
force-pushed
the
feat/superscript-demo
branch
from
August 17, 2026 18:18
f592b61 to
d1fb5da
Compare
isaiahdahl
force-pushed
the
feat/superscript-demo
branch
3 times, most recently
from
August 17, 2026 22:08
fefb631 to
efa37f3
Compare
isaiahdahl
force-pushed
the
feat/superscript-demo
branch
from
August 18, 2026 15:45
efa37f3 to
e5bb771
Compare
isaiahdahl
force-pushed
the
feat/superscript-demo
branch
from
August 24, 2026 22:55
e5bb771 to
27169e0
Compare
martijnversluis
approved these changes
Aug 28, 2026
isaiahdahl
force-pushed
the
feat/superscript-demo
branch
from
August 28, 2026 22:26
48c930a to
dd6da8d
Compare
isaiahdahl
force-pushed
the
feat/superscript-demo
branch
from
September 14, 2026 16:20
dd6da8d to
5307877
Compare
isaiahdahl
force-pushed
the
feat/superscript-demo
branch
from
September 18, 2026 15:45
5307877 to
c307e51
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Stack position
3 of 4
The effective diff contains chord shaping, Unicode/font work, configurable chord-part rendering, and muted-
xstyling. Directive and token-model changes remain in the base PR.Review first
src/rendering/chord_shaper.tssrc/layout/engine/item_processor.tssrc/rendering/pdf/js_pdf_renderer.tssrc/rendering/html/chord_run_renderer.tssrc/chord_sheet/chord_line_token.tsfor mutedxscript/build_symbol_fonts.pyandscript/check-symbol-fonts.shProblem
PDF and measured HTML need the same understanding of a displayed chord. Roots, qualities, extensions, and basses can use different sizes, baselines, and fallback fonts, but measurement and rendering must still agree or line wrapping changes between passes.
Unicode accidentals also need glyphs and metrics that are available in generated PDFs. Relying on an environment font can change output between machines.
Changes
Semantic chord shaping
Displayed chords are split into semantic runs:
The same run model drives:
Public configuration
Omitted values keep neutral rendering. The older
chordSuperscriptinput remains readable for compatibility but is not part of the new configuration surface.Unicode fonts
uvin CI for deterministic font generation.Muted rhythm symbols
xsemantically classified asrhythm-symbolwith variantmute.noChord./and-on the ordinary rhythm-symbol role.Integration guarantees
masternumeric and lowercase Roman behavior remains intact.Boundaries
This layer does not choose contextual enharmonic spellings. It renders the finalized
Chordmodel supplied by the parser and song operations. That provenance work is in #2237.Validation
xsemantics.