+ _send_state = false;
+ }
+
+ if (_session->transport_speed() != 1.0f) {
+ /* no varispeed support and nothing to do after this if stopped */
+ return;
+ }
+
+ const framepos_t end = _pos->frame + nframes;
+ double iter = _last_tick;
+
+ while (true) {
+ double clock_delta = one_ppqn_in_frames (llrint (iter));
+ double next_tick = iter + clock_delta;
+ frameoffset_t next_tick_offset = llrint (next_tick) - end;
+
+ DEBUG_TRACE (DEBUG::MidiClock,
+ string_compose ("Tick: iter: %1, last tick time: %2, next tick time: %3, offset: %4, cycle length: %5\n",
+ iter, _last_tick, next_tick, next_tick_offset, nframes));
+
+ if (next_tick_offset >= nframes) {