summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-06-12 20:16:16 +0200
committerRobin Gareus <robin@gareus.org>2016-06-12 20:16:27 +0200
commit00caabf73583fa029601b7d4e9ccdb9b2da7925c (patch)
tree02665e6e57e18fa9ef350ed842c13172cfaac9a9 /libs/ardour
parent60b89849bd8a29408a7cdf12ef9554a7948b856c (diff)
ignore midi on monitor-section and force strict-i/o
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/route.cc4
-rw-r--r--libs/ardour/session.cc8
2 files changed, 8 insertions, 4 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 1600c3c9e8..988f3251ef 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -1619,8 +1619,8 @@ Route::try_configure_processors_unlocked (ChanCount in, ProcessorStreams* err)
if (boost::dynamic_pointer_cast<Delivery> (*p)
&& boost::dynamic_pointer_cast<Delivery> (*p)->role() == Delivery::Main
- && !(is_monitor() || is_auditioner())
- && ( _strict_io || Profile->get_mixbus ())) {
+ && !is_auditioner()
+ && (is_monitor() || _strict_io || Profile->get_mixbus ())) {
/* with strict I/O the panner + output are forced to
* follow the last processor's output.
*
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 88c958495e..0005584403 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -1314,8 +1314,12 @@ Session::reset_monitor_section ()
_master_out->output()->disconnect (this);
_monitor_out->output()->disconnect (this);
- _monitor_out->input()->ensure_io (_master_out->output()->n_ports(), false, this);
- _monitor_out->output()->ensure_io (_master_out->output()->n_ports(), false, this);
+ // monitor section follow master bus - except midi
+ ChanCount mon_chn (_master_out->output()->n_ports());
+ mon_chn.set_midi (0);
+
+ _monitor_out->input()->ensure_io (mon_chn, false, this);
+ _monitor_out->output()->ensure_io (mon_chn, false, this);
for (uint32_t n = 0; n < limit; ++n) {
boost::shared_ptr<AudioPort> p = _monitor_out->input()->ports().nth_audio_port (n);