diff options
author | Robin Gareus <robin@gareus.org> | 2017-01-19 18:32:45 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-01-19 18:32:45 +0100 |
commit | dc11651694b97b5a4c7e3b57ca7cd5c019714166 (patch) | |
tree | 1f4e935b7c178ed20241fbe09fdad3f07b5ff628 /libs | |
parent | 92115dc3ea57ae7103da419c61257b98fd4dcf8d (diff) |
Relax monitor-section processor channel restriction
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/route.cc | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 7cb47c2076..4fa9eadff7 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -1663,13 +1663,21 @@ Route::try_configure_processors_unlocked (ChanCount in, ProcessorStreams* err) if (is_monitor()) { // restriction for Monitor Section Processors if (in.n_audio() != out.n_audio() || out.n_midi() > 0) { - /* do not allow to add/remove channels (for now) - * The Monitor follows the master-bus and has no panner (unpan) - * but do allow processors with midi-in to be added (e.g VSTs with control that - * will remain unconnected) + /* Note: The Monitor follows the master-bus and has no panner. + * + * The general idea is to only allow plugins that retain the channel-count + * and plugins with MIDI in (e.g VSTs with control that will remain unconnected). + * Then again 5.1 in, monitor stereo is a valid use-case. + * + * and worse: we only refuse adding plugins *here*. + * + * 1) stereo-master, stereo-mon, add a stereo-plugin, OK + * 2) change master-bus, add a channel + * 2a) monitor-secion follows + * 3) monitor processors fail to re-reconfigure (stereo plugin) + * 4) re-load session, monitor-processor remains unconfigured, crash. */ - DEBUG_TRACE (DEBUG::Processors, "Monitor: Channel configuration not allowed.\n"); - return list<pair<ChanCount, ChanCount> > (); + DEBUG_TRACE (DEBUG::Processors, "Monitor: Channel configuration change.\n"); } if (boost::dynamic_pointer_cast<InternalSend> (*p)) { // internal sends make no sense, only feedback |