web-tuner/notes.go

37 lines
696 B
Go

package main
var NoteToSemitone map[string]int
var SemitoneToNote map[int]string
func init() {
baseNotes := []string{"C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"}
NoteToSemitone = make(map[string]int, 26)
SemitoneToNote = make(map[int]string, 12)
for i, note := range baseNotes {
NoteToSemitone[note] = i
SemitoneToNote[i] = note
}
enharmonics := map[string]string{
"Cb": "B",
"B#": "C",
"Db": "C#",
"C##": "D",
"Eb": "D#",
"D##": "E",
"Fb": "E",
"E#": "F",
"Gb": "F#",
"F##": "G",
"Ab": "G#",
"G##": "A",
"Bb": "A#",
"A##": "B",
}
for enh, actual := range enharmonics {
NoteToSemitone[enh] = NoteToSemitone[actual]
}
}