
ChordFont(archived)
Jazz chord symbols, engraved properly — as a font.
npm install @chordlang/font
Jazz chord symbols, engraved properly — as a font.
npm install @chordlang/fontOpenType font that turns Emaj7#11 or Am7b5 into Real Book-style engraved
chord symbols. No rendering library, no canvas, no SVG — engraving lives in the
font. Anywhere you can set a typeface, you can typeset chords.
Works in Dorico/MuseScore/Finale text blocks, word processors, Figma, DAW
markers, slides, web @font-face, PDF export. Monorepo
(chordlang) also ships playground,
lead-sheet editor (.cfmd), and harmonic graphs (.cfgv / Graphviz).
Harmony in the normalizer. PEG grammar parses chord syntax; a normalizer
(wrapping tonal) resolves a canonical factor
set. Altered fifths use replace-not-append — E7b5 replaces the perfect fifth
(verified across E7 / E9 / E13 with ♭5 and ♯5).
Engraving in GSUB. After normalization, no render-time tokenization —
OpenType ligature and contextual substitutions map ASCII to engraved forms
(maj7 → △, m7b5 → ø, superscripted tension stacks).
Accidental binding: a flat after a root (Bb) is a different glyph than a
flat in an alteration (b9). flat.root / sharp.root substitute only when
the accidental follows A–G; .alt forms elsewhere.
GSUB shape tests are the engraving spec; normalizer suite is the harmony spec; a stress-test harness renders the full vocabulary as a regression fixture.
Glyphs derive from Petaluma (Steinberg SMuFL), SIL OFL.