In section A there seems to be an impressive long list of scales until you realize that every mode of every scale for every key is in this list.
If you separate you will not only clean up the UI but it will also make it easy to change just one aspect (key, scale or mode) without affecting the other properties.
Key: [C, C#, D, D#, E, F, F#, G, G#, A, A#, B]
Scale: [Major, Harmonic Major, Harmonic Minor, Neap. Major, Neap. Minor, Double Harmonic Major, Persian, Major Pentatonic, Major Blues Hex, Hirajoshi, Kumai, Ritsu, Ryo]
Mode: 1-7 or whatever the length of the scale
That ‘Minor’ is just a mode of Major will be hard for some people to wrap their heads around, but OK
By the way, the actual, different, usable scales with unique intervals that I have been able to find are these:
static scales = [
{name: ‘Major’, intervals: [2, 2, 1, 2, 2, 2, 1],
modes: [‘Major’, ‘Dorian’, ‘Phrygian’, ‘Lydian’, ‘Mixolydian’, ‘Aeolian’, ‘Locrian’]},
{name: ‘Harmonic min’, intervals: [2, 1, 2, 2, 1, 3, 1],
modes: [‘Harmonic Minor’, ‘Locrian ♮6’, ‘Ionian ♯5’, ‘Dorian ♯4’, ‘Phrygian Dominant’, ‘Lydian ♯2’, ‘Altered ♭♭7’]},
{name: ‘Melodic min’, intervals: [2, 1, 2, 2, 2, 2, 1],
modes: [‘Melodic Minor’, ‘Dorian ♭2’, ‘Lydian Augmented’, ‘Lydian Dominant’, ‘Mixolydian ♭6’, ‘Locrian ♮2’, ‘Altered’]},
{name: ‘Harmonic maj’, intervals: [2, 2, 1, 2, 1, 3, 1],
modes: [‘Harmonic Major’, ‘Dorian ♭5’, ‘Phrygian ♭4’, ‘Lydian ♭3’, ‘Mixolydian ♭2’, ‘Lydian Augmented ♯2’, ‘Locrian ♭♭7’]},
{name: ‘Bebop Major’, intervals: [2, 2, 1, 2, 1, 1, 2, 1], modes: },
{name: ‘Bebop Minor’, intervals: [2, 1, 2, 2, 1, 1, 1, 2], modes: },
{name: ‘Whole tone’, intervals: [2, 2, 2, 2, 2, 2],
modes: }, // Whole tone is symmetrical, no distinct modes
// Unique additions
{name: 'Pentatonic', intervals: [2, 2, 3, 2, 3], modes: []}, // No traditional modes in Pentatonic
{name: 'Blues', intervals: [3, 2, 1, 1, 3, 1, 1], modes: []}, // No traditional modes in Blues
{name: 'Double Harmonic',intervals: [1, 3, 1, 2, 1, 3, 1],
modes: ['Double Harmonic Major', 'Lydian ♯2 ♯6', 'Ultraphrygian', 'Hungarian Minor', 'Oriental', 'Ionian Augmented ♯2', 'Locrian ♮3 ♭♭7']},
{name: 'Augmented', intervals: [3, 1, 3, 1, 3, 1], modes: []}, // Symmetrical, no distinct modes
{name: 'Enigmatic', intervals: [1, 3, 2, 2, 2, 1, 1], modes: []}, // No widely recognized modes
{name: 'Prometheus', intervals: [2, 2, 2, 3, 1, 2, 0], modes: []}, // No widely recognized modes
{name: 'Tritone', intervals: [1, 3, 2, 1, 1, 2, 2], modes: []}, // No widely recognized modes
];