diff options
Diffstat (limited to 'libs/ardour/jack_midi_port.cc')
-rw-r--r-- | libs/ardour/jack_midi_port.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libs/ardour/jack_midi_port.cc b/libs/ardour/jack_midi_port.cc index 3c3f50c9bb..4b7b66c659 100644 --- a/libs/ardour/jack_midi_port.cc +++ b/libs/ardour/jack_midi_port.cc @@ -110,6 +110,7 @@ JackMidiPort::cycle_end (nframes_t nframes, nframes_t offset) for (MidiBuffer::iterator i = _buffer->begin(); i != _buffer->end(); ++i) { const Evoral::Event& ev = *i; + // event times should be frames, relative to cycle start assert(ev.time() >= 0); assert(ev.time() < nframes); @@ -133,7 +134,8 @@ JackMidiPort::flush_buffers (nframes_t nframes, nframes_t offset) const Evoral::Event& ev = *i; // event times should be frames, relative to cycle start assert(ev.time() >= 0); - assert(ev.time() < nframes); - jack_midi_event_write (jack_buffer, (jack_nframes_t) ev.time(), ev.buffer(), ev.size()); + assert(ev.time() < (nframes+offset)); + if (ev.time() >= offset) + jack_midi_event_write (jack_buffer, (jack_nframes_t) ev.time(), ev.buffer(), ev.size()); } } |