// half step is 1, whole step is 2
static const Scale scale[NUMBER_OF_TOTAL_SCALES] = {
{ .scale_name = "Chromatic", .scale_increments = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } },
{ .scale_name = "Major", .scale_increments = { 2, 2, 1, 2, 2, 2, 1 } }, // major scale (ionian, bilawal)
{ .scale_name = "m Natural", .scale_increments = { 2, 1, 2, 2, 1, 2, 2 } }, // natural minor (aeolian, asavari)
{ .scale_name = "m Harmonic", .scale_increments = { 2, 1, 2, 2, 1, 3, 1 } }, // harmonic minor
{ .scale_name = "m Melodic", .scale_increments = { 2, 1, 2, 2, 2, 2, 1 } }, // melodic minor
{ .scale_name = "M Harmonic", .scale_increments = { 2, 2, 1, 2, 1, 3, 1 } }, // harmonic major
{ .scale_name = "Dorian", .scale_increments = { 2, 1, 2, 2, 2, 1, 2 } }, // dorian (kafi)
{ .scale_name = "Phyrigian", .scale_increments = { 1, 2, 2, 2, 1, 2, 2 } }, // phrygian (bhairavi)
{ .scale_name = "Lydian", .scale_increments = { 2, 2, 2, 1, 2, 2, 1 } }, // lydian (kalyan)
{ .scale_name = "Mixolydian", .scale_increments = { 2, 2, 1, 2, 2, 1, 2 } }, // mixolydian (khamaj, adonai malakh)
{ .scale_name = "Locrian", .scale_increments = { 1, 2, 2, 1, 2, 2, 2 } }, // locrian
{ .scale_name = "M Locrian", .scale_increments = { 2, 2, 1, 1, 2, 2, 2 } }, // major locrian
{ .scale_name = "Ahava Raba", .scale_increments = { 1, 3, 1, 2, 1, 2, 2 } }, // Ahava Raba (phrygian dominant)
{ .scale_name = "Akebono", .scale_increments = { 2, 1, 4, 1, 4, 2, 1 } }, // akebono
{ .scale_name = "Bhairav", .scale_increments = { 1, 3, 1, 2, 1, 3, 1 } }, // Double Harmonic Major (Bhairav, flamenco)
{ .scale_name = "Marwa", .scale_increments = { 1, 3, 2, 1, 2, 2, 1 } }, // Marwa
{ .scale_name = "Purvi", .scale_increments = { 1, 3, 2, 1, 1, 3, 1 } }, // Purvi
{ .scale_name = "Todi", .scale_increments = { 1, 2, 3, 1, 1, 3, 1 } }, // Todi
{ .scale_name = "Pelog", .scale_increments = { 1, 2, 3, 1, 1, 2, 2 } }, // pelog.
{ .scale_name = "Ukrainian", .scale_increments = { 2, 1, 3, 1, 2, 1, 2 } }, // Ukrainian Dorian
{ .scale_name = "Romani", .scale_increments = { 2, 1, 3, 1, 1, 2, 2 } }, // Romani (gypsy scale)
{ .scale_name = "MHungarian", .scale_increments = { 3, 1, 2, 1, 2, 1, 2 } }, // Hungarian major
{ .scale_name = "mHungarian", .scale_increments = { 2, 1, 3, 1, 1, 3, 1 } }, // Hungarian minor
{ .scale_name = "Persian", .scale_increments = { 1, 3, 1, 1, 2, 3, 1 } }, // Persian
{ .scale_name = "M Neapol", .scale_increments = { 1, 2, 2, 2, 2, 2, 1 } }, // Neapolitan major
{ .scale_name = "m Neapol", .scale_increments = { 1, 2, 2, 2, 1, 3, 1 } }, // Neapolitan minor
{ .scale_name = "H Dim", .scale_increments = { 2, 1, 2, 1, 2, 2, 2 } }, // Half Diminished
{ .scale_name = "W-H Dim", .scale_increments = { 2, 1, 2, 1, 2, 1, 2, 1 } }, // Whole-Half Diminished
{ .scale_name = "H-W Dim", .scale_increments = { 1, 2, 1, 2, 1, 2, 1, 2 } }, // Half-Whole Diminished
{ .scale_name = "Istrian", .scale_increments = { 1, 2, 1, 2, 1, 5 } }, // Istrian
{ .scale_name = "Prometheus", .scale_increments = { 2, 2, 2, 3, 1, 2 } }, // Prometheus
{ .scale_name = "Harmonics", .scale_increments = { 3, 1, 1, 2, 2, 3 } }, // Harmonics
{ .scale_name = "Tritone", .scale_increments = { 1, 3, 2, 1, 3, 2 } }, // Tritone
{ .scale_name = "2semi Tri", .scale_increments = { 1, 1, 4, 1, 1, 4 } }, // two-semitone Tritone
{ .scale_name = "Wholetone", .scale_increments = { 2, 2, 2, 2, 2, 2 } }, // Wholetone
{ .scale_name = "M Penta", .scale_increments = { 2, 2, 3, 2, 3 } }, // major pentatonic
{ .scale_name = "m Penta", .scale_increments = { 3, 2, 2, 3, 2 } }, // minor pentatonic (Yo)
{ .scale_name = "Hirajoshi1", .scale_increments = { 4, 2, 1, 4, 1 } }, // Hirajoshi 1
{ .scale_name = "Hirajoshi2", .scale_increments = { 1, 4, 2, 1, 4 } }, // Hirajoshi 2 (In)
{ .scale_name = "Hirajoshi3", .scale_increments = { 4, 1, 4, 2, 1 } }, // Hirajoshi 3
{ .scale_name = "Hirajoshi4", .scale_increments = { 1, 4, 1, 4, 2 } }, // Hirajoshi 4 (Iwato)
{ .scale_name = "Hirajoshi5", .scale_increments = { 2, 1, 4, 1, 4 } }, // Hirajoshi 5
{ .scale_name = "Insen", .scale_increments = { 1, 4, 2, 3, 2 } }, // Insen
{ .scale_name = "Fourth", .scale_increments = { 5, 7 } }, // fourth
{ .scale_name = "Dim Fifth", .scale_increments = { 6, 6 } }, // diminished fifth
{ .scale_name = "P Fifth", .scale_increments = { 7, 5 } }, // perfect fifth
{ .scale_name = "Aug Fifth", .scale_increments = { 8, 4 } }, // augmented fifth
{ .scale_name = "Octave", .scale_increments = { 12 } } // octave