|
|
var { relativeMajor } = require("./relative-major"); |
|
|
|
|
|
var key1sharp = { acc: 'sharp', note: 'f' }; |
|
|
var key2sharp = { acc: 'sharp', note: 'c' }; |
|
|
var key3sharp = { acc: 'sharp', note: 'g' }; |
|
|
var key4sharp = { acc: 'sharp', note: 'd' }; |
|
|
var key5sharp = { acc: 'sharp', note: 'A' }; |
|
|
var key6sharp = { acc: 'sharp', note: 'e' }; |
|
|
var key7sharp = { acc: 'sharp', note: 'B' }; |
|
|
var key1flat = { acc: 'flat', note: 'B' }; |
|
|
var key2flat = { acc: 'flat', note: 'e' }; |
|
|
var key3flat = { acc: 'flat', note: 'A' }; |
|
|
var key4flat = { acc: 'flat', note: 'd' }; |
|
|
var key5flat = { acc: 'flat', note: 'G' }; |
|
|
var key6flat = { acc: 'flat', note: 'c' }; |
|
|
var key7flat = { acc: 'flat', note: 'F' }; |
|
|
|
|
|
var keys = { |
|
|
'C#': [key1sharp, key2sharp, key3sharp, key4sharp, key5sharp, key6sharp, key7sharp], |
|
|
'F#': [key1sharp, key2sharp, key3sharp, key4sharp, key5sharp, key6sharp], |
|
|
'B': [key1sharp, key2sharp, key3sharp, key4sharp, key5sharp], |
|
|
'E': [key1sharp, key2sharp, key3sharp, key4sharp], |
|
|
'A': [key1sharp, key2sharp, key3sharp], |
|
|
'D': [key1sharp, key2sharp], |
|
|
'G': [key1sharp], |
|
|
'C': [], |
|
|
'F': [key1flat], |
|
|
'Bb': [key1flat, key2flat], |
|
|
'Eb': [key1flat, key2flat, key3flat], |
|
|
'Cm': [key1flat, key2flat, key3flat], |
|
|
'Ab': [key1flat, key2flat, key3flat, key4flat], |
|
|
'Db': [key1flat, key2flat, key3flat, key4flat, key5flat], |
|
|
'Gb': [key1flat, key2flat, key3flat, key4flat, key5flat, key6flat], |
|
|
'Cb': [key1flat, key2flat, key3flat, key4flat, key5flat, key6flat, key7flat], |
|
|
|
|
|
|
|
|
|
|
|
'A#': [key1flat, key2flat], |
|
|
'B#': [], |
|
|
'D#': [key1flat, key2flat, key3flat], |
|
|
'E#': [key1flat], |
|
|
'G#': [key1flat, key2flat, key3flat, key4flat], |
|
|
'none': [], |
|
|
}; |
|
|
|
|
|
function keyAccidentals(key) { |
|
|
var newKey = keys[relativeMajor(key)] |
|
|
if (!newKey) |
|
|
return null |
|
|
return JSON.parse(JSON.stringify(newKey)) |
|
|
}; |
|
|
|
|
|
module.exports = keyAccidentals; |
|
|
|