]> git.donarmstrong.com Git - lilypond.git/blobdiff - input/test/chord-names-jazz.ly
* lily/my-lily-lexer.cc (start_main_input): define input-file-name
[lilypond.git] / input / test / chord-names-jazz.ly
index 3c57618fe86d01c4a563463f8932fdd08600ab46..0fa2be4830520a547923ba9b009d0e30fa40fbe0 100644 (file)
-\version "1.7.18"
-% FIXME: doesn't display anything useful.
+\version "1.9.1"
+
+
 \header {
-texidoc = "Jazz notation for chord names.
 
-FIXME.
+texidoc = " Chord names are generated from a list pitches.  The
+functions constructing the names are customisable. This file shows
+Jazz chords, following Ignatzek (1995), page 17 and 18, Banter chords,
+and an alternative Jazz  chord notation.
+
 
 "
 
 }
-\score { \notes { c4^"fixme"}}
 
-%{
+chs = \notes \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'>>
+}
 
-%% This should only be necessary if your kpathsea setup is broken
-%
-% Make sure the correct msamxx.tfm is where lily can find it
-% (ie cwd or lily's tfm dir).
-%
-% For normal (20pt) paper, do
-%
-%   cp locate `msam9.tfm` LILYPONDPREFIXxtfm
-%
-
-scheme = \chords {
-  % major chords
-  c
-  c:6          % 6 = major triad with added sixth
-  c:maj                % triangle = maj
-  c:6.9^7      % 6/9 
-  c:9^7                % add9
-
-  % minor chords
-  c:m          % m = minor triad
-  c:m.6                % m6 = minor triad with added sixth
-  c:m.7+       % m triangle = minor major seventh chord
-  c:3-.6.9^7   % m6/9 
-  c:m.7                % m7
-  c:3-.9       % m9
-  c:3-.9^7     % madd9
-
-  % dominant chords
-  c:7          % 7 = dominant
-  c:7.5+       % +7 = augmented dominant
-  c:7.5-       % 7b5 = hard diminished dominant
-  c:9          % 7(9)
-  c:9-         % 7(b9)
-  c:9+         % 7(#9)
-  c:13^9.11    % 7(13)
-  c:13-^9.11   % 7(b13)
-  c:13^11      % 7(9,13)
-  c:13.9-^11   % 7(b9,13)
-  c:13.9+^11   % 7(#9,13)
-  c:13-^11     % 7(9,b13)
-  c:13-.9-^11  % 7(b9,b13)
-  c:13-.9+^11  % 7(#9,b13)
-
-  % half diminished chords
-  c:m5-.7              % slashed o = m7b5
-  c:9.3-.5-    % o/7(pure 9)
-
-  % diminished chords
-  c:m5-.7-     % o = diminished seventh chord
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% alternate Jazz notation
+
+efullmusicJazzAlt = \notes
+{
+    <<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" }
 }
 
-\score {
-  \notes <
-    \context ChordNames {
-       #(set-chord-name-style 'jazz)
-       \scheme }
-    \context Staff \transpose c c' \scheme
-  >
+efullJazzAlt = #(sequential-music-to-chord-exceptions efullmusicJazzAlt #f)
+
+epartialmusicJazzAlt = \notes{
+    <<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 { 
+           \property ChordNames.majorSevenSymbol = #whiteTriangleMarkup
+           \property ChordNames.chordNameSeparator = #(make-simple-markup  "/")
+           \property ChordNames.chordNameExceptionsFull = #efullJazzAlt
+           \property ChordNames.chordNameExceptionsPartial = #epartialJazzAlt
+           \property ChordNames.chordNameFunction = #jazz-chord-names
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+banterProperties = \sequential { 
+           \property ChordNames.chordNameFunction = #banter-chord-names
+}
+
+\score{
+    <
+       \context ChordNames {
+           \property ChordNames.instrument = #"Ignatzek (default)"
+           \property ChordNames.instr = #"Def"
+           \chs }
+       \context ChordNames = ALT {
+           \property ChordNames.instrument = #"Alternative"
+           \property ChordNames.instr = #"Alt"
+           \jazzAltProperties
+           \chs }
+
+       % This is the banter style.
+       % it gives exceedingly verbose (wide) names
+       % making this file take up to 4 pages.
+       
+%{
+               \context ChordNames = BANTER  {
+           \banterProperties
+           \chs
+           }
 %}
+       \context Staff \notes \transpose c c' { \chs }
+    >
+    \paper{
+       indent = 3.\cm
+       \translator { 
+           \ChordNamesContext
+           ChordName \override #'word-space = #1
+           \consists Instrument_name_engraver
+       }
+    }
+}
+