From 491ed81e8318afa3b1bc1b7d3aec211df6e90a63 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Sat, 26 Oct 2024 22:01:48 +0300 Subject: [PATCH] display correct launch time --- crates/tek_core/src/time.rs | 4 ++-- crates/tek_sequencer/src/arranger_tui.rs | 10 ++++------ crates/tek_sequencer/src/sequencer.rs | 2 +- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/crates/tek_core/src/time.rs b/crates/tek_core/src/time.rs index c871803c..939029c8 100644 --- a/crates/tek_core/src/time.rs +++ b/crates/tek_core/src/time.rs @@ -164,13 +164,13 @@ pub trait UsecPosition { pub trait LaunchSync { fn sync (&self) -> U; fn set_sync (&self, sync: U); - #[inline] fn next_launch_sample (&self) -> U where U: TimeInteger, Self: PulsePosition { + #[inline] fn next_launch_pulse (&self) -> U where U: TimeInteger, Self: PulsePosition { let sync = self.sync(); let pulse = self.pulse(); if pulse % sync == U::from(0) { pulse } else { - (pulse / sync) * sync + U::from(1) + (pulse / sync + U::from(1)) * sync } } } diff --git a/crates/tek_sequencer/src/arranger_tui.rs b/crates/tek_sequencer/src/arranger_tui.rs index bb81efb4..e7b9ccb4 100644 --- a/crates/tek_sequencer/src/arranger_tui.rs +++ b/crates/tek_sequencer/src/arranger_tui.rs @@ -170,17 +170,15 @@ impl<'a> Content for VerticalArranger<'a, Tui> { let name = format!("▎{}", &name[0..max_w]); let player = &track.player; let clock = &player.clock; - let time1 = player.phrase.as_ref() + let elapsed = player.phrase.as_ref() .map(|_|player.frames_since_start()) .flatten() .map(|t|format!("▎{t:>}")) .unwrap_or(String::from("▎")); - let time2 = player.next_phrase.as_ref() - .map(|(t, _)|format!("▎{:>}", clock.format_beats( - clock.samples_to_pulse(t.load(Ordering::Relaxed) as f64) as usize - ))) + let until_next = player.next_phrase.as_ref() + .map(|(t, _)|format!("▎{:>}", clock.format_beats(t.load(Ordering::Relaxed)))) .unwrap_or(String::from("▎")); - col!(name, time1, time2) + col!(name, elapsed, until_next) .min_xy(w as u16, title_h) .bg(track.color) .push_x(offset - 1) diff --git a/crates/tek_sequencer/src/sequencer.rs b/crates/tek_sequencer/src/sequencer.rs index 16ad60a8..b678fe38 100644 --- a/crates/tek_sequencer/src/sequencer.rs +++ b/crates/tek_sequencer/src/sequencer.rs @@ -346,7 +346,7 @@ impl PhrasePlayer { pub fn toggle_record (&mut self) { self.recording = !self.recording; } pub fn toggle_overdub (&mut self) { self.overdub = !self.overdub; } pub fn enqueue_next (&mut self, phrase: Option<&Arc>>) { - let start = self.clock.next_launch_sample(); + let start = self.clock.next_launch_pulse(); self.next_phrase = Some((start.into(), phrase.map(|p|p.clone()))); self.reset = true; }