From: Ben Eichler <[email protected]>
Date: Saturday, February 29, 2020 at 1:46 AM
To: <[email protected]>
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