What if I want to name arbitrary text in the ligature instead of your list of chords? What if I disagree with how you spell minor as 'm' whereas I want 'mi' or even '-'. How about things like half-diminished, which is often written as 'ø7' vs. calling it a mi7(♭5), like a particular music school I went to prefers. Also, if you're sticking to possible chords qualities, it's 2 * 12 == 4096. I've implemented functions that return the spelling of chord quality over that range, and can return a "proper" answer dependent on rules, but I think in your case you could/should be letting the user call the chord anything they want.<p>Your presets didn't even include the chord D6 for example. Why have 7th chords like A7 and not have A6? So either cover the chords, or don't pretend that it supports chords. You could change it to say "supports chords that [you] in particular have heard of". Unless there is a way to switch into that mode (where I can speak chords)? I noticed the first test string of \am7\ works, but can't get flats or sharps to work. It really should accept text like this:<p><pre><code> Abmi6(#5,add9)/Db5
</code></pre>
, or anything you want to write. I have a use-case where I invented a new way to describe chords, so any possibilities in the "normal" world of music don't apply. I also have a use-case where I want to be able to say any of the 12 * 2 * 12 things squared (squared because of "slash notation" adding a whole new identity to the chord symbol) what you could potentially be able to say in 12 roots 12 tone harmony with an extra component in the bass. There are 2415919104 possible inputs to this, but the thing is, there are multiple ways to spell that.<p>I propose you do a chord spelling where to font only accepts capitalized letters as note names. Then you can use 'b' as flat '♭' and have no conflict with the note-name called B.<p>Also you can specify chords using numbers. Numbers accept accidentals <i>before</i> the number part of the string as opposed to <i>after</i> in the case of "alphabet" note names. And numbers can be spelled either "Nashville" like 1,2mi,3, or "Roman" like the following example. Notice to that in that one any minor or diminished or half-diminished chords use lowercase numerals.<p><pre><code> Summertime - Gershwin
|Imi | iimi7(b5) V7 | Imi | |
|ivmi7 | | bVI7 V7 | ...
</code></pre>
You could use numeral-glyph substitution when encountering substrings with consecutive members of "IiVv" that are also valid numerals.<p>Also it would be nice to be able to use the character, '|', to add measure lines, fer countin', fer the slower ones out there like yours truly. I could see this as being useful if it could be used a little more comprehensively, like in the ways I've outlined.<p>"Easy" thing for you to do to improve this drastically is to make it so you can just have any old text you want in between the backslashes. Or have another entry point in the font where that is possible.