xxxxxxxxxx
239
// converted from
// https://github.com/tonaljs/tonal/blob/master/packages/scale-dictionary/data.ts
// and
// https://github.com/tonaljs/tonal/blob/master/packages/chord-dictionary/data.ts
// try minor pentatonic (think Black Sabbath), major pentatonic
let scales = [ [ [ 0, 2, 4, 7, 9 ], 'major pentatonic', 'pentatonic' ],
[ [ 0, 4, 5, 7, 11 ], 'ionian pentatonic' ],
[ [ 0, 4, 5, 7, 10 ], 'mixolydian pentatonic', 'indian' ],
[ [ 0, 2, 5, 7, 9 ], 'ritusen' ],
[ [ 0, 2, 5, 7, 10 ], 'egyptian' ],
[ [ 0, 4, 5, 6, 10 ], 'neopolitan major pentatonic' ],
[ [ 0, 3, 5, 7, 8 ], 'vietnamese 1' ],
[ [ 0, 1, 3, 7, 8 ], 'pelog' ],
[ [ 0, 1, 5, 7, 8 ], 'kumoijoshi' ],
[ [ 0, 2, 3, 7, 8 ], 'hirajoshi' ],
[ [ 0, 1, 5, 6, 10 ], 'iwato' ],
[ [ 0, 1, 5, 7, 10 ], 'in-sen' ],
[ [ 0, 4, 6, 7, 11 ], 'lydian pentatonic', 'chinese' ],
[ [ 0, 3, 5, 8, 10 ], 'malkos raga' ],
[ [ 0, 3, 5, 6, 10 ],
'locrian pentatonic',
'minor seven flat five pentatonic' ],
[ [ 0, 3, 5, 7, 10 ], 'minor pentatonic', 'vietnamese 2' ],
[ [ 0, 3, 5, 7, 9 ], 'minor six pentatonic' ],
[ [ 0, 2, 3, 7, 9 ], 'flat three pentatonic', 'kumoi' ],
[ [ 0, 2, 4, 7, 8 ], 'flat six pentatonic' ],
[ [ 0, 1, 4, 7, 9 ], 'scriabin' ],
[ [ 0, 4, 6, 8, 10 ], 'whole tone pentatonic' ],
[ [ 0, 4, 6, 8, 11 ], 'lydian #5P pentatonic' ],
[ [ 0, 4, 6, 7, 10 ], 'lydian dominant pentatonic' ],
[ [ 0, 3, 5, 7, 11 ], 'minor #7M pentatonic' ],
[ [ 0, 3, 4, 6, 10 ], 'super locrian pentatonic' ],
[ [ 0, 2, 3, 5, 7, 11 ], 'minor hexatonic' ],
[ [ 0, 3, 4, 7, 8, 11 ], 'augmented' ],
[ [ 0, 3, 5, 6, 7, 10 ], 'minor blues', 'blues' ],
[ [ 0, 2, 3, 4, 7, 9 ], 'major blues' ],
[ [ 0, 2, 5, 7, 9, 10 ], 'piongio' ],
[ [ 0, 1, 4, 6, 9, 10 ], 'prometheus neopolitan' ],
[ [ 0, 2, 4, 6, 9, 10 ], 'prometheus' ],
[ [ 0, 1, 4, 6, 8, 10 ], 'mystery #1' ],
[ [ 0, 1, 4, 5, 8, 9 ], 'six tone symmetric' ],
[ [ 0, 2, 4, 6, 8, 10 ], 'whole tone' ],
[ [ 0, 2, 4, 5, 6, 8, 10 ], 'locrian major', 'arabian' ],
[ [ 0, 1, 4, 6, 7, 8, 11 ], 'double harmonic lydian' ],
[ [ 0, 2, 3, 5, 7, 8, 11 ], 'harmonic minor' ],
[ [ 0, 1, 3, 4, 6, 8, 10 ],
'altered',
'super locrian',
'diminished whole tone',
'pomeroy' ],
[ [ 0, 2, 3, 5, 6, 8, 10 ], 'locrian #2', 'half-diminished' ],
[ [ 0, 2, 4, 5, 7, 8, 10 ],
'melodic minor fifth mode',
'hindu',
'mixolydian b6M' ],
[ [ 0, 2, 4, 6, 7, 9, 10 ], 'lydian dominant', 'lydian b7' ],
[ [ 0, 2, 4, 6, 7, 9, 11 ], 'lydian' ],
[ [ 0, 2, 4, 6, 8, 9, 11 ], 'lydian augmented' ],
[ [ 0, 1, 3, 5, 7, 9, 10 ], 'melodic minor second mode' ],
[ [ 0, 2, 3, 5, 7, 9, 11 ], 'melodic minor' ],
[ [ 0, 1, 3, 5, 6, 8, 10 ], 'locrian' ],
[ [ 0, 3, 4, 5, 7, 8, 11 ], 'augmented heptatonic' ],
[ [ 0, 2, 3, 6, 7, 9, 10 ], 'dorian #4' ],
[ [ 0, 2, 3, 6, 7, 9, 11 ], 'lydian diminished' ],
[ [ 0, 1, 3, 5, 7, 8, 10 ], 'phrygian' ],
[ [ 0, 2, 4, 6, 8, 10, 11 ], 'leading whole tone' ],
[ [ 0, 2, 4, 6, 7, 8, 10 ], 'lydian minor' ],
[ [ 0, 1, 4, 5, 7, 8, 10 ],
'phrygian dominant',
'spanish',
'phrygian major' ],
[ [ 0, 1, 3, 5, 7, 8, 11 ], 'balinese' ],
[ [ 0, 1, 3, 5, 7, 9, 11 ], 'neopolitan major', 'dorian b2' ],
[ [ 0, 2, 3, 5, 7, 8, 10 ], 'aeolian', 'minor' ],
[ [ 0, 2, 3, 6, 7, 9, 10 ], 'romanian minor' ],
[ [ 0, 2, 4, 5, 7, 8, 11 ], 'harmonic major' ],
[ [ 0, 1, 4, 5, 7, 8, 11 ], 'double harmonic major', 'gypsy' ],
[ [ 0, 2, 3, 5, 7, 9, 10 ], 'dorian' ],
[ [ 0, 2, 3, 6, 7, 8, 11 ], 'hungarian minor' ],
[ [ 0, 3, 4, 6, 7, 9, 10 ], 'hungarian major' ],
[ [ 0, 1, 4, 5, 6, 9, 10 ], 'oriental' ],
[ [ 0, 1, 3, 4, 6, 7, 10 ], 'flamenco' ],
[ [ 0, 1, 3, 6, 7, 8, 11 ], 'todi raga' ],
[ [ 0, 2, 4, 5, 7, 9, 10 ], 'mixolydian', 'dominant' ],
[ [ 0, 1, 4, 5, 6, 8, 11 ], 'persian' ],
[ [ 0, 2, 4, 5, 7, 9, 11 ], 'major', 'ionian' ],
[ [ 0, 1, 4, 6, 8, 10, 11 ], 'enigmatic' ],
[ [ 0, 2, 4, 5, 8, 9, 11 ], 'ionian augmented' ],
[ [ 0, 3, 4, 6, 7, 9, 11 ], 'lydian #9' ],
[ [ 0, 1, 4, 5, 6, 7, 8, 11 ], 'purvi raga' ],
[ [ 0, 1, 3, 4, 5, 7, 8, 10 ], 'spanish heptatonic' ],
[ [ 0, 2, 4, 5, 7, 9, 10, 11 ], 'bebop' ],
[ [ 0, 2, 3, 4, 5, 7, 9, 10 ], 'bebop minor' ],
[ [ 0, 2, 4, 5, 7, 8, 9, 11 ], 'bebop major' ],
[ [ 0, 1, 3, 5, 6, 7, 8, 10 ], 'bebop locrian' ],
[ [ 0, 2, 3, 5, 7, 8, 10, 11 ], 'minor bebop' ],
[ [ 0, 2, 3, 5, 6, 8, 9, 11 ],
'diminished',
'whole-half diminished' ],
[ [ 0, 2, 4, 5, 6, 7, 9, 11 ], 'ichikosucho' ],
[ [ 0, 2, 3, 5, 7, 8, 9, 11 ], 'minor six diminished' ],
[ [ 0, 1, 3, 4, 6, 7, 9, 10 ],
'half-whole diminished',
'dominant diminished' ],
[ [ 0, 3, 4, 5, 7, 9, 10, 11 ], 'kafi raga' ],
[ [ 0, 2, 3, 4, 5, 6, 7, 9, 10 ], 'composite blues' ],
[ [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ], 'chromatic' ] ];
let chords = [
[ [ 0, 4, 7 ], 'major', 'M ' ],
[ [ 0, 4, 7, 11 ], 'major seventh', 'maj7 Δ ma7 M7 Maj7' ],
[ [ 0, 4, 7, 11, 14 ], 'major ninth', 'maj9 Δ9' ],
[ [ 0, 4, 7, 11, 14, 21 ], 'major thirteenth', 'maj13 Maj13' ],
[ [ 0, 4, 7, 9 ], 'sixth', '6 add6 add13 M6' ],
[ [ 0, 4, 7, 9, 14 ], 'sixth/ninth', '6/9 69' ],
[ [ 0, 4, 7, 11, 18 ], 'lydian', 'maj#4 Δ#4 Δ#11' ],
[ [ 0, 4, 8, 11 ], 'major seventh b6', 'M7b6' ],
[ [ 0, 3, 7 ], 'minor', 'm min -' ],
[ [ 0, 3, 7, 10 ], 'minor seventh', 'm7 min7 mi7 -7' ],
[ [ 0, 3, 7, 11 ],
'minor/major seventh',
'm/ma7 m/maj7 mM7 m/M7 -Δ7 mΔ' ],
[ [ 0, 3, 7, 9 ], 'minor sixth', 'm6' ],
[ [ 0, 3, 7, 10, 14 ], 'minor ninth', 'm9' ],
[ [ 0, 3, 7, 10, 14, 17 ], 'minor eleventh', 'm11' ],
[ [ 0, 3, 7, 10, 14, 21 ], 'minor thirteenth', 'm13' ],
[ [ 0, 3, 6 ], 'diminished', 'dim ° o' ],
[ [ 0, 3, 6, 9 ], 'diminished seventh', 'dim7 °7 o7' ],
[ [ 0, 3, 6, 10 ], 'half-diminished', 'm7b5 ø' ],
[ [ 0, 4, 7, 10 ], 'dominant seventh', '7 dom' ],
[ [ 0, 4, 7, 10, 14 ], 'dominant ninth', '9' ],
[ [ 0, 4, 7, 10, 14, 21 ], 'dominant thirteenth', '13' ],
[ [ 0, 4, 7, 10, 18 ], 'lydian dominant seventh', '7#11 7#4' ],
[ [ 0, 4, 7, 10, 13 ], 'dominant b9', '7b9' ],
[ [ 0, 4, 7, 10, 15 ], 'dominant #9', '7#9' ],
[ [ 0, 4, 10, 13 ], 'altered', 'alt7' ],
[ [ 0, 5, 7 ], 'suspended 4th', 'sus4' ],
[ [ 0, 2, 7 ], 'suspended 2nd', 'sus2' ],
[ [ 0, 5, 7, 10 ], 'suspended 4th seventh', '7sus4' ],
[ [ 0, 7, 10, 14, 17 ], 'eleventh', '11 sus Bb/C for C11' ],
[ [ 0, 5, 7, 10, 13 ], 'suspended 4th b9', 'b9sus phryg' ],
[ [ 0, 7 ], 'fifth', '5' ],
[ [ 0, 4, 8 ], 'augmented', 'aug + +5' ],
[ [ 0, 4, 8, 11 ], 'augmented seventh', 'maj7#5 maj7+5' ],
[ [ 0, 4, 7, 11, 14, 18 ],
'major #11 (lydian)',
'maj9#11 Δ9#11' ],
[ [ 0, 4, 7, 10, 15 ], 'dominant #9', '7#9' ],
[ [ 0, 2, 5, 7 ], '', 'sus24 sus4add9' ],
[ [ 0, 4, 20 ], '', 'Mb6' ],
[ [ 0, 4, 8, 11, 14 ], '', 'maj9#5 Maj9#5' ],
[ [ 0, 4, 8, 10 ], '', '7#5 +7 7aug aug7' ],
[ [ 0, 4, 8, 10, 15 ], '', '7#5#9 7alt 7#5#9_ 7#9b13_' ],
[ [ 0, 4, 8, 10, 14 ], '', '9#5 9+' ],
[ [ 0, 4, 8, 10, 14, 18 ], '', '9#5#11' ],
[ [ 0, 4, 8, 10, 13 ], '', '7#5b9' ],
[ [ 0, 4, 8, 10, 13, 18 ], '', '7#5b9#11' ],
[ [ 0, 4, 8, 15 ], '', '+add#9' ],
[ [ 0, 4, 8, 14 ], '', 'M#5add9 +add9' ],
[ [ 0, 4, 7, 9, 18 ], '', 'M6#11 M6b5 6#11 6b5' ],
[ [ 0, 4, 7, 9, 11, 14 ], '', 'M7add13' ],
[ [ 0, 4, 7, 9, 14, 18 ], '', '69#11' ],
[ [ 0, 4, 7, 8, 10 ], '', '7b6' ],
[ [ 0, 4, 7, 11, 15, 18 ], '', 'maj7#9#11' ],
[ [ 0, 4, 7, 11, 14, 18, 21 ],
'',
'M13#11 maj13#11 M13+4 M13#4' ],
[ [ 0, 4, 7, 11, 13 ], '', 'M7b9' ],
[ [ 0, 4, 7, 10, 18, 20 ], '', '7#11b13 7b5b13' ],
[ [ 0, 4, 7, 10, 21 ], '', '7add6 67 7add13' ],
[ [ 0, 4, 7, 10, 15, 18 ], '', '7#9#11 7b5#9' ],
[ [ 0, 4, 7, 10, 15, 18, 21 ], '', '13#9#11' ],
[ [ 0, 4, 7, 10, 15, 18, 20 ], '', '7#9#11b13' ],
[ [ 0, 4, 7, 10, 15, 21 ], '', '13#9 13#9_' ],
[ [ 0, 4, 7, 10, 15, 20 ], '', '7#9b13' ],
[ [ 0, 4, 7, 10, 14, 18 ], '', '9#11 9+4 9#4 9#11_ 9#4_' ],
[ [ 0, 4, 7, 10, 14, 18, 21 ], '', '13#11 13+4 13#4' ],
[ [ 0, 4, 7, 10, 14, 18, 20 ], '', '9#11b13 9b5b13' ],
[ [ 0, 4, 7, 10, 13, 18 ], '', '7b9#11 7b5b9' ],
[ [ 0, 4, 7, 10, 13, 18, 21 ], '', '13b9#11' ],
[ [ 0, 4, 7, 10, 13, 18, 20 ],
'',
'7b9b13#11 7b9#11b13 7b5b9b13' ],
[ [ 0, 4, 7, 10, 13, 21 ], '', '13b9' ],
[ [ 0, 4, 7, 10, 13, 20 ], '', '7b9b13' ],
[ [ 0, 4, 7, 10, 13, 15 ], '', '7b9#9' ],
[ [ 0, 4, 7, 14 ], '', 'Madd9 2 add9 add2' ],
[ [ 0, 4, 7, 13 ], '', 'Maddb9' ],
[ [ 0, 4, 6 ], '', 'Mb5' ],
[ [ 0, 4, 6, 9, 10, 14 ], '', '13b5' ],
[ [ 0, 4, 6, 11 ], '', 'M7b5' ],
[ [ 0, 4, 6, 11, 14 ], '', 'M9b5' ],
[ [ 0, 4, 6, 10 ], '', '7b5' ],
[ [ 0, 4, 6, 10, 14 ], '', '9b5' ],
[ [ 0, 4, 10 ], '', '7no5' ],
[ [ 0, 4, 10, 20 ], '', '7b13' ],
[ [ 0, 4, 10, 14 ], '', '9no5' ],
[ [ 0, 4, 10, 14, 21 ], '', '13no5' ],
[ [ 0, 4, 10, 14, 20 ], '', '9b13' ],
[ [ 0, 3, 5, 7 ], '', 'madd4' ],
[ [ 0, 3, 8 ], '', 'm#5 m+ mb6' ],
[ [ 0, 3, 7, 9, 14 ], '', 'm69 _69' ],
[ [ 0, 3, 7, 8, 11 ], '', 'mMaj7b6' ],
[ [ 0, 3, 7, 8, 11, 14 ], '', 'mMaj9b6' ],
[ [ 0, 3, 7, 11, 14 ], '', 'mMaj9 -Maj9' ],
[ [ 0, 3, 7, 10, 17 ], '', 'm7add11 m7add4' ],
[ [ 0, 3, 7, 14 ], '', 'madd9' ],
[ [ 0, 3, 6, 9, 11 ], '', 'o7M7' ],
[ [ 0, 3, 6, 11 ], '', 'oM7' ],
[ [ 0, 3, 6, 10 ], '', 'm7b5 half-diminished h7 _7b5' ],
[ [ 0, 3, 8, 11 ], '', 'mb6M7' ],
[ [ 0, 3, 8, 10 ], '', 'm7#5' ],
[ [ 0, 3, 8, 10, 14 ], '', 'm9#5' ],
[ [ 0, 3, 8, 10, 14, 17 ], '', 'm11A' ],
[ [ 0, 3, 8, 13 ], '', 'mb6b9' ],
[ [ 0, 3, 10, 18, 2 ], '', 'm9b5 h9 -9b5' ],
[ [ 0, 3, 10, 18, 2, 5 ], '', 'm11b5 h11 _11b5' ],
[ [ 0, 5, 8, 11 ], '', 'M7#5sus4' ],
[ [ 0, 5, 8, 11, 14 ], '', 'M9#5sus4' ],
[ [ 0, 5, 8, 10 ], '', '7#5sus4' ],
[ [ 0, 5, 7, 11 ], '', 'M7sus4' ],
[ [ 0, 5, 7, 11, 14 ], '', 'M9sus4' ],
[ [ 0, 5, 7, 10, 14 ], '', '9sus4 9sus' ],
[ [ 0, 5, 7, 10, 14, 21 ], '', '13sus4 13sus' ],
[ [ 0, 5, 7, 10, 13, 20 ], '', '7sus4b9b13 7b9b13sus4' ],
[ [ 0, 5, 10, 15 ], '', '4 quartal' ],
[ [ 0, 7, 10, 13, 17 ], '', '11b9' ]
];
function shiftScale(scale, rootNote) {
let newScale = [];
for (let i = 0; i < scale.length; i+=1) {
newScale.push(scale[i] + rootNote);
}
return newScale;
}