David Kastrup <dak <at> gnu.org>
2014-11-22 16:35:26 GMT
I am currently contemplating our chord support and it appears rather
badly modularized to me.
Chords are typically generated in \chordmode. \chordmode generates
music that basically can serve directly in staves for keyboard.
Then we have the ChordNames context. It uses some internal functions
called via procedures stored in context properties to figure out root
and extensions of such chords. Then there are several
language/convention dependent chord naming functions building chords.
Which components can be changed in what manner is rather hardwired.
Then we have the Fretboards context which takes a keyboard chord,
associates it with predefined guitar chords, and outputs a translated
fret diagram. Of course, the same translation would make sense in order
to generate a score for classical guitar players (who tend to be great
at reading scores and soso at actually knowing all those chords by
name). We don't have _any_ way to wire this chord mapping into score
typesetting, only into fret diagrams.
Now shiver me timbers, I am interested in doing chords for accordions.
Accordions have an x:7 button that is actually x:7^5 and they have a
x:dim button that is actually x:dim7^5.
Now what input would one want for those? Arguably, x:7 and x:dim since
accordion players generally don't take the fifth regarding those chords.
To make things more confusing, there are accordions with only three