From 6dc2f6f616dea520a6b6c52aec5a7308928d7d5b Mon Sep 17 00:00:00 2001 From: Fuwn Date: Mon, 6 Mar 2023 23:18:13 +0000 Subject: feat: core features --- src/notes.rs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/notes.rs (limited to 'src/notes.rs') diff --git a/src/notes.rs b/src/notes.rs new file mode 100644 index 0000000..7390dcc --- /dev/null +++ b/src/notes.rs @@ -0,0 +1,37 @@ +// This file is part of Guitar . +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// Copyright (C) 2022-2022 Fuwn +// SPDX-License-Identifier: GPL-3.0-only + +use std::collections::HashMap; + +use once_cell::sync::Lazy; + +pub const NOTES: [&str; 12] = [ + "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B", +]; + +pub static NOTES_OFFSET: Lazy> = Lazy::new(|| { + let mut notes = HashMap::new(); + let mut i = -9; + + for note in NOTES { + notes.insert(note.to_string(), i); + + i += 1; + } + + notes +}); -- cgit v1.2.3