Hi David, > Here's my take on how to do this more transparently: first have an > engraver that does the basic chord analysis and writes one or several > properties with the basic analysis results (like fundamental pitch and > scale offsets). Those properties are made part of text-interface. > > Then have several markup commands producing output based on those > properties. Like German chord names, or a markup list with > modifications and stuff like that. And then you can basically create > one fixed markup for each chord naming style and assign that to the > "text" field of a ChordName. > > Also it then becomes easy to put chord names into a TextScript
That all sounds great. If the engraver broke the chord components into the smallest possible bits (e.g., root, quality, third stack, alterations, bass or inversion), then the NameBuilder (or whatever) could format those however one pleased. However, I’m also concerned that the current input syntax isn’t rich enough. For example, one can’t tell Lilypond “at run time" if <c d f bf> should be labelled as Bb/C or C7(sus2,sus4). [Note that, at this point, I don’t care what anyone’s preference for display of this chord is — I’m simply pointing out that I don’t know of a mechanism to force Lilypond to label the same set of notes two or more different ways.] So we should attack the input mode as well, to support the widest and most flexible possible usage. Best regards, Kieren. ________________________________ Kieren MacMillan, composer ‣ website: www.kierenmacmillan.info ‣ email: i...@kierenmacmillan.info _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user