maia-util
Version:
Utility math and music functions supporting various applications by Music Artificial Intelligence Algorithms, Inc.
35 lines (30 loc) • 14.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = nos_symbols_and_mode2key_name;
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" }];
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;
}
}