13
0

Round to bar correctly in TempoMap::exact_beat_at_frame_locked().

This commit is contained in:
nick_m 2016-08-24 03:23:04 +10:00
parent 0a975eba29
commit 9a66e1e2c6

View File

@ -3071,8 +3071,18 @@ TempoMap::exact_beat_at_frame_locked (const Metrics& metrics, const framepos_t&
Timecode::BBT_Time bbt = bbt_at_beat_locked (metrics, beat);
bbt.beats = 1;
bbt.ticks = 0;
beat = beat_at_bbt_locked (metrics, bbt);
const double prev_b = beat_at_bbt_locked (_metrics, bbt);
++bbt.bars;
const double next_b = beat_at_bbt_locked (_metrics, bbt);
if ((beat - prev_b) > (next_b - prev_b) / 2.0) {
beat = next_b;
} else {
beat = prev_b;
}
}
return beat;
}