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

Reply via email to