mdanka / momo-chords

Chord parser and printer.
https://momo-chords.miklosdanka.com
Apache License 2.0
9 stars 1 forks source link

A4 is rendered as A11, A6 as A13 #25

Open no-chris opened 5 years ago

no-chris commented 5 years ago

Hello,

Thanks for the good work on this lib, I like it and plan to use it :-)

Could you please explain the rationale for the following rendering (from https://momo-chords.miklosdanka.com/):

I know that 4th and 11th are "the same note" as well as 6th and 13th

However in my knowledge:

In all cases I don't play A4/A11 and A6/A13 the same way at all, nor they sound the same at all

Thanks a lot

mdanka commented 5 years ago

Thanks @no-chris :) I'm glad you find it useful. May I ask what your planned use case is?

1) Sometimes there are multiple notations which mean that the same notes appear in the chords. You have a fair point, in that even though the same notes might appear, you might play them differently anyway, depending on the notation. This library doesn't support that: since the library figures out the name from the notes in the chord, the same set of notes have to yield the same name.

2) A4 yields Aadd11 because that's the default configuration. However, you can override these to your own taste using custom namings. For example, in this line you'd have to bring the 4 ahead of the add11. The same applies to A6.

3) I don't know why Asus4 yields Asuspended, that's not intended - see naming here. I suspect that might be a bug! Created an issue here: https://github.com/mdanka/momo-chords/issues/27

4) You're right that 11 implies a seventh, but add11 doesn't, as far as I know.

Does this answer your questions?

no-chris commented 5 years ago

I'm writing a parser/renderer for a new format of chord charts, momo-chords could handle the chord parsing part :)

  1. But then the lib could either

    • parse C6 as C1 / E1 / G1 / A1 and C13 as C1 / E1 / G1 / Bb1 / A2
    • have a chord structure that goes beyond the 12 degrees of the scale and to go up to the 13th interval (so 20th degrees if I'm not wrong). That way C6 and C13 would be actually 2 different chords
  2. But then A11 would yield A4 no? ;-)

  3. I was not aware that C11 and Cadd11 were actually different chords, could you please point me to some documentation? Unless that you mean by Cadd11 that the chord is simply a C with an added 11? In that case:

    • I'm not sure we are reflecting the most uses cases here, as most chords charts, especially in jazz, are using C11 or C13 to refer to the full chord, and not just the "added note". Especially when you have a Cb13 (minor 13th), I never saw a chord named Cb6 (that'd be a C+) which confirms that we are talking about two different things here
    • Cadd11, if the lib does not make the difference between A1 and A2 (an octave higher) is then most probably a C6 and thus should be displayed as such

But anyway, now I understand better with your explanations that the lib was not intended to make the difference between 4/11 and 6/13. This is a pity but it is the way it is! :-)

no-chris commented 5 years ago

I might have been illuminated during the night (never lose hope :-)

So actually the lib does differentiate 4/11 and 6/13

C13 has indeed a structure of {0, 2, 4, 5, 7, 9, 10} and yields C13, not Cadd13. The chord description has a Thirteenth entry and no "added" entry. and C6 has a structure of {0, 4, 7, 9}, not thirteenth and an "added" entry.

So it is just a rendering issue and your 2/ answer should be just what I look for. Am I correct?

If so, I would still suggest to change the default behaviour to render C6 instead of Cadd13, just to avoid the same confusion that I got into from someone else, as C6 seems to be the most widely used form

mdanka commented 5 years ago

Ah, you're right! I was wrong about my own library, thanks for correcting me.

I don't know which form is more widely used, it probably depends on instrument and genre. I am happy to have the default changed to your suggestion until someone else jumps on and argues otherwise! Can you submit a PR for it?

no-chris commented 5 years ago

Will do in a little while, no pb