lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Jazz Chord Symbols (as new font - NOT notation font)


From: Flaming Hakama by Elaine
Subject: Re: Jazz Chord Symbols (as new font - NOT notation font)
Date: Wed, 3 Jul 2019 10:24:21 -0700

--------- Forwarded message ----------
From: Marco Baumgartner <address@hidden>
To: address@hidden
Date: Wed, 3 Jul 2019 14:27:27 +0200
Subject: Jazz Chord Symbols (as new font - NOT notation font)
Hi,

I wonder how I had to build a "normal" font (otf, ttf, whatever) to work as chord-symbols-font only.
Spacing and style is very important to make chord symbols readable. I haven't seen one yet for lilypond.
Goal is to have a font rendering chord symbols like in the real books (handwritten or not), thus: including tons of ligatures and special thingies per symbol/cluster of symbols.

If Ab7sus4(b9) isn't typeset "right", you simply can't read it. You don't buy it. You don't even want to play it... :-) That's a little harsh, I know. But hence my question. I'm happy to spend some time on a Jazz-chord-font - but I have no clue on how to make it, so it can be used by lilypond. Could also be as "comments" or "music _expression_", if "chords" doesn't work.

The lilyjazz-font doesn't come with this kind of chord-symbol-font.

So, is it possible to build one? How do I set up the font? I work with fontforge. I'm not a font-specialist, but I had built and drawn fonts from scratch. Just need someone to point me into the right direction.

I need to know:

- is it possible and how? (how to "embed"/use the font in lilypond)
- what font-format
- what encoding (unicode doesn't allow ligatures as far as I know. So latin1?)

Thanks a lot for some hints and tips!

Have a good time,
Marco




---------- Forwarded message ----------
From: Kieren MacMillan <address@hidden>
To: Marco Baumgartner <address@hidden>
Cc: Lilypond-User Mailing List <address@hidden>
Bcc: 
Date: Wed, 3 Jul 2019 09:05:18 -0400
Subject: Re: Jazz Chord Symbols (as new font - NOT notation font)
Hi Marco,

> Spacing and style is very important to make chord symbols readable. I haven't seen one yet for lilypond.

How does <http://leighverlag.blogspot.com/2015/12/mimicking-real-book-look.html> not do what you want?

Thanks,
Kieren.
________________________________

Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: address@hidden




To be fair, Lee's post does not delve into manipulating the chord symbol layout.  It focuses on the quirks of the real book style, including an In-staff title bar and Only one clef and time signature.  (Which are both not what the OP asked about, and are arguably things that should be abandoned practices of a previous century.)

Lee does show how to get a "handwritten" font for chords:

\paper {
  #(define fonts
     (set-global-fonts
      #:music "lilyjazz"
      #:roman "Pea Missy with a Marker"
      #:sans "Pea Missy with a Marker"
      #:factor (/ staff-height pt 20)))
}

But in order to get things liked stacked alterations, or the "proper" vertical placement and relative sizing of symbols, this is not addressed.  The example in that post ("All of Me") only uses basic chords symbols that don't really need tweaking, so it is not obvious what the OP is taking about from looking at that example.


There are references in the example code to files that may be doing something more:

\include "jazzchords.ily"
\include "lilyjazz.ily"

But since there is no use of chordNameExceptions in the example, it is unlikely that these files address the typography of the chord symbols.


The reality is that any kind of typography related to chord symbols requires a complete customization of all or most of the chord symbols you use.

I'm happy to share what I use.  This style employs the graphical symbol approach: triangle for major, dash for minor, plus for augmented, circle for diminished and null symbol for half diminished.  If you use something else, like M/m/aug/dim/m7b5, you'd have to construct your own, but hopefully this pattern will be helpful as a basis.  It contains definitions for every chord I've had to notate, but is by no means complete.  There are a few exceptions to "standard" chord symbol notation, in particular for sus chords, (e.g. Csus7 instead of C7sus4).


To use this, first save the chord definitions below in a file.  
Then include that file from your ly file.  
Then when creating chords, use these chord exceptions: 

myChords = \chordmode { 
    \set chordNameExceptions = #flamingChordExceptions
    e1:m  
    % etc.
}


Also, I use the following syntax for specifying the font used for chords symbols;  it is the second font in this list.   I don't use a "handwritten" font for chord symbols, my preference happens to be "Highlander ITC TT", but you would put whatever font name you want in that position.

\paper {
  #(define fonts
    (make-pango-font-tree "Marker Felt"
                          "Highlander ITC TT"
                          "LilyJAZZText"
                           (/ myStaffSize 20)))
}


Here is the code to save in a .ily file:

\version "2.19.81" 
\include "english.ly"

flamingChordNames = {

    % Major
    <c e g b>1-\markup { \raise #0.7 { \magnify #0.5 { " " \triangle ##f } \normalsize 7 } }
    <c e g b d'>1-\markup { \raise #0.7 { \magnify #0.5 { " " \triangle ##f } \normalsize 9 } }
    <c e g b a'>1-\markup { \raise #0.7 { \magnify #0.5 { " " \triangle ##f } \teeny " " \normalsize 13 } }
    <c e g b d' a'>1-\markup { \raise #0.7 { \magnify #0.5 { " " \triangle ##f } \normalsize 13 } }
    <c e g a d'>1-\markup { \raise #3 { \tiny \center-column { \lower #1.25 { " 6" } " 9" } } }
    <c e g b d-sharp' f-sharp' a-flat'>1-\markup { 
        \raise #0.7 { \magnify #0.5 { " " \triangle ##f } \normalsize 9 }
        \raise #3.8 { \tiny \center-column { \lower #1.25 { " #9" } "#11" \raise #1.25 { "b13" } } } 
    }

    % Minor
    <c e-flat g>1-\markup { \raise #0.6 { \magnify #0.2 { "  " } \tiny { \char ##x2013 } } }
    <c e-flat g a>1-\markup { \raise #0.6 { \magnify #0.2 { "  " } \tiny { \char ##x2013 } \magnify #0.2 { "  " }} \raise #0.7 \normalsize 6 }
    <c e-flat g b-flat>1-\markup { \raise #0.6 { \magnify #0.2 { "  " } \tiny { \char ##x2013 } \magnify #0.1 { "  " }} \raise #0.7 \normalsize 7 }

    <c e-flat g b>1-\markup { \raise #0.6 { \magnify #0.2 { "  " } \tiny { \char ##x2013 } \magnify #0.1 { "  " }} \raise #0.7 {  \magnify #0.5 { " " \triangle ##f } \small 7 } }
    <c e-flat g b d' a'>1-\markup { \raise #0.6 { \magnify #0.2 { "  " } \tiny { \char ##x2013 } \magnify #0.1 { "  " }} \raise #0.7 {  \magnify #0.5 { " " \triangle ##f } \small 7 } }

    <c e-flat g b-flat d'>1-\markup { \raise #0.6 { \magnify #0.2 { "  " } \tiny { \char ##x2013 } \magnify #0.1 { "  " }} \raise #0.7 \normalsize 9 }
    <c e-flat g b-flat d' f>1-\markup { \raise #0.6 { \magnify #0.2 { "  " } \tiny { \char ##x2013 } \magnify #0.1 { "  " }} \raise #0.7 \normalsize 11 }
    <c e-flat g b-flat d' a'>1-\markup { \raise #0.6 { \magnify #0.2 { "  " } \tiny { \char ##x2013 } \magnify #0.1 { "  " }} \raise #0.7 \normalsize 13 }
    <c e-flat g b-flat d' a'>1-\markup { \raise #0.6 { \magnify #0.2 { "  " } \tiny { \char ##x2013 } \magnify #0.1 { "  " }} \raise #0.7 \normalsize 13 }

    % minor7 b13 as "-7 b13"
    % <c e-flat g b-flat a-flat'>1-\markup { \raise #0.6 { \magnify #0.2 { "  " } \tiny { \char ##x2013 } \magnify #0.1 { "  " }} \raise #0.7 { \normalsize 7 } \raise #0.9 { \small b13 } }

    % minor7 b13 as "- b13"
    <c e-flat g a-flat'>1-\markup { \raise #0.6 { \magnify #0.2 { "  " } \tiny { \char ##x2013 } \magnify #0.1 { "  " }} \teeny " " \raise #1.2 { \tiny \flat } \teeny " " \raise #0.9 { \tiny "13" } }
    <c e-flat g b-flat a-flat'>1-\markup { \raise #0.6 { \magnify #0.2 { "  " } \tiny { \char ##x2013 } \magnify #0.1 { "  " }} \raise #0.9 { \small "  b13" } }
    <c e-flat g b-flat d' a-flat'>1-\markup { \raise #0.6 { \magnify #0.2 { "  " } \tiny { \char ##x2013 } \magnify #0.1 { "  " }} \raise #0.7 \normalsize "9 b13" }
     
    <c e-flat g b a-flat'>1-\markup { \raise #0.6 { \magnify #0.2 { "  " } \tiny { \char ##x2013 } \magnify #0.1 { "  " }} \raise #0.7 {  \magnify #0.5 { " " \triangle ##f } \small 7 \teeny " " \raise #0.5 { \tiny \flat }  \magnify #0.1 { "  " } \raise #0.3 { \tiny "13" } } }

    % Dominant
    <c e g a>1-\markup { \raise #0.7 { \normalsize 6 } }
    <c e g b-flat>1-\markup { \raise #0.7 { \normalsize 7 } }
    <c e g b-flat d'>1-\markup { \raise #0.7 { \normalsize 9 } }
    <c e g b-flat d-flat'>1-\markup { \raise #0.7 { \normalsize 7 } \raise #1.2 { \teeny " " \tiny \flat \tiny "9" } }
    <c e g b-flat d-sharp'>1-\markup { \raise #0.7 { \normalsize 7 } \raise #0.9 { \small " #9" } }
    <c e g b-flat c-sharp' d-sharp'>1-\markup { \raise #0.7 { \normalsize 7 } \raise #3.9 { \tiny \center-column { \lower #1.25 { " b9" } " #9" } } }
    <c e g b-flat d-sharp' f-sharp'>1-\markup { \raise #0.7 { \normalsize 7 } \raise #3.9 { \tiny \center-column { \lower #1.25 { " #9" } " #11" } } }
    <c e g b-flat d' a'>1-\markup { \raise #0.7 { \normalsize 13 } }
    <c e g b-flat d-flat' a'>1-\markup { \raise #0.7 { \normalsize 13 } \raise #0.9 { \small " b9" } }
    <c e g b-flat a-flat'>1-\markup { \raise #0.7 { \normalsize 7 } \raise #0.9 { \small " b13" } }
    <c e g b-flat d' a-flat'>1-\markup { \raise #0.7 { \normalsize 9 } \raise #0.9 { \small " b13" } }

    % Dominant b5
    <c e g-flat b-flat>1-\markup { \raise #0.7 { \normalsize 7 } \raise #1.0 { \small " b5" } }
    <c e g-flat b-flat d-flat'>1-\markup { \raise #0.7 { \normalsize 7 } \raise #1.0 { \small " b5" } \raise #1.0 { \small " b9" } }

    % Half-diminished
    <c e-flat g-flat b-flat>1-\markup { \raise #0.5 { \magnify #0.85 \char ##x2205 } }
    <c e-flat g-flat b-flat c-sharp'>1-\markup { \raise #0.5 { \magnify #0.85 \char ##x2205 } }
    <c e-flat g-flat b-flat f'>1-\markup { \raise #0.5 { \magnify #0.85 \char ##x2205 } \raise #0.5 { \normalsize 11 } }
    <c e-flat g-flat b-flat a'>1-\markup { \raise #0.5 { \magnify #0.85 \char ##x2205 } \raise #0.5 { \normalsize 13 } }

    % Diminished
    %<c e-flat g-flat b-flatflat f'>1-\markup { \raise #1.5 { \magnify #2 \circle "" } \raise #0.5 { \normalsize 11 } }

    % Augmented
    <c e g-sharp>1-\markup { \raise #0.4 { \magnify #1.3 { + } } }
    <c e g-sharp b-flat>1-\markup { \raise #0.4 { \magnify #1.3 { + } } \raise #0.5 { \normalsize 7 } }
    <c e g-sharp b-flat d'>1-\markup { \raise #0.4 { \magnify #1.3 { + } } \raise #0.5 { \normalsize 9 } }
    <c e g-sharp b-flat c-sharp' d-sharp'>1-\markup { \raise #0.4 { \magnify #1.3 { + } } \raise #0.5 { \normalsize 7 } \raise #3.9 { \tiny \center-column { \lower #1.25 { " b9" } " #9" } } }
    <c e g-sharp b-flat d-sharp'>1-\markup { \raise #0.4 { \magnify #1.3 { + } } \raise #0.5 { \magnify #1.2 { \normalsize 7 } } \raise #1.0 \tiny " #9" }
    <c e g-sharp b-flat f-sharp'>1-\markup { \raise #0.4 { \magnify #1.3 { + } } \raise #0.5 { \magnify #1.2 { \normalsize 7 } } \raise #1.0 \tiny " #11" }
    <c e g-sharp d-flat'>1-\markup { \raise #0.4 { \magnify #1.3 { + } } \raise #1.2 { \teeny " " \tiny \flat \tiny "9" } }
    <c e g-sharp b-flat d-flat'>1-\markup { \raise #0.4 { \magnify #1.3 { + } } \raise #0.5 { \normalsize 7 } \raise #1.2 { \teeny " " \tiny \flat \tiny "9" } }
    <c e g-sharp b-flat d' a'>1-\markup { \raise #0.4 { \magnify #1.3 { + } } \raise #0.5 { \normalsize 13 } }

    <c e g-sharp b-flat d-sharp' f-sharp'>1-\markup { 
        \raise #0.4 { \magnify #1.3 { + } } 
        \raise #0.7 { \magnify #0.5 { " " \triangle ##f } \normalsize 7 }
        \raise #3.8 { \tiny \center-column { \lower #1.25 { "  9" } " #9" \raise #1.25 "#11" } } 
    }

    % Lydian 
    %<c e g b f-sharp'>1-\markup { \raise #1.0 \small " lyd" }
    <c e g f-sharp'>1-\markup { \raise #1.0 \tiny "  #11" }
    %<c e g b f-sharp'>1-\markup { 
    %    \raise #0.7 { \magnify #0.5 { " " \triangle ##f } \normalsize 7 }
    %    \raise #1.2 { \teeny " " \tiny "#11" }
    %}
    <c e g b f-sharp'>1-\markup { 
        \raise #0.7 { \magnify #0.5 { " " \triangle ##f } }
        \raise #1.2 { \teeny " " \tiny "#11" }
    }
    <c e g b d' f-sharp'>1-\markup { \raise #0.7 { \magnify #0.5 { " " \triangle ##f } } \raise #3.4 { \teeny \center-column { \lower #1.25 { " 9" } " #11" } } }
    <c e g b d' f-sharp' a'>1-\markup { \raise #0.7 { \magnify #0.5 { " " \triangle ##f } } \raise #3.4 { \teeny \center-column { \lower #1.25 { "   13" } " #11" } } }
    <c e g b-flat f-sharp'>1-\markup { \raise #0.5 { \magnify #1.2 { \normalsize 7 } } \raise #1.0 \tiny " #11" }

    % Suspended
    <c f g>1-\markup { \raise #0.7 { \normalsize "sus" } }
    <c f g b-flat>1-\markup { \raise #0.4 { \small "sus" } \raise #0.5 { \normalsize 7 } }
    <c f g b-flat d'>1-\markup { \raise #0.4 { \small "sus" } \raise #1.0 \small 9 }
    <c f g d-flat'>1-\markup { \raise #0.4 { \small "sus" } \raise #1.2 { \teeny " " \tiny \flat \tiny "9" } }
    <c f g b-flat d-flat'>1-\markup { \raise #0.4 { \small " sus" } \raise #0.5 { \normalsize 7 } \raise #1.0 \small " b9" }
    <c f g-flat>1-\markup { \raise #0.4 { \small " sus" } \raise #1.2 { \teeny " " \tiny \flat \small 5 } }
    <c f g-flat b-flat d-flat'>1-\markup { \raise #0.4 { \small " sus" } \raise #0.5 { \normalsize 7 } \raise #1.0 \small " b5" \raise #1.0 \small " b9" }
    <c e g-flat b-flat d-flat' f' a-flat'>1-\markup { 
        \raise #0.5 { \normalsize 11 } 
        \raise #6.5 { 
            \magnify #0.5 \teeny \center-column { 
                \lower #3.6 " b5" 
                \lower #1.5 " b9" 
                "b13" 
            } 
        }
    }
}
flamingChordExceptions = #(append (sequential-music-to-chord-exceptions flamingChordNames #t) ignatzekExceptions)



HTH, 

Elaine Alt
415 . 341 .4954                                           "Confusion is highly underrated"
address@hidden
Producer ~ Composer ~ Instrumentalist ~ Educator
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


reply via email to

[Prev in Thread] Current Thread [Next in Thread]