(n_samples = 64 but Ardour sends midi-buffer with an event at 960)

some guesses as to why:
 - split cycle for looping (nominal: 1024, cycle split:64)
 - plugin uses _session.transport_frame() directly :(
   (not latency compensated offset or looped position)
 - "offset" is not taken into account for midi buffers
 - tempo/metric change (metric iterator is wrong after loop)
This commit is contained in:
Robin Gareus
2016-02-16 15:36:43 +01:00
parent c1910351a5
commit cbdae78511

View File

@@ -2155,6 +2155,7 @@ LV2Plugin::connect_and_run(BufferSet& bufs,
? *metric_i : NULL;
if (m != m_end && (!metric || metric->frame() > (*m).time())) {
const Evoral::MIDIEvent<framepos_t> ev(*m, false);
assert (ev.time() < nframes);
LV2_Evbuf_Iterator eend = lv2_evbuf_end(_ev_buffers[port_index]);
lv2_evbuf_write(&eend, ev.time(), 0, type, ev.size(), ev.buffer());
++m;