summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_source.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2016-10-25 04:14:14 +1100
committernick_m <mainsbridge@gmail.com>2016-10-25 04:14:14 +1100
commitce3ae4cdc97df0cd0a412fa527764b89d9731e69 (patch)
treef0cd3a8cb52b38f1e6313ceec83f31b0fa470463 /libs/ardour/midi_source.cc
parent20d02c4c68514e143f5ecc820cfd8bc7a8343c14 (diff)
remove unnecessary rounding from MidiSource::midi_read()
- we already have start_beats, so don't try to recalculate something similar for the position comparison.
Diffstat (limited to 'libs/ardour/midi_source.cc')
-rw-r--r--libs/ardour/midi_source.cc10
1 files changed, 4 insertions, 6 deletions
diff --git a/libs/ardour/midi_source.cc b/libs/ardour/midi_source.cc
index a770a2c290..a8491e06a1 100644
--- a/libs/ardour/midi_source.cc
+++ b/libs/ardour/midi_source.cc
@@ -199,8 +199,7 @@ MidiSource::midi_read (const Lock& lm,
const double start_beats) const
{
//BeatsFramesConverter converter(_session.tempo_map(), source_start);
- const int32_t tpb = Timecode::BBT_Time::ticks_per_beat;
- const double pulse_tick_res = floor ((pulse * 4.0 * tpb) + 0.5) / tpb;
+
const double start_qn = (pulse * 4.0) - start_beats;
DEBUG_TRACE (DEBUG::MidiSourceIO,
@@ -257,7 +256,7 @@ MidiSource::midi_read (const Lock& lm,
* some way (maybe keep an iterator per playlist).
*/
for (i = _model->begin(); i != _model->end(); ++i) {
- if (floor (((i->time().to_double() + start_qn) * tpb) + 0.5) / tpb >= pulse_tick_res) {
+ if (i->time().to_double() >= start_beats) {
break;
}
}
@@ -275,10 +274,9 @@ MidiSource::midi_read (const Lock& lm,
// Offset by source start to convert event time to session time
- framecnt_t time_frames = _session.tempo_map().frame_at_quarter_note (i->time().to_double() + start_qn);
-
- if (time_frames < (start + source_start)) {
+ framepos_t time_frames = _session.tempo_map().frame_at_quarter_note (i->time().to_double() + start_qn);
+ if (time_frames < start + source_start) {
/* event too early */
continue;