launch pt.6: short format

This commit is contained in:
🪞👃🪞 2024-11-01 22:20:59 +02:00
parent dc015fd5ef
commit 106e09121a
2 changed files with 18 additions and 8 deletions

View file

@ -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 {

View file

@ -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()