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. _______________________________________________ Lilypond-devel mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/lilypond-devel