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, | |
| }; | |