% % JAZZ CHORDS % (based upon pop-chords.ly by James L. Hammons) % % v3.1 % 19 Nov 2011 % address@hidden % % tested against lilypond v2.14.2 #(define-markup-command (jcRaise layout props jcText) (markup?) (interpret-markup layout props (markup #:raise 1.5 #:smaller #:smaller #:smaller jcText ) ) ) jcFlat = \markup{ \hspace #0.2 \raise #0.4 { \smaller \flat } } jcSharp = \markup{ \hspace #0.2 \raise #0.7 { \smaller \sharp } } % define your prefererred mode markers here jcMinor = \markup{ \smaller\smaller "mi" } jcMajor = \markup{ "Maj" } jazzChordsMusic = { % Duads -\markup\jcRaise{ "5" } -\markup\jcRaise{ "3" } -\markup{ \jcMinor\jcRaise{ "3"} } % Triads -\markup\jcRaise{ \jcFlat "5" } -\markup\jcRaise{ \jcSharp "5" } -\markup\jcMinor -\markup{ \jcMinor\jcRaise{ \jcSharp "5" } } -\markup\jcRaise{ \tiny "o" } -\markup\jcRaise{ "sus2" } -\markup\jcRaise{ "sus4" } % this chord appears in Miles Davis's "Enigma" and is called "p4", % meaning a chord constisting of perfect fourths -\markup\jcRaise{ "p4" } % Sixth Chords -\markup\jcRaise{ "6" } -\markup{ \jcMinor\jcRaise{ "6" } } % Sevenths (including altered ones) % dominant sept -\markup\jcRaise{ "7" } -\markup\jcRaise{ "7" \jcFlat "5" } -\markup\jcRaise{ "+7" } % major sept -\markup\jcRaise{ \jcMajor "7" } -\markup\jcRaise{ \jcMajor "7(" \jcSharp "5)" } -\markup\jcRaise{ \jcMajor "7(" \jcFlat "5)" } % minor -\markup{ \jcMinor\jcRaise{ "7" } } -\markup{ \jcMinor\jcRaise{ \whiteTriangleMarkup "7" } } -\markup\jcRaise{ {\larger\larger #(ly:export (ly:wide-char->utf-8 #x00f8)) } "7" } -\markup\jcRaise{ "o7" } % suspended -\markup\jcRaise{ "7sus4" } -\markup\jcRaise{ "7sus2" } % Ninths (including altered--incomplete) % major -\markup\jcRaise{ \jcMajor "9" } -\markup\jcRaise{ "9" } -\markup\jcRaise{ "7(" \jcFlat "9)" } -\markup\jcRaise{ "7(" \jcSharp "9)" } -\markup\jcRaise{ "7" \jcSharp "5(" \jcSharp "9)" } -\markup\jcRaise{ "7" \jcFlat "5(" \jcSharp "9)" } -\markup\jcRaise{ "7" \jcSharp "5(" \jcFlat "9)" } -\markup\jcRaise{ "7" \jcFlat "5(" \jcFlat "9)" } -\markup { \jcRaise{ "7" } {\larger\larger "(" } \tiny { \column{ \raise #1.2 \line{ \jcFlat "9" } % the upper tension in the bracket \raise #2.5 \line{ \jcSharp "9" } % the lower tension in the bracket } } \larger\larger ")" } -\markup{ \jcRaise{ "7" \jcSharp "5" } {\larger\larger "(" } \tiny { \column{ \raise #1.2 \line{ \jcFlat "9" } % the upper tension in the bracket \raise #2.5 \line{ \jcSharp "9" } % the lower tension in the bracket } } \larger\larger ")" } -\markup{ \jcRaise{ "7" \jcFlat "5" } {\larger\larger "(" } \tiny { \column{ \raise #1.2 \line{ \jcFlat "9" } % the upper tension in the bracket \raise #2.5 \line{ \jcSharp "9" } % the lower tension in the bracket } } \larger\larger ")" } % minor -\markup{ \jcMinor\jcRaise{ "9" } } -\markup{ \jcMinor\jcRaise{ \jcFlat "9" } } -\markup{ \jcMinor\jcRaise{ \jcSharp "9" } } % Elevenths % major -\markup\jcRaise{ \jcMajor "11" } -\markup\jcRaise{ \jcMajor "7(" \jcSharp "11)" } -\markup\jcRaise{ \jcMajor "7(" \jcFlat "11)" } -\markup{ \jcRaise{ "7" } {\larger\larger "(" } \tiny { \column{ \raise #1.2 \line{ \jcFlat "9" } % the upper tension in the bracket \raise #2.5 \line{ \jcFlat "11" } % the lower tension in the bracket } } \larger\larger ")" } -\markup\jcRaise{ "11("\jcFlat "9)" } -\markup\jcRaise{ "11("\jcSharp "9)" } -\markup\jcRaise{ \jcFlat "11" } -\markup\jcRaise{ \jcSharp "11" } % minor -\markup{ \jcMinor\jcRaise{ "11" } } -\markup{ \jcMinor\jcRaise{ "7" \jcFlat "5(11)" } } % Thirteens -\markup{ \jcRaise{ \jcMajor "13" } } -\markup{ \jcMinor\jcRaise{ "13" } } } % Exception handling jazzChordsAdd = #(append (sequential-music-to-chord-exceptions jazzChordsMusic #t) ignatzekExceptions) #(define (chord-name->jazz-markup pitch lowercase?) (let* ((alt (ly:pitch-alteration pitch))) (make-line-markup (list (make-simple-markup (vector-ref #("C" "D" "E" "F" "G" "A" "B") (ly:pitch-notename pitch))) ;; If it's natural, do nothing (if (= alt 0) (make-line-markup (list empty-markup)) (if (= alt FLAT) ;; Otherwise, handle adding the flat symbol (make-line-markup (list (make-hspace-markup 0.3) ;; WAS: 0.4 (make-tiny-markup (make-raise-markup 1.0 (make-musicglyph-markup "accidentals.flat"))) ) ) ;; or handle adding the sharp symbol (make-line-markup (list (make-hspace-markup 0.1) ;; WAS: 0.2 (make-teeny-markup (make-raise-markup 1.0 (make-musicglyph-markup "accidentals.sharp"))) ) ) ) ) ) ) ) ) \layout { \context { \Score chordNameExceptions = #jazzChordsAdd chordRootNamer = #chord-name->jazz-markup \override ChordName #'extra-spacing-width = #'(-1.25 . 1.25) } }