From 74ff3b22b8863d90947175c21dddd222bebadc56 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 22 Mar 2021 16:05:20 -0600 Subject: [PATCH] fix TempoPoint::superclock_at(Beats) --- libs/temporal/tempo.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libs/temporal/tempo.cc b/libs/temporal/tempo.cc index 91dcfcd6f5..28016c51f6 100644 --- a/libs/temporal/tempo.cc +++ b/libs/temporal/tempo.cc @@ -464,8 +464,10 @@ TempoPoint::superclock_at (Temporal::Beats const & qn) const if (!actually_ramped()) { /* not ramped, use linear */ + assert (qn >= _quarters); + const Beats delta = qn - _quarters; const superclock_t spqn = superclocks_per_quarter_note (); - return (spqn * qn.get_beats()) + int_div_round ((spqn * qn.get_ticks()), superclock_t (Temporal::ticks_per_beat)); + return _sclock + (spqn * delta.get_beats()) + int_div_round ((spqn * delta.get_ticks()), superclock_t (Temporal::ticks_per_beat)); } return _sclock + llrint (log1p (superclocks_per_quarter_note() * _omega * DoubleableBeats (qn - _quarters).to_double()) / _omega);