]> git.donarmstrong.com Git - lilypond.git/blobdiff - input/test/chord-names-jazz.ly
* lily/tuplet-bracket.cc (brew_molecule): call after_line_breaking
[lilypond.git] / input / test / chord-names-jazz.ly
index a0966e5b20f5eaa9772ee547c35b0a86a00406ec..d89f22b3c7a25ab425fabd32171f283c800b37f7 100644 (file)
-\version "1.7.18"
+\version "2.1.7"
+
+
 \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'>
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 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" }
+}
 
-%% 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
+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
 }
 
-\score {
-  \notes <
-    \context ChordNames {
-       #(set-chord-name-style 'jazz)
-       \scheme }
-    \context Staff \transpose c c' \scheme
-  >
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+banterProperties = \sequential { 
+           \property ChordNames.chordNameFunction = #banter-chord-names
 }
-%% new-chords-done %%
+
+\score{
+    <<
+       \new ChordNames {
+           \property ChordNames.instrument = #"Ignatzek (default)"
+           \property ChordNames.instr = #"Def"
+           \chs }
+       \new ChordNames {
+           \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.
+       
+%{
+               \new ChordNames  {
+           \banterProperties
+           \chs
+           }
 %}
+       \new Staff \notes \transpose c c' { \chs }
+    >>
+    \paper{
+       indent = 3.\cm
+       \translator { 
+           \ChordNamesContext
+           \consists Instrument_name_engraver
+       }
+    }
+}
+