lilypond-user
[Top][All Lists]
Advanced

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

A "chordChanges toggle" for the Fretboard_engraver?


From: Huub Stoffers
Subject: A "chordChanges toggle" for the Fretboard_engraver?
Date: Sun, 1 Mar 2009 16:41:19 +0100

Hello,

I'm fairly new to Lilypond, but I think I've studied the documentation
fairly well, particularly those parts related to the topic addressed below.
After experimenting with various ways of adding chord names and
fret diagrams to a lead melody, I would like the Lilypond developers to
consider a "request for enhancement", viz. a "chordChanges toggle"
for "fretboards, analogous to the toggle that already exists for
"chordnames".



>From the Lilypond documentation that I've read, and the "snippets"
of others that I studied, I concluded that there are basically two ways
to produce fret diagrams aligned with the chord names above the
lead melody staff:

1. Use a "chordNames" context for the chords names, and explicit \markup
   commands with \fret-diagram specifications attached with (^) to the
   notes on the melody staff.

2. Use a "chordNames" context for chord names, and use a "FretBoards"
   context for the diagrams. Use the same variable in which the actual
   changes are defined in both. (See my example below)

I think method 2, using the "FretBoards" context, is the better, the more
generic and flexible, way. Method 1 is e.g. not at all well suited for all those
cases where chord changes occur under an unchanging note in the lead melody.

One could of course argue against this, that method 1, using explicit
\markup commands, can also be used in such cases if the \markup is attached
to the chords rather than to the notes of the lead melody. However,
attaching \markup commands proves to be impossible in \chordmode; it
requires the default \notemode. But using \notemode for entering chords
has another serious drawback, and the Lilypond documentation clearly
points this out: entering chords in \notemode in general leads to odd
undesirable chord names whenever a voicing is used that does not have
the root of the chords as its lowest note.

But using method 2 however still produces some undesirable redundant diagrams
in the layout because an equivalent of the "chordChanges" option in
the "chordNames" context is lacking the "FretBoards" context. To me it seems
a natural companion to the toggle for the chord names. See the example below.


I have two questions about this:

- Could a "chordChanges toggle" for the Fretboards_engraver be implemented
  in a next Lilypond release?

- Has anybody a good workaround for suppressing the redundant diagram output?



<EXAMPLE>
( ... )
\score {
        <<
                \new ChordNames {
                        % We want chord symbols only to appear at changes,
                        % not at every instance - stroke - that the chord
                        % is used.
                        \set chordChanges = ##t
                        \harmonies
                }
                
                \new FretBoards {
                        % Like the chord names, we only want the diagram
                        % to appear only when a new one is needed because of
                        % a chord change. Unlike the chord names, this does
                        % not work! In the "internals" manual it shows that
                        % the Chord_name_engraver has this variable but the
                        % Fretboard_engraver has not :-(
                        \set chordChanges = ##t
                        \harmonies
                }
                
                \new Staff {
                        \set Staff.midiInstrument = "flute"
                        \new Voice = "leadsinger" {
                                % For the alignment of lyrics to notes it is
                                % nicer to have beams only where there also
                                % is a tie for multiple notes to a syllable
                                % of text.
                                \autoBeamOff
                                \melody
                        }
                }
                \new Lyrics \lyricsto "leadsinger" \text
        >>
        \layout {}
        \midi {}
}
( ... )
</EXAMPLE>



Kind regards,
Huub Stoffers




reply via email to

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