From: Ben Eichler <ben.eich...@gmail.com> Date: Saturday, February 29, 2020 at 1:46 AM To: <lilypond-user@gnu.org> Subject: Ties in chord mode
Hi all, I transcribe songs using a style of melody + lyrics + chords. In certain songs, I write the same chord twice. Sometimes I want both chords to be printed, for example the second chord is starting a new section. Other times I may want only the first chord to be printed. \set chordChanges = ##t is too blunt an instrument (ha!) to deal with these situations. The only tool I am aware of to deal with this is overflowing bar duration, but sometimes the duration needs to be either irregular or longer than 6 beats, and having a tie would become helpful. In a 4/4 time signature, if I want to make a chord last for 6 beats, I can luckily work around it using a dotted duration that overflows the bar: Chord notation: |C . . . |(C) . F . | Lilypond notation: {\chordMode { c1. f2 } But suppose I want that C major chord to last only for 5 beats, in a melody I would use a tie, but that doesn't work in chord mode, the second chord is printed which I don't want: Chord notation: |C . . . |(C) F . . | Lilypond notation: \chordmode { c1( c4) f2. } First, the notation you are proposing uses slurs, not ties. Second, \chordmode already supports ties: \version "2.18.0" mus = \chordmode{ c1~c1~c1 } \score { << \new ChordNames {\mus} \new Staff {\mus} >> } As you can see in this example, ties in \chordmode are done exactly as you would expect. The issue is not that ties don’t work in \chordmode, but rather that the ChordNames context doesn’t display the chords the way you would like to see them displayed. Is it your preference that the chord name for tied chords be displayed in parentheses? Or would you rather have it not displayed at all? You can make a request for a new feature, but I don’t know that anybody is actively working on the ChordNames context. So the feature may not be implemented. Another possibility for a workaround: \version "2.18.0" mus = \chordmode { c1 | c1 | c1*127/128 \once \hideNotes r4*1/32 | c1 } << \new ChordNames \with { noChordSymbol=" " chordChanges = ##t }{ \mus} \new Staff {\mus} >> Perhaps the best workaround I can think of is to \set chordChanges = ##t, then any place you want to show a chord name, you can do either a \once \set chordChanges = ##t or a \once \unset chordChanges. \version "2.18.0" mus = \chordmode { c1 | c1 | c1 | c4 f2. | c1 | % \once \set chordChanges = ##f \once \unset chordChanges c1 | c1 | } << \new ChordNames \with { noChordSymbol=" " chordChanges = ##t }{ \mus} \new Staff {\mus} >> HTH, Carl