Hello,I got started with LilyPond a week ago to write some arrangements for a small group, in the context of improvised music. (I'm really enjoying the program, it's very
intuitive and the output looks great!)I have a question about customizing chord names. From manuals/snippets/etc I learned that one is able to add custom chord symbols like
so:myChordNames = { <c e g a d'>1-\markup { \super "6-9" }}And then appending this to the chord exception list, etc. That works, but fundamentally, it seems
that there is always a collection of simultaneous pitches in a music expression that then gets interpreted and translated to a symbol when it is put into a ChordNames context.
For several reasons (explained below), I would be interested to know if it is possible to "skip" the layer of simultaneous pitches completely, take a single pitch as
the root note, and "simply" manipulate the chord symbol with markup text.Ideally, I would love to be able to do something like this:\new ChordNames { \relative {
c1^\markup { \super "6-9" } }}The text added to the note would get printed above the staff in a Staff context but gets ignored by the ChordNames context. (I also
looked into the NoteNames context, but that ignores it as well.)Perhaps naïvely, it sounds like something that could be achieved? There is functionality that prints text
behind a chord symbol (such as text specified in the chord exception list), and there is functionality that stores text together with a note (such as that text printed above
the staff): it would need to be linked together somehow.I looked at the source a bit, but I'm still learning Scheme. Is there anybody who could point me in the right
direction? Or perhaps there is a much simpler solution to achieve the same output?Many thanks in advance,KoenThe reasons I would prefer specifying chord name input like that
are as follows:- For improvised music, harmony is more of a loose "agreement" or "context" for some duration within the piece. It is useful to include it
with all the parts. Chord symbols are not really standardized and many different ones are in use. Flexibility to come up with new ones is desirable: one example would be to
simply specify a mode. Of course this can currently be done by adding to the chord exceptions, but specifying the pitches every time seems redundant if they are not getting
printed anyway. ("Who cares, as long as the symbol has meaning to the musicians.")- Being played in 12ET, there are often distant modulations or chromatic motifs.
The whole of it gets transposed for different instruments: for some of those, it leads to many double flats or double sharps. Although I'm a fan of maintaining harmonic
relationships and reading at concert pitch in the first place, not everyone is, and sight readers are not pleased with the double accidentals. To solve this, I'm using a
function (also found in the snippets) to "naturalize" the pitches to enharmonic ones. However, this then messes up the chord symbols, as the intervals get changed
internally.- I would like to keep the root notes in a music expression, as I would still like to be able to specify duration and automatically transpose the chord symbols. The
naturalizing function would then only act on the chord "as a whole", as the chord is just specified as a tonal center with a context added to it in text. Slash chord
functionality where both the root note and the bass note get transposed (and the rest of the symbol is text) would be useful, but that sounds like it would be more tricky.