From e34f8dbf1ee7b845bf48a78d6f5148034b455885 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 10 Nov 2016 04:54:42 +0100 Subject: [PATCH] don't ship fan-out instrument lua script (but keep it as example) --- ...t_instrument.lua => _fan_out_instrument.lua} | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) rename scripts/{fan_out_instrument.lua => _fan_out_instrument.lua} (77%) diff --git a/scripts/fan_out_instrument.lua b/scripts/_fan_out_instrument.lua similarity index 77% rename from scripts/fan_out_instrument.lua rename to scripts/_fan_out_instrument.lua index a2561cb428..3fdf4ef907 100644 --- a/scripts/fan_out_instrument.lua +++ b/scripts/_fan_out_instrument.lua @@ -17,13 +17,13 @@ function factory () return function () for r in sel.tracks:routelist ():iter () do local proc = r:the_instrument ():to_insert() if proc:isnil () then - print ("Track", r:name(), "does not have an instrumenr plugin") + print ("Track", r:name(), "does not have an instrument plugin") goto next end local plugin = proc:plugin(0); if (r:n_outputs ():n_audio() ~= proc:output_streams():n_audio()) then - print ("Instrument outputs", proc:output_streams():n_audio(), "do not match track outputs", r:n_outputs ():n_audio()) + print ("Instrument ", proc:name(), "outputs", proc:output_streams():n_audio(), "do not match track outputs", r:n_outputs ():n_audio()) goto next end @@ -36,7 +36,12 @@ function factory () return function () targets[nn] = targets[nn] + 1 end - -- create busses + if #targets < 2 then + print ("Instrument ", proc:name(), "has only 1 output bus. Nothing to fan out.") + goto next + end + + -- create busses ; TODO retain order for t,c in pairs (targets) do local rt = Session:route_by_name (t) if rt:isnil () then @@ -44,13 +49,15 @@ function factory () return function () end end - r:output():disconnect_all(nil) - r:panner_shell():set_bypassed(true) + r:output():disconnect_all (nil) + r:panner_shell():set_bypassed (true) + -- connect the busses for i = 1, proc:output_streams():n_audio() do local pd = plugin:describe_io_port (ARDOUR.DataType("Audio"), false, i - 1) local nn = proc:name() .. " " .. pd.group_name; local rt = Session:route_by_name (nn) + assert (rt) local op = r:output():audio (i - 1) local ip = rt:input():audio (pd.group_channel)