diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index c9d2424da4..d1303c86e5 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -3254,6 +3254,10 @@ Route::set_processor_state (const XMLNode& node, int version) ProcessorList old_list = _processors; // keep a copy { Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ()); + if (!_direct_outs && Profile->get_livetrax ()) { + create_direct_outs (); + } + Glib::Threads::RWLock::WriterLock lm (_processor_lock); /* re-assign _processors w/o process-lock. * if there's an IO-processor present in _processors but diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index 53a3e8aeb6..32af11e81d 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -403,6 +403,10 @@ Session::post_engine_init () /* Can't do this until the trigger input MIDI port is set up */ TriggerBox::static_init (*this); + if (Stateful::loading_state_version == 3001 && Profile->get_livetrax()) { + livetrax_auto_connect (); + } + set_clean (); /* Now, finally, we can [ask the butler to] fill the playback buffers */