diff --git a/crates/tek_core/src/time.rs b/crates/tek_core/src/time.rs index d26fb0b9..49763bab 100644 --- a/crates/tek_core/src/time.rs +++ b/crates/tek_core/src/time.rs @@ -103,7 +103,7 @@ pub trait PulsesPerQuaver { #[inline] fn usecs_to_pulse (&self, usec: U) -> U where U: TimeFloat, Self: BeatsPerMinute { - usec / self.pulse_per_usec() + usec * self.pulse_per_usec() } /// Convert a number of pulses to a sample number (SR- and BPM-dependent) #[inline] fn pulses_to_usec (&self, pulse: U) -> U diff --git a/crates/tek_sequencer/src/transport_snd.rs b/crates/tek_sequencer/src/transport_snd.rs index d568dd3c..aaa7a916 100644 --- a/crates/tek_sequencer/src/transport_snd.rs +++ b/crates/tek_sequencer/src/transport_snd.rs @@ -17,15 +17,10 @@ impl Audio for TransportToolbar { if *self.clock.playing.read().unwrap() == Some(TransportState::Stopped) { self.started = None; } - match self.started { - Some((_, usecs)) => { - let usec = current_usecs as usize - usecs; - let pulse = self.clock.usecs_to_pulse(usec as f64); - self.clock.set_usec(usec); - self.clock.set_pulse(pulse as usize); - }, - None => { self.clock.set_usec(0); } - }; + self.clock.instant.update_from_usec(match self.started { + Some((_, usecs)) => current_usecs as usize - usecs, + None => 0 + }); Control::Continue } }