hi, just one idea to think about: if you read Werner Pöhlert's "Basic Harmoy" (a very thick volume) he explains that every move from chord to chord is a fifth (= = half-step), so if you want to produce consistent jazzchord names from given notes, the most logical think would be to analyse the notes in the following way:
(1) recognize the root movement (half-tone, whole-tone[= = fifth or 2 x fifth], fourth/fifth) from the preceeding chord and thereby the root of the new chord (2) determine the quality of the new chord. there exist only 5 types of triads ... major, major +5, major -5, minor, minor - 5 ... all other existing chords are just composed as a mix of that triads. so if you have the root, identify the basic triad, and than the other triads that are mixed in to make it a fancy jazz chord ....and then apply defined naming rules, ie. a mix of Gminor-triad with Bbmajor-triad is called Gm7, or more generally, a minor triad with a major triad based on it's third mixed in is called a m7 chord with the name of the root of the minor triad. I think only going back to this most basic building blocks of chord movement and chord composition there ist a chance to automatically recognize chord names and not get lost in the endless possibilities of chord interpretation and spelling.... cheers thomas "Grammostola Rosea" <rosea.grammost...@gmail.com> schrieb im Newsbeitrag news:4a229781.2090...@gmail.com... > Johannes Schöpfer wrote: >> Hi, >> >>> As I already said some time ago when I made my own chordnames functions, >>> I still believe chordnames should be seperated from chords, or at least >>> chords shouldn't produce chordnames since it'll never be clear. And the >>> other way round there can also occur problems, i.e. with C7alt., how >>> should Lilypond know which chord to display then. >>> >>> Another thing is the exceptions list. >>> I think instead of defining some standards (\realbook, etc.) it would be >>> easier to just type what you mean, maybe something like c:m7, c:mi7, >>> c:-7 >>> That way everyone could just type each chordname as they want it to be >>> displayed instead of selecting an exception for each from a list. >> >> I have an idea that goes in that direction. >> It would simplify both entry and interpretation: >> >> Basenotes are the only thing really needed to be recognized as note to >> make a chord(meaning just the basenote) transposeable and to get the >> duration. >> Anything else may be added without interpretation. >> >> Syntax proposal for \chordName: >> Basenote[:optional text] [optional anyextension] [ optional "/" for >> slash-chords [Basenote ...]] >> >> Input examples: Displayed like: >> eb maj7b5 \markup {\concat{Eb\super maj7b5}} >> eb \triangle \markup {\concat{Eb\super \triangle ##f}} >> eb:add9 \markup {\concat{Eb\tiny "add9"}} >> eb:omit3 7 \markup {\concat{Eb\tiny "omit3" \super 7}} >> eb m7b5 \markup {\concat{Eb\super m7b5}} >> eb ø7 \markup {\concat{Eb\super ø7}} >> eb/G \markup {\concat{Eb/G}} >> eb maj7/f lala \markup {\concat{Eb\super maj7 /F\super lala"}} >> eb mixolydian \markup {\concat{Eb\super mixolydian}} >> >> New shortcuts like \triangle may be useful, for "ø" for example. >> \maj may be an alias for \triangle >> >> This would remove any exeptions for chordentry as anything is dispalyed >> as it was entered. >> Displaying the whole chord(<es g bes d>) interpreted as notes would not >> be possible, but i personally never needed that. >> >> > Please take also care of the user friendlessness to display the chords. > > \r _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user