diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index edd57251b2..3d148a9735 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -682,6 +682,9 @@ ARDOUR_UI::startup () exit (1); } + if (_session && nsm) { + _session->set_nsm_state( true ); + } use_config (); goto_editor_window (); diff --git a/gtk2_ardour/sfdb_ui.cc b/gtk2_ardour/sfdb_ui.cc index 3383cf3ff9..8916a53971 100644 --- a/gtk2_ardour/sfdb_ui.cc +++ b/gtk2_ardour/sfdb_ui.cc @@ -1339,8 +1339,9 @@ SoundFileOmega::reset_options () src_combo.set_sensitive (false); } - /* We must copy MIDI files or those from Freesound */ - bool const must_copy = have_a_midi_file || notebook.get_current_page() == 2; + /* We must copy MIDI files or those from Freesound + * or any file if we are under nsm control */ + bool const must_copy = _session->get_nsm_state() || have_a_midi_file || notebook.get_current_page() == 2; if (Config->get_only_copy_imported_files()) { diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index cb7f0ee015..f0a2fd1189 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -392,6 +392,8 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi void rename_state (std::string old_name, std::string new_name); void remove_pending_capture_state (); int rename (const std::string&); + bool get_nsm_state () const { return _under_nsm_control; } + void set_nsm_state (bool state) { _under_nsm_control = state; } PBD::Signal1 StateSaved; PBD::Signal0 StateReady; @@ -925,6 +927,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi uint32_t _solo_isolated_cnt; bool _writable; bool _was_seamless; + bool _under_nsm_control; void initialize_latencies (); void set_worst_io_latencies (); diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 75303251d8..0e03efa945 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -133,6 +133,7 @@ Session::Session (AudioEngine &eng, : _engine (eng) , _target_transport_speed (0.0) , _requested_return_frame (-1) + , _under_nsm_control (false) , _session_dir (new SessionDirectory(fullpath)) , state_tree (0) , _state_of_the_state (Clean)