From 6911702f21494ef67252e3706cdc079c26852257 Mon Sep 17 00:00:00 2001 From: "Julien \"_FrnchFrgg_\" RIVAUD" Date: Thu, 7 Jul 2016 00:46:53 +0200 Subject: Don't add audio outs to non-audio routes with strict I/O If a route has strict I/O then the main delivery follows the output of the last processor, but libardour ensures it has at least as many outputs as inputs in the master strip. A good consequence is that mono tracks get their expected panner. An akward side-effect is that MIDI-only routes (e.g. midi tracks or busses without a synth) get two audio channels that have no use (and indeed no panner is added because there is nothing to pan). Skip the completion of audio outs if there was no audio out to begin with. --- libs/ardour/route.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'libs/ardour/route.cc') diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 9660e78358..56cd04d84a 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -1636,8 +1636,9 @@ Route::try_configure_processors_unlocked (ChanCount in, ProcessorStreams* err) * Delivery::configure_io() will do the actual removal * by calling _output->ensure_io() */ - if (!is_master() && _session.master_out ()) { - /* ..but at least as many as there are master-inputs */ + if (!is_master() && _session.master_out () && in.n_audio() > 0) { + /* ..but at least as many as there are master-inputs, if + * the delivery is dealing with audio */ // XXX this may need special-casing for mixbus (master-outputs) // and should maybe be a preference anyway ?! out = ChanCount::max (in, _session.master_out ()->n_inputs ()); -- cgit v1.2.3