diff options
author | Robin Gareus <robin@gareus.org> | 2014-01-21 18:20:17 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-01-22 15:30:43 +0100 |
commit | 1202cb57dd9b0a1aa098c5e6ca772bfeba245269 (patch) | |
tree | 764d06763b7cfcefb31a62888f9b2cd4e179aaf4 /libs/ardour/auditioner.cc | |
parent | 114997b7e65c4c4fdab7870d6bac411752f6875a (diff) |
prepare midi-audition synth plugin config, incl no plugin external synth
Diffstat (limited to 'libs/ardour/auditioner.cc')
-rw-r--r-- | libs/ardour/auditioner.cc | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/libs/ardour/auditioner.cc b/libs/ardour/auditioner.cc index 8b030750bd..15906eb4a1 100644 --- a/libs/ardour/auditioner.cc +++ b/libs/ardour/auditioner.cc @@ -67,9 +67,23 @@ Auditioner::init () } _output->add_port ("Midiaudition", this, DataType::MIDI); - boost::shared_ptr<Plugin> p = find_plugin (_session, "https://community.ardour.org/node/7596", ARDOUR::LV2); - assert(p); - asynth = boost::shared_ptr<Processor> (new PluginInsert (_session, p)); + + string plugin_id = Config->get_midi_audition_synth_uri(); + boost::shared_ptr<Plugin> p; + if (!plugin_id.empty()) { + p = find_plugin (_session, plugin_id, ARDOUR::LV2); + if (!p) { + p = find_plugin (_session, "https://community.ardour.org/node/7596", ARDOUR::LV2); + if (p) { + warning << _("Falling back to Reasonable Synth for Midi Audition") << endmsg; + } else { + warning << _("No synth for midi-audition found.") << endmsg; + } + } + } + if (p) { + asynth = boost::shared_ptr<Processor> (new PluginInsert (_session, p)); + } _output->changed.connect_same_thread (*this, boost::bind (&Auditioner::output_changed, this, _1, _2)); @@ -379,7 +393,7 @@ Auditioner::audition_region (boost::shared_ptr<Region> region) ProcessorStreams ps; - if (!_synth_added) { + if (!_synth_added && asynth) { int rv = add_processor_by_index(asynth, PreFader, &ps, true); if (rv) { error << _("Failed to load synth for MIDI-Audition.") << endmsg; @@ -551,7 +565,7 @@ Auditioner::input_streams () const return ChanCount (); } -MonitorState +MonitorState Auditioner::monitoring_state () const { return MonitoringDisk; |