refactor core::time

This commit is contained in:
🪞👃🪞 2024-12-18 15:56:29 +01:00
parent 1261b07aa2
commit 61ab472e32
13 changed files with 38 additions and 48 deletions

View file

@ -1,5 +1,4 @@
mod phrase; pub(crate) use phrase::*;
mod clock; pub(crate) use clock::*;
mod scene; pub(crate) use scene::*;
mod track; pub(crate) use track::*;
mod sampler; pub(crate) use sampler::*;

View file

@ -4,10 +4,6 @@ pub(crate) mod engine; pub(crate) use engine::*;
pub(crate) mod focus; pub(crate) use focus::*;
pub(crate) mod input; pub(crate) use input::*;
pub(crate) mod output; pub(crate) use output::*;
pub(crate) mod perf; pub(crate) use perf::*;
pub(crate) mod pitch; pub(crate) use pitch::*;
pub(crate) mod space; pub(crate) use space::*;
pub(crate) mod time; pub(crate) use time::*;
pub use self::{
engine::Engine,

View file

@ -1,20 +0,0 @@
pub fn to_note_name (n: usize) -> &'static str {
if n > 127 {
panic!("to_note_name({n}): must be 0-127");
}
MIDI_NOTE_NAMES[n]
}
pub const MIDI_NOTE_NAMES: [&'static str;128] = [
"C0", "C#0", "D0", "D#0", "E0", "F0", "F#0", "G0", "G#0", "A0", "A#0", "B0",
"C1", "C#1", "D1", "D#1", "E1", "F1", "F#1", "G1", "G#1", "A1", "A#1", "B1",
"C2", "C#2", "D2", "D#2", "E2", "F2", "F#2", "G2", "G#2", "A2", "A#2", "B2",
"C3", "C#3", "D3", "D#3", "E3", "F3", "F#3", "G3", "G#3", "A3", "A#3", "B3",
"C4", "C#4", "D4", "D#4", "E4", "F4", "F#4", "G4", "G#4", "A4", "A#4", "B4",
"C5", "C#5", "D5", "D#5", "E5", "F5", "F#5", "G5", "G#5", "A5", "A#5", "B5",
"C6", "C#6", "D6", "D#6", "E6", "F6", "F#6", "G6", "G#6", "A6", "A#6", "B6",
"C7", "C#7", "D7", "D#7", "E7", "F7", "F#7", "G7", "G#7", "A7", "A#7", "B7",
"C8", "C#8", "D8", "D#8", "E8", "F8", "F#8", "G8", "G#8", "A8", "A#8", "B8",
"C9", "C#9", "D9", "D#9", "E9", "F9", "F#9", "G9", "G#9", "A9", "A#9", "B9",
"C10", "C#10", "D10", "D#10", "E10", "F10", "F#10", "G10",
];

View file

@ -1,3 +1,13 @@
pub mod core; pub(crate) use self::core::*;
pub mod layout; pub(crate) use self::layout::*;
pub mod api; pub(crate) use self::api::*;
pub mod tui; pub(crate) use self::tui::*;
pub mod edn; pub(crate) use self::edn::*;
pub mod jack; pub(crate) use self::jack::*;
pub mod midi; pub(crate) use self::midi::*;
pub mod time; pub(crate) use self::time::*;
pub mod space; pub(crate) use self::space::*;
/// Standard result type.
pub type Usually<T> = Result<T, Box<dyn Error>>;
@ -19,27 +29,6 @@ pub type Perhaps<T> = Result<Option<T>, Box<dyn Error>>;
($($name:ident)*) => { $(#[cfg(test)] mod $name;)* };
}
pub mod core;
pub(crate) use core::*;
pub mod layout; pub(crate)
use layout::*;
pub mod api;
pub(crate) use api::*;
pub mod tui;
pub(crate) use tui::*;
pub mod edn;
pub(crate) use edn::*;
pub mod jack;
pub(crate) use jack::*;
pub mod midi;
pub(crate) use midi::*;
testmod! { test }
pub(crate) use clap::{self, Parser};

View file

@ -34,3 +34,24 @@ pub fn update_keys (keys: &mut[bool;128], message: &MidiMessage) {
_ => {}
}
}
pub fn to_note_name (n: usize) -> &'static str {
if n > 127 {
panic!("to_note_name({n}): must be 0-127");
}
MIDI_NOTE_NAMES[n]
}
pub const MIDI_NOTE_NAMES: [&'static str;128] = [
"C0", "C#0", "D0", "D#0", "E0", "F0", "F#0", "G0", "G#0", "A0", "A#0", "B0",
"C1", "C#1", "D1", "D#1", "E1", "F1", "F#1", "G1", "G#1", "A1", "A#1", "B1",
"C2", "C#2", "D2", "D#2", "E2", "F2", "F#2", "G2", "G#2", "A2", "A#2", "B2",
"C3", "C#3", "D3", "D#3", "E3", "F3", "F#3", "G3", "G#3", "A3", "A#3", "B3",
"C4", "C#4", "D4", "D#4", "E4", "F4", "F#4", "G4", "G#4", "A4", "A#4", "B4",
"C5", "C#5", "D5", "D#5", "E5", "F5", "F#5", "G5", "G#5", "A5", "A#5", "B5",
"C6", "C#6", "D6", "D#6", "E6", "F6", "F#6", "G6", "G#6", "A6", "A#6", "B6",
"C7", "C#7", "D7", "D#7", "E7", "F7", "F#7", "G7", "G#7", "A7", "A#7", "B7",
"C8", "C#8", "D8", "D#8", "E8", "F8", "F#8", "G8", "G#8", "A8", "A#8", "B8",
"C9", "C#9", "D9", "D#9", "E9", "F9", "F#9", "G9", "G#9", "A9", "A#9", "B9",
"C10", "C#10", "D10", "D#10", "E10", "F10", "F#10", "G10",
];

View file

@ -1,3 +1,7 @@
pub(crate) mod perf; pub(crate) use perf::*;
pub(crate) mod clock; pub(crate) use clock::*;
pub(crate) use self::clock::ClockCommand;
use crate::*;
use std::iter::Iterator;

View file

@ -1,4 +1,5 @@
use crate::{*, api::ClockCommand::{Play, Pause}};
use crate::*;
use ClockCommand::{Play, Pause};
use KeyCode::{Tab, BackTab, Char};
use SequencerCommand::*;
use PhraseCommand::*;

View file

@ -1,5 +1,5 @@
use crate::*;
use crate::api::ClockCommand::{Play, Pause, SetBpm, SetQuant, SetSync};
use ClockCommand::{Play, Pause, SetBpm, SetQuant, SetSync};
use TransportCommand::{Focus, Clock};
use FocusCommand::{Next, Prev};
use KeyCode::{Enter, Left, Right, Char};