Hi
I don't know if this is of any use to anyone, but:
I'm about to try typesetting some of my tunes, for which I need some
more complicated chord/scale symbols (they're jazz tunes).
So I've edited the american chord name list in chord-names.scm and added
a load of different scales (i'm using lily 1.3.71).
I've following the chord names used in (my copy of) the real book, more
or less.
I don't know how the code works so I suppose it's not surprising that
some of these don't work, in particular -
    - diminished scales seem to get "dim7" and not "o7" like I wanted
    - I can't get a "minor flat 5" chord symbol to work.
    - none of the ascending-thirds type of chord work, ie. I can't put
in <c e g b d'> and get "C9" out.

I've attached my chord-names.scm and ChordTest.ly, which tests them.
I've marked in ChordTest.ly the scales which don't seem to work.
Please ignore them, though, if they're of no use.

I also noticed a couple of other things (bugs?)

1)  If you remove the section \ChordToMakeItWork from ChordTest.ly, lily
spits out "warning: Too many clashing notecolumns.  Ignoring them." and
the resulting chord symbols are in a mess.
2)  the sharp and flat symbols don't seem to get superscripted properly?

Anyway, I'm going to go ahead and typeset my tunes now that I've got
most of these symbols going... the only real difficulty now is the
"minor flat 5" problem.
Thanks for a great program though!
gav.

%
% Gav's scale test...
%

\include "paper16.ly"

\header
{
        title = "Gav's chord name test";
        composer = "Gavin Band";
}

%

ChordToMakeItWork = \chords
{
        %
        % Removing this causes problems...
        %

        c1
}

Chords = \notes \transpose c''
{
        % major
        <c1 e g b>
        <c e g>

        % 9
        <c e g b d'>                                    % doesn't work.
        <c d e g b>
        <c d e g>
        <c d g>

        % sharp 11
        <c e g b d' fis'>                       % doesn't work.
        <c e fis g b>
        <c e fis b>
        <c e fis g>

        % sharp 5 sharp 11
        <c e gis b d' fis'>             % doesn't work.
        <c e fis gis b>
        <c e gis b>
        <c e gis>

        % 7
        <c e g bes>

        % 7 sus4
        <c e g bes d' f'>                       % doesn't work.
        <c d f bes>
        <c f bes>
        <c f g>

        % 7 sharp 11
        <c e g bes d' fis'>             % doesn't work.
        <c e fis g bes>

        % minor
        <c ees g bes>
        <c ees g>

        % minor 9
        <c ees g bes d'>                        % doesn't work.
        <c d ees g bes>
        <c d ees g>

        % minor (major 7)
        <c ees g b>

        % minor 9 (major 7)
        <c ees g b d'>                          % doesn't work.
        <c d ees g b>

        % minor 7 flat 5
        <c ees ges bes>                         % doesn't work.

        % diminished
        <c ees ges a>                                   % doesn't work - should give 
"o7".
        <c dis fis a>                                   % doesn't work - should give 
"o7".

        % 7 flat 9
        <c e g bes des'>                        % doesn't work.
        <c des e g bes>
        <c des e g>

        % 7 sharp 9
        <c e g bes dis'>                        % doesn't work.
        <c dis e g bes>
        <c dis e g>

        % altered.
        <c des e aes>
        <c cis e gis>
}

ScaleChords = \notes \transpose c''
{
        % major
        <c d e f g a b>

        % sharp 11
        <c d e fis g a b>

        % sharp 5 sharp 11
        <c d e fis gis a b>

        % 7
        <c d e f g a bes>

        % 7 sharp 11
        <c d e fis g a bes>

        % minor 7
        <c d ees f g a bes>

        % minor-major 7
        <c d ees f g a b>

        % minor 7 flat 5
        <c d ees f ges aes bes>

        % diminished
        <c d ees f ges aes a b>                                 % doesn't work - 
should give "o7".
        <c d dis eis fis gis a b>                               % doesn't work - 
should give "o7".

        % flat 9
        <c cis dis e fis g a ais>
        <c des ees fes ges g a bes>                     % doesn't work.

        % altered.
        <c cis dis e fis gis ais>
        <c des ees e ges aes bes>

        % whole tone
        <c d e fis gis ais>
        <c d e ges aes bes>
}

ScaleNotes = \notes \transpose c''
{
        c1

        % corresponding to \Chords...

        % major
        c8 d e f g a b c'
        c d e f g a b c' \bar "||";

        % 9
        c d e f g a b c'
        c d e f g a b c'
        c d e f g a b c'
        c d e f g a b c' \bar "||";
        
        % sharp 11
        c d e fis g a b c'
        c d e fis g a b c'
        c d e fis g a b c'
        c d e fis g a b c' \bar "||";

        % sharp 5 sharp 11
        c d e fis gis a b c'
        c d e fis gis a b c'
        c d e fis gis a b c'
        c d e fis gis a b c' \bar "||";

        % 7
        c d e f g a bes c' \bar "||";

        % 7 sus 4
        c d e f g a bes c'
        c d e f g a bes c'
        c d e f g a bes c'
        c d e f g a bes c' \bar "||";

        % 7 sharp 11
        c d e fis g a bes c'
        c d e fis g a bes c' \bar "||";

        % minor
        c d ees f g a bes c'
        c d ees f g a bes c' \bar "||";

        % minor 9
        c d ees f g a bes c'
        c d ees f g a bes c'
        c d ees f g a bes c' \bar "||";

        % minor (major 7)
        c d ees f g a b c' \bar "||";

        % minor 9 (major 7)
        c d ees f g a b c'
        c d ees f g a b c' \bar "||";

        % minor 7 flat 5
        c d ees f ges aes bes c' \bar "||";

        % diminished
        c d ees f ges aes a b
        c d dis eis fis gis a b \bar "||";

        % 7 flat 9
        c cis dis e fis g a ais
        c cis ees e fis g a bes
        c des ees fes ges g a bes \bar "||";

        % 7 sharp 9
        c cis dis e fis g a ais
        c cis ees e fis g a bes
        c des ees fes ges g a bes \bar "||";

        % altered.
        c cis dis e fis gis ais c'
        c des ees e ges aes bes c' \bar "||";

        % Corresponding to \Scales...

        % major
        c d e f g a b c' \bar "||";

        % sharp 11
        c d e fis g a b c' \bar "||";

        % sharp 5 sharp 11
        c d e fis gis a b c' \bar "||";

        % 7
        c d e f g a bes c' \bar "||";

        % 7 sharp 11
        c d e fis g a bes c' \bar "||";

        % minor
        c d ees f g a bes c' \bar "||";

        % minor-major 7
        c d ees f g a b c' \bar "||";

        % minor 7 flat 5
        c d ees f ges aes bes c' \bar "||";

        % diminished
        c d ees f ges aes a b
        c d dis eis fis gis a b \bar "||";

        % flat 9
        c cis dis e fis g a ais
        c des ees fes ges g a bes

        % altered.
        c cis dis e fis gis ais c'
        c des ees e ges aes bes c' \bar "||";

        % whole tone
        c d e fis gis ais c' d'
        c d e ges aes bes c' d' \bar "||";
}

\score
{
        <
                \context ChordNames{
                \property ChordNames.chordNameStyle = "american"
                \ChordToMakeItWork
                \Chords
                \ScaleChords}
                \context Staff = Top {
                \ChordToMakeItWork
                \Chords
                \ScaleChords}

                \context Staff = Bottom { \ScaleNotes }         % only really here to 
space out chord names.
        >
}

chord-names.scm

Reply via email to