// each array in a scale array represents a note of the scale followed by indices for what notes can follow that note. int[][] PentaScale = new int[][] { { 0, 1, 3 }, { 2, 2, 4 }, { 4, 0, 3, }, { 7, 0, 1, }, { 9, 1, 2 } }; int[][] MajorScale = new int[][] { // 0 C { 0, 1, 2, 3, 4, 5, 6 }, // 1 D { 2, 3, 4, 6 }, // 2 E { 4, 0, 3, 4 }, // 3 F { 5, 1, 2, 5, }, // 4 G { 7, 2, 3, 5, 6 }, // 5 A { 9, 3, 4, 6 }, // 6 B { 11, 1, 4, 5 } }; int[][] PentaMinorScale = new int[][] { { 0, 1, 3 }, { 3, 2, 4 }, { 5, 0, 3, }, { 7, 0, 1, }, { 10, 1, 2 } }; int[][] NaturalMinorScale = new int[][] { // 0 C { 0, 1, 2, 3, 4, 5, 6 }, // 1 D { 2, 3, 4, 6 }, // 2 Eb { 3, 0, 3, 4, 6 }, // 3 F { 5, 1, 2, 5, 6 }, // 4 G { 7, 3, 5, 6 }, // 5 Ab { 8, 3, 4, 5 }, // 6 Bb { 10, 0, 1, 4, 5 } }; int[][] HarmonicMinorScale = new int[][] { // 0 C { 0, 2, 4, 5 }, // 1 D { 2, 3, 4, 6 }, // 2 Eb { 3, 0, 4, 5 }, // 3 F { 5, 1, 5, }, // 4 G { 7, 0, 1, 2, 5, 6 }, // 5 Ab { 8, 0, 1, 3 }, // 6 B { 11, 1, 4, 5 } }; int[][] BluesScale = new int[][] { // 0 C { 0, 1, 5 }, // 1 Eb { 3, 0, 2 }, // 2 F { 5, 1, 3 }, // 3 F# { 6, 4 }, // 4 G { 7, 1, 5, }, // 5 Bb { 10, 0, 3, 4 } }; int[][][] Scales = new int[][][] { PentaScale, MajorScale, PentaMinorScale, NaturalMinorScale, HarmonicMinorScale, BluesScale };