Hi everyone,
sorry to re-activate this topic, but I’ve found an error, that should be corrected:
the minor scale is wrong:
SCALE_ENTRY 0, 0, 2, 3, 3, 5, 5, 7, 7, 9, 9, 11 ; Minor
SCALE_ENTRY 0, 0, 2, 3, 3, 5, 5, 7, 8, 8, 8, 11 ; Harmonic Minor
As the natural minor is Aeolian, it should be:
{ 0, 0, 2, 3, 3, 5, 5, 7, 7, 8, 10, 10 } // Minor
{ 0, 0, 2, 3, 3, 5, 5, 7, 8, 8, 11, 11 } // Harmonic Minor
The minor scale on the pianoworld.com page seems to be wrong :-\
Anyway, while I’m currently working on my harmonizer, here’s an C-equivalent of this table (not exactly, only scales I personally like to use); it’s not yet tested (may be errors, too) and the distribution of the notes is not musically straight (like suggested from widdly) but more equally spreaded, because I want to use it with (guess what? ;D ) sensors…
const unsigned char scaleNames[SCALE_MAX][4] = {
{ " - " },
{ "MAJ" }, // Major
{ "min" }, // Natural Minor
{ "hrm" }, // Harmonic Minor
{ "blu" }, // Blues Minor
{ "BLU" }, // Blues Major
{ "DOR" }, // Dorian
{ "JAP" }, // Japanese
{ "jap" }, // Japanese Diminshed
{ "KUM" }, // Kumoi
{ "LOC" }, // Locrian
{ "LYD" }, // Lydian
{ "MSH" }, // Mi-Sheberach
{ "MIX" }, // Mixolydian
{ "PLG" }, // Pelog
{ "PNT" }, // Pentatonic Neutral
{ "PBL" }, // Pentatonic Blues
{ "PMA" }, // Pentatonic Major
{ "Pmi" }, // Pentatonic Minor
{ "PHR" }, // Phrygian
{ "SPA" } // Spanish
};
const unsigned char scale_set[SCALE_MAX][12] = {
// C C# D D# E F F# G G# A A# B
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }, // not harmonized
{ 0, 0, 2, 4, 4, 5, 5, 7, 9, 9, 11, 11 }, // Major
{ 0, 0, 2, 3, 3, 5, 5, 7, 8, 8, 10, 10 }, // Natural Minor = Aeolian
{ 0, 0, 2, 3, 3, 5, 5, 7, 8, 8, 11, 11 }, // Harmonic Minor
{ 0, 0, 3, 3, 5, 5, 6, 7, 7, 10, 10, 10 }, // Blues Minor
{ 0, 0, 3, 3, 4, 4, 7, 7, 9, 9, 10, 10 }, // Blues Major
{ 0, 2, 2, 3, 3, 5, 5, 7, 7, 9, 10, 10 }, // Dorian
{ 0, 0, 2, 2, 5, 5, 5, 7, 7, 7, 10, 10 }, // Japanese
{ 0, 1, 1, 1, 5, 5, 5, 7, 7, 7, 10, 10 }, // Japanese Diminished
{ 0, 2, 2, 3, 3, 3, 7, 7, 7, 9, 9, 9 }, // Kumoi
{ 0, 0, 2, 2, 4, 4, 6, 7, 7, 9, 9, 11 }, // Lydian
{ 0, 1, 1, 3, 3, 5, 6, 6, 8, 8, 10, 10 }, // Locrian
{ 0, 0, 2, 3, 3, 6, 6, 7, 7, 9, 10, 10 }, // Mi-Sheberach (Jewish)
{ 0, 0, 2, 2, 4, 5, 5, 7, 7, 9, 10, 10 }, // Mixolydian
{ 0, 1, 1, 3, 3, 3, 7, 7, 8, 8, 8, 8 }, // Pelog
{ 0, 0, 2, 2, 2, 5, 5, 7, 7, 7, 10, 10 }, // Pentatonic Neutral
{ 0, 0, 3, 3, 5, 5, 6, 7, 7, 7, 10, 10 }, // Pentatonic Blues
{ 0, 0, 2, 2, 4, 4, 7, 7, 7, 9, 9, 9 }, // Pentatonic Major
{ 0, 0, 3, 3, 5, 5, 5, 7, 7, 7, 10, 10 }, // Pentatonic Minor
{ 0, 1, 1, 3, 3, 5, 5, 7, 8, 8, 10, 10 }, // Phrygian
{ 0, 1, 1, 4, 4, 5, 5, 7, 8, 8, 10, 10 } // Spanish
// C Db D Eb E F Gb G Ab A Bb B
};
Cheers,
Michael