lilypond-devel
[Top][All Lists]
Advanced

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

chord-names


From: Robin Davies
Subject: chord-names
Date: Fri, 17 May 2002 10:22:50 -0400

I'm ramping up for a major assault on chord-name.scm in an attempt to get to
work properly across the board. Fascinating problem. fyi, the general
approach I'm intending to take is:

1) separate the existing alists into two separate lists. skeleton lists
describe the required notes which must appear in a chord in order to
generate the base portion of a chord. Alterations (e.g. +5, -11, &c) may be
applied to chords in the skeleton list. alists (preserving the old name)
describe exceptions, for which all notes in a chord must match, and no
alterations are applied. Hopefully, this simplify the logic considerably and
reduce the current schizophrenic use/misuse of the alist tables. As an
example, the skeleton of a Maj9 chord is (0 2 0) (0 6 0) (1 2 0) to which
+5/-5 or no5, +11/-11 +13/-13 could be applied as an alteration (in
American/Jazz, anyway). This is a sensible approach for Jazz and American,
although less so for Banter, I suspect. Separating the two tables means that
we can support addX chord alterations in american and jazz if that's what
the user entered, while still providing c6/9 without having to hack to get
rid of the no7.

2) Provide a substitution mechanism for "m"/"-" and Maj/M/delta/solid-delta
within the base chord names.  So   c-(M7) in a base chord name can be
substituted to cm(Maj7) if that's what the user has specified.
dim/circle-slash and aug/+ options seem to be too scattered to organize, but
can be supported with explicit base name entries. (e.g. C+7 from a base
name, but no attempt to try to build C+11/9- from alterations). My personal
taste would dictate C11+5/-9, so I think that's ok.

3) Either noX (banter) or addX (american).

4) A couple of aditional features suggested in the FIXME notes.

5) Optional support for major/minor/augmented/diminised alterations (my
personal pet peeve). e.g. +5 (augmented fifth),  but flat-13 (minor 6th or
13th),

6) Stacked 2xN (Jazz) or "/" sepearated alterations.

7) American, Jazz and Banter meta-styles that set the appropriate
sub-options.

8) Drop the Jazz and american penchant for ignoring noX (no3, no5, e.g.)
alterations. If the user doesn't want noX then they should have provided X.

9) The inversion/root ('/' vs '/+') functionality doesn't seem entirely
sensible to me, but I'll support it as given.  e.g.   a:m7/g   produces
Am/G in the current system instead of Am7/G, although a:m7/+g does produce
Am7/G.   a:m7/e produces Am7(no5)/E.


I'll post a more detailed design as I get further.
I do have a couple of questions, though.

1) German note names in root, and base.

Refresh my memory, please. This means using H for a-flat? I'm not sure
what's required.

2) Banter conventions.

Not having ready access to the Banter text, I have to infer what I can from
the code. I'm perfectly comfortable with how to apply alterations to
American and Jazz chords.

The Banter 11th and 13th chord notations don't seem sensible to me. Is the
current output correct, or is it broken? Writing C^9/11/13 for C13 seems
highly undesireable to me. But then, I'm American. ;-)

If someone could give me a brief precis of what needs to be done to collapse
11 and 13 chords (if anything), I would be grateful. I'm puzzled, because
9th chords seem to collapse indiscriminately (e.g. cm^9+), but c^9/11/13
doesn't. Unless someone tells me otherwise, I'm going to assume that Banter
chord names do collapse alterations under some circumstances.

Could you please confirm for me that the following rewrites are what banter
chords should be outputing. The first chord name gives chord-name input. The
second gives what the current output is. The third gives what I think is
correct banter notation. (^ means superscript).

c:13    :    C^9/11/13      :  C^13
c:7.9+   :      C^9+      :    C^9+  (not sure).
c:11.13- :    C^9/11/13-    :   C^13
c:13.9-  :   C^9-/11/13     :   C^9-/11/13  ?
c:11    : C^9/11      :     C^11
 c:11+  :  c^9/11+   :     C^11+   ?
m:m7.5-.9   : Cm^5-/maj7/9      :   Cm^5-/9  or Cm^5-/7/9 ?
c:11.13-    :  C^9/11/13-    :    C^11/13-   or C^13-  ? (like C^9-)

I'm guessing: take the highest degree of the chord, and drop all unaltered
degrees below that. The current implementation seems to apply that rule up
to the 9th degree, but provides all degrees for 11 and 13 chords.






reply via email to

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