use crate::math::{get_midi_note, note_to_frequency};
#[repr(u8)]
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum Note {
C,
CSharp,
D,
DSharp,
E,
F,
FSharp,
G,
GSharp,
A,
ASharp,
B
}
impl Note {
pub fn frequency(&self, octave:i32) -> f32 {
let midi_note = get_midi_note(octave, *self) ;
note_to_frequency(midi_note as f32)
}
}
impl Into<i32> for Note {
fn into(self) -> i32 {
self as i32
}
}
impl Into<f32> for Note {
fn into(self) -> f32 {
(self as u8) as f32
}
}