diff options
author | Julien "_FrnchFrgg_" RIVAUD <frnchfrgg@free.fr> | 2016-07-07 00:46:53 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-07-07 01:33:42 +0200 |
commit | 6911702f21494ef67252e3706cdc079c26852257 (patch) | |
tree | 426295310172d6d411fef51abec4b9214e96f7a2 /libs/ardour/route.cc | |
parent | d7caa89b960cb5136302f687b404f5c7c081c185 (diff) |
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.
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r-- | libs/ardour/route.cc | 5 |
1 files changed, 3 insertions, 2 deletions
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 ()); |