ignore midi on monitor-section and force strict-i/o
authorRobin Gareus <robin@gareus.org>
Sun, 12 Jun 2016 18:16:16 +0000 (20:16 +0200)
committerRobin Gareus <robin@gareus.org>
Sun, 12 Jun 2016 18:16:27 +0000 (20:16 +0200)
libs/ardour/route.cc
libs/ardour/session.cc

index 1600c3c9e88b7f7d2b88ded6469e6dd577ea633e..988f3251ef965f2abb88647fdb4fa3bf47f58c32 100644 (file)
@@ -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.
                                 *
index 88c958495ee3e38e627f442472690c4cea43124e..00055844031fa5c60e1cda4142029ff3e0e73853 100644 (file)
@@ -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);