lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Adding text to chord names or note names


From: Koen van Walstijn
Subject: Adding text to chord names or note names
Date: Fri, 25 Nov 2022 23:06:25 -0000

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,
Koen

The 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.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]