diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc index cd7daaf185..7ed8030e6b 100644 --- a/libs/ardour/session_process.cc +++ b/libs/ardour/session_process.cc @@ -515,7 +515,9 @@ Session::follow_slave (pframes_t nframes) slave_speed = 0.0f; } - if (_slave->is_always_synced() || Config->get_timecode_source_is_synced()) { + if (_slave->is_always_synced() || + (Config->get_timecode_source_is_synced() && (dynamic_cast(_slave)) != 0) + ) { /* if the TC source is synced, then we assume that its speed is binary: 0.0 or 1.0 @@ -543,7 +545,9 @@ Session::follow_slave (pframes_t nframes) _slave_state, slave_transport_frame, slave_speed, this_delta, average_slave_delta)); - if (_slave_state == Running && !_slave->is_always_synced() && !Config->get_timecode_source_is_synced()) { + if (_slave_state == Running && !_slave->is_always_synced() && + !(Config->get_timecode_source_is_synced() && (dynamic_cast(_slave)) != 0) + ) { if (_transport_speed != 0.0f) {