diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc index e83fb471c2..b82b9628f8 100644 --- a/libs/ardour/audioengine.cc +++ b/libs/ardour/audioengine.cc @@ -421,10 +421,13 @@ AudioEngine::process_callback (pframes_t nframes) } if (!_freewheeling || Freewheel.empty()) { - double engine_speed = tmm.pre_process_transport_masters (nframes, sample_time_at_cycle_start()); - engine_speed = _session->plan_master_strategy (nframes, tmm.get_current_speed_in_process_context(), tmm.get_current_position_in_process_context(), engine_speed); - Port::set_speed_ratio (engine_speed); - DEBUG_TRACE (DEBUG::Slave, string_compose ("transport master (current=%1) gives speed %2 (ports using %3)\n", tmm.current() ? tmm.current()->name() : string("[]"), engine_speed, Port::speed_ratio())); + /* catch_speed is the speed that we estimate we need to run at + to catch (or remain locked to) a transport master. + */ + double catch_speed = tmm.pre_process_transport_masters (nframes, sample_time_at_cycle_start()); + catch_speed = _session->plan_master_strategy (nframes, tmm.get_current_speed_in_process_context(), tmm.get_current_position_in_process_context(), catch_speed); + Port::set_speed_ratio (catch_speed); + DEBUG_TRACE (DEBUG::Slave, string_compose ("transport master (current=%1) gives speed %2 (ports using %3)\n", tmm.current() ? tmm.current()->name() : string("[]"), catch_speed, Port::speed_ratio())); #if 0 // USE FOR DEBUG ONLY /* use with Dummy backend, engine pulse and