chord-symbol icon indicating copy to clipboard operation
chord-symbol copied to clipboard

Weird renderings/parsings

Open no-chris opened this issue 4 years ago • 10 comments

no-chris avatar Oct 22 '20 11:10 no-chris

#285 will fix:

  • Cadd11
  • Cmi11 : no alternate rendering!
  • G4add9 (3 ?!!)
  • C4

Remaining:

  • C11(add3) => C9
  • CM711=> null

no-chris avatar Oct 22 '20 16:10 no-chris

Is that all what's needed for 1.1 to be released?

ecstrema avatar Oct 24 '20 04:10 ecstrema

almost: https://github.com/no-chris/chord-symbol/projects/3

no-chris avatar Oct 25 '20 10:10 no-chris

  • C11(add3) => C9: what should be expected? C11(add3) or C9(add 11)?
  • CM711=> null: that is correct: b7 & 7 cannot be in the same chord

no-chris avatar Dec 27 '20 20:12 no-chris

C11(add3) => C9: what should be expected? C11(add3) or C9(add 11)?

For this one I would expect either C9 (add 11) or (maybe?) BbMaj13(# 11)/C This last one may be longer, but it is the only one theorically "correct". But you probably don't want to change the root of the chord, so C9 (add11) is probably better.

ecstrema avatar Dec 27 '20 21:12 ecstrema

Thanks!

no-chris avatar Dec 27 '20 22:12 no-chris

I found another one: Do / DO -> Ddim (would expect C)

I understand that the "o" can be used to express a diminished chord, but in this case the root note should win I guess. Maybe latin name parsings could be optional, to keep the o for diminished in some cases.

ohmycode avatar Nov 16 '21 09:11 ohmycode

thanks for checking this out.

That one is actually documented in the readme:

Support for different notation systems

ChordSymbol can recognize notes written in english, latin and german systems. By default, ChordSymbol will try all the notation systems one after the other until he properly detects a chord (or not). This works well in the vast majority of cases, with a notable exception:

  • the Latin Do (C) conflict with the English D and the o modifier, which is widely used in some popular software to describe a diminished chord. Given the prevalence of this modifier, priority has been given to it. Thus, by default, it is not possible to use the Do symbol to describe a C chord.
  • if you know for sure the chords that you want to parse are written in the latin notation system, you can disable english and german when configuring the parser (see the API documentation). This will allows you to parse a Do (C) chord.

no-chris avatar Nov 16 '21 11:11 no-chris

Thank you @no-chris, and sorry for overseeing it in the documentation. For me that will do the trick! But I still believe that it would make more sense the other way around, just as the occurrence of a single D-diminished chord base is way lower than all chords with a latin C root note, and especially looking at the vast usage of this notation system around the world. I understand that there is a lot of software that uses the "o" for diminished, but for that case latin could be disabled as well.

ohmycode avatar Nov 30 '21 10:11 ohmycode

You are probably right, I don't really have a strong opinion on this, one way or the other could work. As it would be a breaking change though, I'll probably keep it that way until someone comes up with a use case that cannot be solved with the current functionality.

no-chris avatar Nov 30 '21 11:11 no-chris

  • C11(add3) => C9: edge case enough to ignore it
  • CM711=> null: valid rejection, since it contains both 7 and b7

Thus, closing issue for now

no-chris avatar Jan 26 '23 09:01 no-chris