maia-util
Version:
Utility math and music functions supporting various applications by Music Artificial Intelligence Algorithms, Inc.
240 lines (235 loc) • 14.6 kB
JavaScript
var keysLookup = [
{ "nosSymbols": 0, "mode": "major", "keyName": "C major" },
{ "nosSymbols": 1, "mode": "major", "keyName": "G major" },
{ "nosSymbols": 2, "mode": "major", "keyName": "D major" },
{ "nosSymbols": 3, "mode": "major", "keyName": "A major" },
{ "nosSymbols": 4, "mode": "major", "keyName": "E major" },
{ "nosSymbols": 5, "mode": "major", "keyName": "B major" },
{ "nosSymbols": 6, "mode": "major", "keyName": "F# major" },
{ "nosSymbols": 7, "mode": "major", "keyName": "C# major" },
{ "nosSymbols": 8, "mode": "major", "keyName": "G# major" },
{ "nosSymbols": 9, "mode": "major", "keyName": "D# major" },
{ "nosSymbols": 10, "mode": "major", "keyName": "A# major" },
{ "nosSymbols": 11, "mode": "major", "keyName": "E# major" },
{ "nosSymbols": -1, "mode": "major", "keyName": "F major" },
{ "nosSymbols": -2, "mode": "major", "keyName": "Bb major" },
{ "nosSymbols": -3, "mode": "major", "keyName": "Eb major" },
{ "nosSymbols": -4, "mode": "major", "keyName": "Ab major" },
{ "nosSymbols": -5, "mode": "major", "keyName": "Db major" },
{ "nosSymbols": -6, "mode": "major", "keyName": "Gb major" },
{ "nosSymbols": -7, "mode": "major", "keyName": "Cb major" },
{ "nosSymbols": -8, "mode": "major", "keyName": "Fb major" },
{ "nosSymbols": -9, "mode": "major", "keyName": "Bbb major" },
{ "nosSymbols": -10, "mode": "major", "keyName": "Ebb major" },
{ "nosSymbols": -11, "mode": "major", "keyName": "Abb major" },
{ "nosSymbols": 0, "mode": "minor", "keyName": "A minor" },
{ "nosSymbols": 1, "mode": "minor", "keyName": "E minor" },
{ "nosSymbols": 2, "mode": "minor", "keyName": "B minor" },
{ "nosSymbols": 3, "mode": "minor", "keyName": "F# minor" },
{ "nosSymbols": 4, "mode": "minor", "keyName": "C# minor" },
{ "nosSymbols": 5, "mode": "minor", "keyName": "G# minor" },
{ "nosSymbols": 6, "mode": "minor", "keyName": "D# minor" },
{ "nosSymbols": 7, "mode": "minor", "keyName": "A# minor" },
{ "nosSymbols": 8, "mode": "minor", "keyName": "E# minor" },
{ "nosSymbols": 9, "mode": "minor", "keyName": "B# minor" },
{ "nosSymbols": 10, "mode": "minor", "keyName": "F## minor" },
{ "nosSymbols": 11, "mode": "minor", "keyName": "C## minor" },
{ "nosSymbols": -1, "mode": "minor", "keyName": "D minor" },
{ "nosSymbols": -2, "mode": "minor", "keyName": "G minor" },
{ "nosSymbols": -3, "mode": "minor", "keyName": "C minor" },
{ "nosSymbols": -4, "mode": "minor", "keyName": "F minor" },
{ "nosSymbols": -5, "mode": "minor", "keyName": "Bb minor" },
{ "nosSymbols": -6, "mode": "minor", "keyName": "Eb minor" },
{ "nosSymbols": -7, "mode": "minor", "keyName": "Ab minor" },
{ "nosSymbols": -8, "mode": "minor", "keyName": "Db minor" },
{ "nosSymbols": -9, "mode": "minor", "keyName": "Gb minor" },
{ "nosSymbols": -10, "mode": "minor", "keyName": "Cb minor" },
{ "nosSymbols": -11, "mode": "minor", "keyName": "Fb minor" },
{ "nosSymbols": 0, "mode": "ionian", "keyName": "C ionian" },
{ "nosSymbols": 1, "mode": "ionian", "keyName": "G ionian" },
{ "nosSymbols": 2, "mode": "ionian", "keyName": "D ionian" },
{ "nosSymbols": 3, "mode": "ionian", "keyName": "A ionian" },
{ "nosSymbols": 4, "mode": "ionian", "keyName": "E ionian" },
{ "nosSymbols": 5, "mode": "ionian", "keyName": "B ionian" },
{ "nosSymbols": 6, "mode": "ionian", "keyName": "F# ionian" },
{ "nosSymbols": 7, "mode": "ionian", "keyName": "C# ionian" },
{ "nosSymbols": 8, "mode": "ionian", "keyName": "G# ionian" },
{ "nosSymbols": 9, "mode": "ionian", "keyName": "D# ionian" },
{ "nosSymbols": 10, "mode": "ionian", "keyName": "A# ionian" },
{ "nosSymbols": 11, "mode": "ionian", "keyName": "E# ionian" },
{ "nosSymbols": -1, "mode": "ionian", "keyName": "F ionian" },
{ "nosSymbols": -2, "mode": "ionian", "keyName": "Bb ionian" },
{ "nosSymbols": -3, "mode": "ionian", "keyName": "Eb ionian" },
{ "nosSymbols": -4, "mode": "ionian", "keyName": "Ab ionian" },
{ "nosSymbols": -5, "mode": "ionian", "keyName": "Db ionian" },
{ "nosSymbols": -6, "mode": "ionian", "keyName": "Gb ionian" },
{ "nosSymbols": -7, "mode": "ionian", "keyName": "Cb ionian" },
{ "nosSymbols": -8, "mode": "ionian", "keyName": "Fb ionian" },
{ "nosSymbols": -9, "mode": "ionian", "keyName": "Bbb ionian" },
{ "nosSymbols": -10, "mode": "ionian", "keyName": "Ebb ionian" },
{ "nosSymbols": -11, "mode": "ionian", "keyName": "Abb ionian" },
{ "nosSymbols": 0, "mode": "dorian", "keyName": "D dorian" },
{ "nosSymbols": 1, "mode": "dorian", "keyName": "A dorian" },
{ "nosSymbols": 2, "mode": "dorian", "keyName": "E dorian" },
{ "nosSymbols": 3, "mode": "dorian", "keyName": "B dorian" },
{ "nosSymbols": 4, "mode": "dorian", "keyName": "F# dorian" },
{ "nosSymbols": 5, "mode": "dorian", "keyName": "C# dorian" },
{ "nosSymbols": 6, "mode": "dorian", "keyName": "G# dorian" },
{ "nosSymbols": 7, "mode": "dorian", "keyName": "D# dorian" },
{ "nosSymbols": 8, "mode": "dorian", "keyName": "A# dorian" },
{ "nosSymbols": 9, "mode": "dorian", "keyName": "E# dorian" },
{ "nosSymbols": 10, "mode": "dorian", "keyName": "B# dorian" },
{ "nosSymbols": 11, "mode": "dorian", "keyName": "F## dorian" },
{ "nosSymbols": -1, "mode": "dorian", "keyName": "G dorian" },
{ "nosSymbols": -2, "mode": "dorian", "keyName": "C dorian" },
{ "nosSymbols": -3, "mode": "dorian", "keyName": "F dorian" },
{ "nosSymbols": -4, "mode": "dorian", "keyName": "Bb dorian" },
{ "nosSymbols": -5, "mode": "dorian", "keyName": "Eb dorian" },
{ "nosSymbols": -6, "mode": "dorian", "keyName": "Ab dorian" },
{ "nosSymbols": -7, "mode": "dorian", "keyName": "Db dorian" },
{ "nosSymbols": -8, "mode": "dorian", "keyName": "Gb dorian" },
{ "nosSymbols": -9, "mode": "dorian", "keyName": "Cb dorian" },
{ "nosSymbols": -10, "mode": "dorian", "keyName": "Fb dorian" },
{ "nosSymbols": -11, "mode": "dorian", "keyName": "Bbb dorian" },
{ "nosSymbols": 0, "mode": "phrygian", "keyName": "E phrygian" },
{ "nosSymbols": 1, "mode": "phrygian", "keyName": "B phrygian" },
{ "nosSymbols": 2, "mode": "phrygian", "keyName": "F# phrygian" },
{ "nosSymbols": 3, "mode": "phrygian", "keyName": "C# phrygian" },
{ "nosSymbols": 4, "mode": "phrygian", "keyName": "G# phrygian" },
{ "nosSymbols": 5, "mode": "phrygian", "keyName": "D# phrygian" },
{ "nosSymbols": 6, "mode": "phrygian", "keyName": "A# phrygian" },
{ "nosSymbols": 7, "mode": "phrygian", "keyName": "E# phrygian" },
{ "nosSymbols": 8, "mode": "phrygian", "keyName": "B# phrygian" },
{ "nosSymbols": 9, "mode": "phrygian", "keyName": "F## phrygian" },
{ "nosSymbols": 10, "mode": "phrygian", "keyName": "C## phrygian" },
{ "nosSymbols": 11, "mode": "phrygian", "keyName": "G## phrygian" },
{ "nosSymbols": -1, "mode": "phrygian", "keyName": "A phrygian" },
{ "nosSymbols": -2, "mode": "phrygian", "keyName": "D phrygian" },
{ "nosSymbols": -3, "mode": "phrygian", "keyName": "G phrygian" },
{ "nosSymbols": -4, "mode": "phrygian", "keyName": "C phrygian" },
{ "nosSymbols": -5, "mode": "phrygian", "keyName": "F phrygian" },
{ "nosSymbols": -6, "mode": "phrygian", "keyName": "Bb phrygian" },
{ "nosSymbols": -7, "mode": "phrygian", "keyName": "Eb phrygian" },
{ "nosSymbols": -8, "mode": "phrygian", "keyName": "Ab phrygian" },
{ "nosSymbols": -9, "mode": "phrygian", "keyName": "Db phrygian" },
{ "nosSymbols": -10, "mode": "phrygian", "keyName": "Gb phrygian" },
{ "nosSymbols": -11, "mode": "phrygian", "keyName": "Cb phrygian" },
{ "nosSymbols": 0, "mode": "lydian", "keyName": "F lydian" },
{ "nosSymbols": 1, "mode": "lydian", "keyName": "C lydian" },
{ "nosSymbols": 2, "mode": "lydian", "keyName": "G lydian" },
{ "nosSymbols": 3, "mode": "lydian", "keyName": "D lydian" },
{ "nosSymbols": 4, "mode": "lydian", "keyName": "A lydian" },
{ "nosSymbols": 5, "mode": "lydian", "keyName": "E lydian" },
{ "nosSymbols": 6, "mode": "lydian", "keyName": "B lydian" },
{ "nosSymbols": 7, "mode": "lydian", "keyName": "F# lydian" },
{ "nosSymbols": 8, "mode": "lydian", "keyName": "C# lydian" },
{ "nosSymbols": 9, "mode": "lydian", "keyName": "G# lydian" },
{ "nosSymbols": 10, "mode": "lydian", "keyName": "D# lydian" },
{ "nosSymbols": 11, "mode": "lydian", "keyName": "A# lydian" },
{ "nosSymbols": -1, "mode": "lydian", "keyName": "Bb lydian" },
{ "nosSymbols": -2, "mode": "lydian", "keyName": "Eb lydian" },
{ "nosSymbols": -3, "mode": "lydian", "keyName": "Ab lydian" },
{ "nosSymbols": -4, "mode": "lydian", "keyName": "Db lydian" },
{ "nosSymbols": -5, "mode": "lydian", "keyName": "Gb lydian" },
{ "nosSymbols": -6, "mode": "lydian", "keyName": "Cb lydian" },
{ "nosSymbols": -7, "mode": "lydian", "keyName": "Fb lydian" },
{ "nosSymbols": -8, "mode": "lydian", "keyName": "Bbb lydian" },
{ "nosSymbols": -9, "mode": "lydian", "keyName": "Ebb lydian" },
{ "nosSymbols": -10, "mode": "lydian", "keyName": "Abb lydian" },
{ "nosSymbols": -11, "mode": "lydian", "keyName": "Dbb lydian" },
{ "nosSymbols": 0, "mode": "mixolydian", "keyName": "G mixolydian" },
{ "nosSymbols": 1, "mode": "mixolydian", "keyName": "D mixolydian" },
{ "nosSymbols": 2, "mode": "mixolydian", "keyName": "A mixolydian" },
{ "nosSymbols": 3, "mode": "mixolydian", "keyName": "E mixolydian" },
{ "nosSymbols": 4, "mode": "mixolydian", "keyName": "B mixolydian" },
{ "nosSymbols": 5, "mode": "mixolydian", "keyName": "F# mixolydian" },
{ "nosSymbols": 6, "mode": "mixolydian", "keyName": "C# mixolydian" },
{ "nosSymbols": 7, "mode": "mixolydian", "keyName": "G# mixolydian" },
{ "nosSymbols": 8, "mode": "mixolydian", "keyName": "D# mixolydian" },
{ "nosSymbols": 9, "mode": "mixolydian", "keyName": "A# mixolydian" },
{ "nosSymbols": 10, "mode": "mixolydian", "keyName": "E# mixolydian" },
{ "nosSymbols": 11, "mode": "mixolydian", "keyName": "B# mixolydian" },
{ "nosSymbols": -1, "mode": "mixolydian", "keyName": "C mixolydian" },
{ "nosSymbols": -2, "mode": "mixolydian", "keyName": "F mixolydian" },
{ "nosSymbols": -3, "mode": "mixolydian", "keyName": "Bb mixolydian" },
{ "nosSymbols": -4, "mode": "mixolydian", "keyName": "Eb mixolydian" },
{ "nosSymbols": -5, "mode": "mixolydian", "keyName": "Ab mixolydian" },
{ "nosSymbols": -6, "mode": "mixolydian", "keyName": "Db mixolydian" },
{ "nosSymbols": -7, "mode": "mixolydian", "keyName": "Gb mixolydian" },
{ "nosSymbols": -8, "mode": "mixolydian", "keyName": "Cb mixolydian" },
{ "nosSymbols": -9, "mode": "mixolydian", "keyName": "Fb mixolydian" },
{ "nosSymbols": -10, "mode": "mixolydian", "keyName": "Bbb mixolydian" },
{ "nosSymbols": -11, "mode": "mixolydian", "keyName": "Ebb mixolydian" },
{ "nosSymbols": 0, "mode": "aeolian", "keyName": "A aeolian" },
{ "nosSymbols": 1, "mode": "aeolian", "keyName": "E aeolian" },
{ "nosSymbols": 2, "mode": "aeolian", "keyName": "B aeolian" },
{ "nosSymbols": 3, "mode": "aeolian", "keyName": "F# aeolian" },
{ "nosSymbols": 4, "mode": "aeolian", "keyName": "C# aeolian" },
{ "nosSymbols": 5, "mode": "aeolian", "keyName": "G# aeolian" },
{ "nosSymbols": 6, "mode": "aeolian", "keyName": "D# aeolian" },
{ "nosSymbols": 7, "mode": "aeolian", "keyName": "A# aeolian" },
{ "nosSymbols": 8, "mode": "aeolian", "keyName": "E# aeolian" },
{ "nosSymbols": 9, "mode": "aeolian", "keyName": "B# aeolian" },
{ "nosSymbols": 10, "mode": "aeolian", "keyName": "F## aeolian" },
{ "nosSymbols": 11, "mode": "aeolian", "keyName": "C## aeolian" },
{ "nosSymbols": -1, "mode": "aeolian", "keyName": "D aeolian" },
{ "nosSymbols": -2, "mode": "aeolian", "keyName": "G aeolian" },
{ "nosSymbols": -3, "mode": "aeolian", "keyName": "C aeolian" },
{ "nosSymbols": -4, "mode": "aeolian", "keyName": "F aeolian" },
{ "nosSymbols": -5, "mode": "aeolian", "keyName": "Bb aeolian" },
{ "nosSymbols": -6, "mode": "aeolian", "keyName": "Eb aeolian" },
{ "nosSymbols": -7, "mode": "aeolian", "keyName": "Ab aeolian" },
{ "nosSymbols": -8, "mode": "aeolian", "keyName": "Db aeolian" },
{ "nosSymbols": -9, "mode": "aeolian", "keyName": "Gb aeolian" },
{ "nosSymbols": -10, "mode": "aeolian", "keyName": "Cb aeolian" },
{ "nosSymbols": -11, "mode": "aeolian", "keyName": "Fb aeolian" },
{ "nosSymbols": 0, "mode": "locrian", "keyName": "B locrian" },
{ "nosSymbols": 1, "mode": "locrian", "keyName": "F# locrian" },
{ "nosSymbols": 2, "mode": "locrian", "keyName": "C# locrian" },
{ "nosSymbols": 3, "mode": "locrian", "keyName": "G# locrian" },
{ "nosSymbols": 4, "mode": "locrian", "keyName": "D# locrian" },
{ "nosSymbols": 5, "mode": "locrian", "keyName": "A# locrian" },
{ "nosSymbols": 6, "mode": "locrian", "keyName": "E## locrian" },
{ "nosSymbols": 7, "mode": "locrian", "keyName": "B## locrian" },
{ "nosSymbols": 8, "mode": "locrian", "keyName": "F## locrian" },
{ "nosSymbols": 9, "mode": "locrian", "keyName": "C## locrian" },
{ "nosSymbols": 10, "mode": "locrian", "keyName": "G## locrian" },
{ "nosSymbols": 11, "mode": "locrian", "keyName": "D## locrian" },
{ "nosSymbols": -1, "mode": "locrian", "keyName": "E locrian" },
{ "nosSymbols": -2, "mode": "locrian", "keyName": "A locrian" },
{ "nosSymbols": -3, "mode": "locrian", "keyName": "D locrian" },
{ "nosSymbols": -4, "mode": "locrian", "keyName": "G locrian" },
{ "nosSymbols": -5, "mode": "locrian", "keyName": "C locrian" },
{ "nosSymbols": -6, "mode": "locrian", "keyName": "F locrian" },
{ "nosSymbols": -7, "mode": "locrian", "keyName": "Bb locrian" },
{ "nosSymbols": -8, "mode": "locrian", "keyName": "Eb locrian" },
{ "nosSymbols": -9, "mode": "locrian", "keyName": "Ab locrian" },
{ "nosSymbols": -10, "mode": "locrian", "keyName": "Db locrian" },
{ "nosSymbols": -11, "mode": "locrian", "keyName": "Gb locrian"}
];
export default function nos_symbols_and_mode2key_name(nos_symbols, mode){
// Tom Collins 19/2/2015.
// In
// nos_symbols Integer mandatory
// mode String mandatory
// Out String
// This function takes the number of symbols in a key signature and a string
// specifying the mode, and converts these pieces of information to a string
// naming the key signature. For instance, -2 symbols means 2 flats, and
// aeolian mode would give G aeolian.
var i = 0;
while (i < keysLookup.length){
if (keysLookup[i].nosSymbols == nos_symbols &&
keysLookup[i].mode == mode){
var key_name = keysLookup[i].keyName;
i = keysLookup.length - 1;
}
i++;
}
if (key_name == undefined){
return "not specified";
}
else{
return key_name;
}
}