nframes_t
SMFSource::read_unlocked (MidiRingBuffer& dst, nframes_t start, nframes_t cnt, nframes_t stamp_offset) const
{
- //cerr << "SMF - read " << start << ", count=" << cnt << ", offset=" << stamp_offset << endl;
+ //cerr << "SMF " << name() << " read " << start << ", count=" << cnt << ", offset=" << stamp_offset << endl;
// 64 bits ought to be enough for anybody
uint64_t time = 0; // in SMF ticks, 1 tick per _ppqn
// FIXME: assumes tempo never changes after start
const double frames_per_beat = _session.tempo_map().tempo_at(_timeline_position).frames_per_beat(
- _session.engine().frame_rate());
+ _session.engine().frame_rate(),
+ _session.tempo_map().meter_at(_timeline_position));
const uint64_t start_ticks = (uint64_t)((start / frames_per_beat) * _ppqn);
assert(ev.time() >= _last_ev_time);
// FIXME: assumes tempo never changes after start
- const double frames_per_beat = _session.tempo_map().tempo_at
- (_timeline_position).frames_per_beat(_session.engine().frame_rate());
+ const double frames_per_beat = _session.tempo_map().tempo_at(_timeline_position).frames_per_beat(
+ _session.engine().frame_rate(),
+ _session.tempo_map().meter_at(_timeline_position));
const uint32_t delta_time = (uint32_t)((ev.time() - _last_ev_time) / frames_per_beat * _ppqn);
// FIXME: assumes tempo never changes after start
const double frames_per_beat = _session.tempo_map().tempo_at(_timeline_position).frames_per_beat(
- _session.engine().frame_rate());
+ _session.engine().frame_rate(),
+ _session.tempo_map().meter_at(_timeline_position));
uint32_t delta_t = 0;
int ret;