--- /dev/null
+\version "2.14.0"
+\header {
+
+texidoc = " Chord names are generated from a list pitches. The
+functions which construct these names can be customised. Here are shown
+Jazz chords, following Ignatzek (pp. 17-18, 1995) and
+an alternative Jazz chord notation.
+
+Chords following Banter (1987) can also be printed from this file, but
+are turned off for brevity.
+
+"
+
+}
+
+chs = \transpose c' c'
+{
+ <c e g>1
+ <c es g>% m = minor triad
+ <c e gis>
+ <c es ges> \break
+ <c e g bes>
+ <c es g bes>
+ <c e g b> % triangle = maj
+ <c es ges beses>
+ <c es ges b> \break
+ <c e gis bes>
+ <c es g b>
+ <c e gis b>
+ <c es ges bes>\break
+ <c e g a> % 6 = major triad with added sixth
+ <c es g a> % m6 = minor triad with added sixth
+ <c e g bes d'>
+ <c es g bes d'> \break
+ <c es g bes d' f' a' >
+ <c es g bes d' f' >
+ <c es ges bes d' >
+ <c e g bes des' > \break
+ <c e g bes dis'>
+ <c e g bes d' f'>
+ <c e g bes d' fis'>
+ <c e g bes d' f' a'>\break
+ <c e g bes d' fis' as'>
+ <c e gis bes dis'>
+ <c e g bes dis' fis'>
+ <c e g bes d' f' as'>\break
+ <c e g bes des' f' as'>
+ <c e g bes d' fis'>
+ <c e g b d'>
+ <c e g bes d' f' as'>\break
+ <c e g bes des' f' as'>
+ <c e g bes des' f' a'>
+ <c e g b d'>
+ <c e g b d' f' a'>\break
+ <c e g b d' fis'>
+ <c e g bes des' f ' a'>
+ <c f g>
+ <c f g bes>\break
+ <c f g bes d'>
+ <c e g d'> % add9
+ <c es g f'>
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% alternate Jazz notation
+
+efullmusicJazzAlt =
+{
+ <c e gis>1-\markup { "+" }
+ <c e g b>-\markup { \normal-size-super
+ % \override #'(font-family . math) "N" }
+ \override #'(font-family . math) "M" }
+ %%c:3.5.7 = \markup { \override #'(font-family . math) "M" }
+ %%c:3.5.7 = \markup { \normal-size-super "maj7" }
+
+ <c es ges>-\markup { \super "o" } % should be $\circ$ ?
+ <c es ges bes>-\markup { \super \combine "o" "/" }
+ <c es ges beses>-\markup { \super "o7" }
+}
+
+efullJazzAlt = #(sequential-music-to-chord-exceptions efullmusicJazzAlt #f)
+
+epartialmusicJazzAlt = {
+ <c d>1-\markup { \normal-size-super "2" }
+ <c es>-\markup { "m" }
+ <c f>-\markup { \normal-size-super "sus4" }
+ <c g>-\markup { \normal-size-super "5" }
+
+ %% TODO, partial exceptions
+ <c es f>-\markup { "m" }-\markup { \normal-size-super "sus4" }
+ <c d es>-\markup { "m" }-\markup { \normal-size-super "sus2" }
+}
+
+epartialJazzAlt = #(sequential-music-to-chord-exceptions epartialmusicJazzAlt #f)
+
+jazzAltProperties = \sequential {
+ \set majorSevenSymbol = #whiteTriangleMarkup
+ \set chordNameSeparator = #(make-simple-markup "/")
+ \set chordNameExceptionsFull = #efullJazzAlt
+ \set chordNameExceptionsPartial = #epartialJazzAlt
+ \set chordNameFunction = #jazz-chord-names
+}
+
+banterProperties = \sequential {
+ \set chordNameFunction = #banter-chord-names
+}
+
+\score{
+ <<
+ \new ChordNames {
+ \set instrumentName = #"Ignatzek (default)"
+ \set shortInstrumentName = #"Def"
+ \chs
+ }
+
+ \new ChordNames {
+ \jazzAltProperties
+ \set instrumentName = #"Alternative"
+ \set shortInstrumentName = #"Alt"
+ \chs
+ }
+
+%{
+
+ %% This is the Banter (1987) style. It gives exceedingly
+ %% verbose (wide) names, making the output file take up to 4 pages.
+ %% (TODO: how big is is now?)
+ %% Turned off by default.
+
+ %% TODO: use smaller font for Banter (or remove some esoteric
+ %% chords).
+
+ \new ChordNames {
+ \banterProperties
+ \set instrumentName = #"Banter"
+ \set shortInstrumentName = #"Ban"
+ \chs
+ }
+%}
+
+ \new Staff \transpose c c' { \chs }
+ >>
+ \layout {
+ indent = 3.\cm
+ \context {
+ \ChordNames
+ \consists Instrument_name_engraver
+ }
+ }
+}
+