Chord name exceptions: Difference between revisions

Import snippet from LSR
 
mNo edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The property <code>chordNameExceptions</code> can be used to store a list of special notations for specific chords.
The property <code>chordNameExceptions</code> stores a list of chord name exceptions to handle cases either not covered or handled incorrectly.


<lilypond version="2.24.0">
The default chord names used by LilyPond follow the rules as given in Klaus Ignatzek's book “Die Jazzmethode für Klavier&nbsp;1”; the algorithm to convert chords to chord names can be found in file <code>scm/chord-ignatzek-names.scm</code>. Additional rules are given as chord exceptions and stored in the variable <code>ignatzekExceptions</code>, as set up in file <code>ly/chord-modifiers-init.ly</code>.
% modify maj9 and 6(add9)
 
% Exception music is chords with markups
This snippet modifies these exceptions in three steps.
 
# Set up some music with chords and associated markup.  By convention, the root (i.e., the lowest note) of each chord should have pitch&nbsp;c.
# Call Scheme function <code>sequential-music-to-chord-exceptions</code> to create a new list of exceptions, then concatenate it with the existing ones. Since <code>ignatzekExceptions</code> is set up with this function’s second parameter set to <code>#t</code> (to ignore the root of the chords), we have to do the same.
# Register the new exception list.
 
<lilypond version="2.24">
% Step 1: Define music with chords and markup for maj9 and 6(add9).
chExceptionMusic = {
chExceptionMusic = {
   <c e g b d'>1-\markup { \super "maj9" }
   <c e g b d'>-\markup { \super "maj9" }
   <c e g a d'>1-\markup { \super "6(add9)" }
   <c e g a d'>-\markup { \super "6(add9)" }
}
}


% Convert music to list and prepend to existing exceptions.
% Step 2: Create extended exception list.
chExceptions = #(append
chExceptions =
  (sequential-music-to-chord-exceptions chExceptionMusic #t)
#(append (sequential-music-to-chord-exceptions chExceptionMusic #t)
  ignatzekExceptions)
        ignatzekExceptions)


theMusic = \chordmode {
theMusic = \chordmode {
   g1:maj9 g1:6.9
   g1:maj9 g1:6.9
  % Step 3: Register extended exception list.
   \set chordNameExceptions = #chExceptions
   \set chordNameExceptions = #chExceptions
   g1:maj9 g1:6.9
   g1:maj9 g1:6.9
}
}
<<
  \new ChordNames \theMusic
  \new Voice \theMusic
>>


\layout {
\layout {
   ragged-right = ##t
  line-width = 10\cm
   ragged-right = ##f
}
}
<<
  \new ChordNames \theMusic
  \new Voice \theMusic
>>
</lilypond>
</lilypond>


[[Category:Chords]]
[[Category:Chords]]
[[Category:Chords]]
[[Category:Scheme]]
[[Category:Specific notation]]
[[Category:Specific notation]]
[[Category:Included in the official documentation]]
[[Category:Included in the official documentation]]
[[Category:Snippet]]