From 393f095d95ab1bf6a22fe8953e733e2d67f355bd Mon Sep 17 00:00:00 2001 From: nick_m Date: Mon, 27 Feb 2017 01:28:59 +1100 Subject: fix TempoMap::frame_at_tempo(). --- libs/ardour/tempo.cc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'libs/ardour/tempo.cc') diff --git a/libs/ardour/tempo.cc b/libs/ardour/tempo.cc index e600382aa5..dbc0457f8a 100644 --- a/libs/ardour/tempo.cc +++ b/libs/ardour/tempo.cc @@ -1807,17 +1807,20 @@ TempoMap::minute_at_tempo_locked (const Metrics& metrics, const Tempo& tempo) co continue; } - const double t_bpm = t->note_types_per_minute(); - if (t_bpm == tempo_bpm) { + + if (t->note_types_per_minute() == tempo_bpm) { return t->minute(); } if (prev_t) { const double prev_t_bpm = prev_t->note_types_per_minute(); + const double prev_t_end_bpm = prev_t->end_note_types_per_minute(); + if (prev_t_bpm > tempo_bpm && prev_t_end_bpm < tempo_bpm + || prev_t_bpm < tempo_bpm && prev_t_end_bpm > tempo_bpm + || prev_t_end_bpm == tempo_bpm) { - if ((t_bpm > tempo_bpm && prev_t_bpm < tempo_bpm) || (t_bpm < tempo_bpm && prev_t_bpm > tempo_bpm)) { - return prev_t->minute_at_ntpm (prev_t->note_types_per_minute(), prev_t->pulse()); + return prev_t->minute_at_ntpm (tempo_bpm, t->pulse()); } } prev_t = t; -- cgit v1.2.3