diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index d1303c86e5..05da9b9f64 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -3254,7 +3254,7 @@ 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 ()) { + if (!_direct_outs && is_track () && Profile->get_livetrax ()) { create_direct_outs (); } @@ -3563,6 +3563,10 @@ void Route::create_direct_outs () { /* caller must hold process lock */ + assert (!AudioEngine::instance()->process_lock().trylock()); + + /* direct outs are for tracks only */ + assert (is_track()); _direct_outs.reset (new Send (_session, pannable(), mute_master(), Delivery::DirectOuts, false)); _direct_outs->set_display_to_user (false);