diff --git a/libs/ardour/ardour/ticker.h b/libs/ardour/ardour/ticker.h index 405cdaf627..f3fbb0c37d 100644 --- a/libs/ardour/ardour/ticker.h +++ b/libs/ardour/ardour/ticker.h @@ -47,7 +47,7 @@ private: ARDOUR::Session& _session; std::shared_ptr _midi_port; bool _rolling; - samplepos_t _next_tick; + double _next_tick; uint32_t _beat_pos; uint32_t _clock_cnt; samplepos_t _transport_pos; diff --git a/libs/ardour/ticker.cc b/libs/ardour/ticker.cc index 5fdb7bdf12..c2d27ee44e 100644 --- a/libs/ardour/ticker.cc +++ b/libs/ardour/ticker.cc @@ -219,7 +219,8 @@ double MidiClockTicker::one_ppqn_in_samples (samplepos_t transport_position) const { TempoPoint const & tempo (TempoMap::use()->metric_at (timepos_t (transport_position)).tempo()); - const double samples_per_quarter_note = superclock_to_samples (tempo.superclocks_per_note_type_at (timepos_t (transport_position)), _session.nominal_sample_rate()); + /* un-rounded superclock_to_samples (tempo.superclocks_per_note_type_at (timepos_t (transport_position)), _session.nominal_sample_rate()) */ + const double samples_per_quarter_note = tempo.superclocks_per_note_type_at (timepos_t (transport_position)) * _session.nominal_sample_rate() / (double)superclock_ticks_per_second (); return samples_per_quarter_note / 24.0; }