lilypond-devel
[Top][All Lists]
Advanced

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

Chord Name Fixes


From: rerdavies
Subject: Chord Name Fixes
Date: Sun, 27 Oct 2002 16:55:23 -0500

I said I'd do my best to fix the chords in lilypond a while ago, but
personal commitments (and the daunting prospects of having to learn guile
and LaTex) prevented me from getting around to it. However, I now have some
time on my hands, and a burning desire to produce beuatiful jazz charts on
lily.

First things first: fix input chord to pitch generation.

I'm currently holding fixes for chord generation. (e.g. "c:m13.5-", &c)
which generates correct notes for pretty much anything I can think of
throwing at it. The old code really didn't deal with anything above a 9th
very well, and had all kinds of quirky behaviour.

What do I do with them? What do I need to update? Where do I send 'em, and
what format? I'm a win32 developer running on cygwin, so pretend that I know
almost nothing about Linux (which is fairly accurate).

Summary of changes:
    Changes to lily/chord.cc - rewrite of tonic_add_sub_to_pitches
    changes to ly/chord-modifiers-init.ly
        - CHORDMODIFIERS are now all magic note values (like the old DIM).
        - added maj, sus, no modifiers
     a new regression test (?) that generates a set of chords on each of
banter, american, jazz styles,
     and on a staff.
           input/regression/chord-name-proofs.ly

Fix summary:
    Enter chord names relatively intuitively. Any intuitive sequence of
modifiers and alterations
    produces the exepected result.

    No strange things with 4ths any more. Must use "sus" to remove the 3rd.

    No duplicate 7ths.

    11ths fixed up to produce 11+ for major, 11 for minor chords.

    Subtractions now affect only implicitly added notes, and ignore
alterations.
    (e.g.   maj13^7  removes the 7th m9^7 removes the 9th.) maj13^13 does
not remove the 13).

    Multiple alterations of the same degree are permitted and work as
expected.
    e.g. alt chords of the form c:5+.5-  c:9+.9- &c.


By default, 11ths are augmented (whether added explicitly or implicitly).
c:11 produces c e g bf d fs. A natural 11th may be added by specifying
c:11-.

Chord modifiers affect the way implicit notes are added to the chord.

m, min  :    implicit 3rds are minor. 11ths are natural.
maj :         7ths are major (whether implicit or explicit).
dim:          implicit 3rds are minor, implicit 5ths are diminished, 7ths
are diminished.
aug:           implicit 5ths are augmented.
sus:           do not generate an implicit 3rd.

Thirds and fifths are added unless they have already been explicitly added
or removed. The one exception is c:5 which adds the fifth, but does not add
an implicit 3rd. Implicit 3rds below a 9th 11th or 13th are added unless
they have already been explicitly added or removed.

Experimental feature (pending discussions on pitch->grob conversions).

no :    subtracts the following note from the chord. e.g. c:6.9.no7
add:   adds the following note, but not implicit 3rds below it.

Modifiers do not add notes, but affect steps that are added afterward.

Examples:
        c:2    -->  c d e g
        c:add9  -> c e g  d  (experimental)
        c:sus2 --> c d g
        c:maj13   -> c e g b d fs a
        c:13-        -> c e g bf d fs af
        c:m11       -> c ef g bf d f
        c:11          -> c e g bf d fs
        c:6.9.no7   -> c e g a d  (experimental)

For a proof sheet of the new chord-name parsing, with examples given below
the staff, see

http://members.rogers.com/rerdavies/new-chord-names.ps

(note that the chord name display requires a lot of work, but the notes on
the staff are correct).

If you are willing to accept the changes, I will also undertake to update
relevant sections of the manual (only one page as far as I can make out,
which spends most of the page discussing how quirky this feature is in the
current implementation).

Regards,

Robin Davies.






reply via email to

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