Spaces:
Sleeping
Sleeping
const PHONETS = "cdefgab"; | |
const PHONETS_ALIAS = { | |
h: "b", | |
}; | |
const phonetDifferToShift = differ => differ > 3 ? -1 : (differ < -3 ? 1 : 0); | |
const PHONET_VALUES = { | |
c: 0, d: 2, e: 4, f: 5, g: 7, a: 9, b: 11, | |
}; | |
const SHARP_ALTERS = [ | |
"is", "d", "s", "iss", "k", "sharp", | |
]; | |
const FLAT_ALTERS = [ | |
"es", "b", "f", "ess", "flat", | |
]; | |
// in Dutch, 'as', 'es' means a flat/e flat, that's not supported here | |
const DOUBLE_SHARP_ALTERS = [ | |
...SHARP_ALTERS.map(word => word + word), "x", | |
]; | |
const DOUBLE_FLAT_ALTERS = [ | |
...FLAT_ALTERS.map(word => word + word), "ses", | |
]; | |
const alterTablize = (list, value) => list.reduce((table, word) => ((table[word] = value), table), {}); | |
const ALTER_VALUES = { | |
...alterTablize(SHARP_ALTERS, 1), | |
...alterTablize(FLAT_ALTERS, -1), | |
...alterTablize(DOUBLE_SHARP_ALTERS, 2), | |
...alterTablize(DOUBLE_FLAT_ALTERS, -2), | |
}; | |
const FIFTH_PHONETS = "fcgdaeb"; | |
export { | |
PHONETS, | |
PHONETS_ALIAS, | |
phonetDifferToShift, | |
PHONET_VALUES, | |
ALTER_VALUES, | |
FIFTH_PHONETS, | |
}; | |