tonaljs / tonal

A music theory library for Javascript
https://tonaljs.github.io/tonal/docs
3.81k stars 219 forks source link

b9sus chord has a M9 #217

Closed martijnmichel closed 3 years ago

martijnmichel commented 3 years ago

as stated in topic, please correct typo

danigb commented 3 years ago

I see... Here the problem is that b is interpreted as B note, so b9sus is interpreted as B 9sus:

Chord.get('b9sus').intervals // =>  [ '1P', '4P', '5P', '7m', '9M' ]

Moreover Cb9sus is also mis-interpreted as Cb 9sus

Chord.get('Cb9sus').intervals // => ['1P', '4P', '5P', '7m', '9M']

It only works with sharpened notes 😫

Chord.get('C#b9sus').intervals // => ['1P', '4P', '5P', '7m', '9m']

The only solution is to use getChord:

t.Chord.getChord('b9sus', 'C').intervals // =>  ['1P', '4P', '5P', '7m', '9m' ]

This is an argument to deprecate "combined names" and only accept tonic and type as separated arguments

Ideas?