- cerr << "MIDI event @ " << ev.time() << " skipped, not within range "
- << src_offset << " .. " << (nframes + src_offset) << endl;
+ /* Negative offset: shifting events from global/port
+ view of time (always relative to start of process
+ cycle) back to internal buffer view of time (always
+ relative to to start of current possibly split
+ cycle.
+
+ Shift first, then check it is within range of this
+ (split) cycle.
+ */
+ const framepos_t evtime = ev.time() + dst_offset;
+
+ if (evtime >= 0 && evtime < nframes) {
+ push_back (evtime, ev.size(), ev.buffer());
+ } else {
+ cerr << "\t!!!! MIDI event @ " << evtime << " (based on " << ev.time() << " + " << dst_offset << ") skipped, not within range 0 .. " << nframes << ": ";
+ }