diff --git a/crates/tek_core/src/time.rs b/crates/tek_core/src/time.rs index eebf1071..4a89cfd7 100644 --- a/crates/tek_core/src/time.rs +++ b/crates/tek_core/src/time.rs @@ -228,18 +228,28 @@ pub trait MIDITime { let pulse = pulse as usize; let ppq = self.ppq().get() as usize; let (beats, pulses) = if ppq > 0 { (pulse / ppq, pulse % ppq) } else { (0, 0) }; - let bars = beats / 4; - let beats = beats % 4; - format!("{bars}.{beats}.{pulses:02}") + format!("{}.{}.{pulses:02}", beats / 4, beats % 4) + } + /// Format a number of pulses into Beat.Bar starting from 0 + #[inline] fn format_beats_0_short (&self, pulse: f64) -> String { + let pulse = pulse as usize; + let ppq = self.ppq().get() as usize; + let beats = if ppq > 0 { pulse / ppq } else { 0 }; + format!("{}.{}", beats / 4, beats % 4) } /// Format a number of pulses into Beat.Bar.Pulse starting from 1 #[inline] fn format_beats_1 (&self, pulse: f64) -> String { let pulse = pulse as usize; let ppq = self.ppq().get() as usize; let (beats, pulses) = if ppq > 0 { (pulse / ppq, pulse % ppq) } else { (0, 0) }; - let bars = beats / 4 + 1; - let beats = beats % 4 + 1; - format!("{bars}.{beats}.{pulses:02}") + format!("{}.{}.{pulses:02}", beats / 4 + 1, beats % 4 + 1) + } + /// Format a number of pulses into Beat.Bar.Pulse starting from 1 + #[inline] fn format_beats_1_short (&self, pulse: f64) -> String { + let pulse = pulse as usize; + let ppq = self.ppq().get() as usize; + let beats = if ppq > 0 { pulse / ppq } else { 0 }; + format!("{}.{}", beats / 4 + 1, beats % 4 + 1) } } impl MIDITime for Timebase { diff --git a/crates/tek_sequencer/src/arranger_tui.rs b/crates/tek_sequencer/src/arranger_tui.rs index 3d67ba95..b0a0a0fc 100644 --- a/crates/tek_sequencer/src/arranger_tui.rs +++ b/crates/tek_sequencer/src/arranger_tui.rs @@ -189,7 +189,7 @@ impl<'a> Content for VerticalArranger<'a, Tui> { let player = &track.player; let elapsed = if let Some((_, Some(_))) = player.phrase.as_ref() { let elapsed = player.pulses_since_start().unwrap(); - let elapsed = clock.timebase().format_beats_1(elapsed); + let elapsed = clock.timebase().format_beats_1_short(elapsed); format!("▎+{elapsed:>}") } else { String::from("▎") @@ -199,7 +199,7 @@ impl<'a> Content for VerticalArranger<'a, Tui> { let target = t.pulse().get(); let current = clock.instant.pulse().get(); if target > current { - let remaining = clock.timebase().format_beats_0(target - current); + let remaining = clock.timebase().format_beats_0_short(target - current); format!("▎-{remaining:>}") } else { String::new()