]]
}
-function factory () return function ()
+function factory ()
+
+ local acoraida_monicas_last_used_recall_file
+
+ return function ()
local user_cfg = ARDOUR.user_config_directory(-1)
local local_path = ARDOUR.LuaAPI.build_filename(Session:path(), 'mixer_settings')
until proc:isnil()
end
- function new_plugin(name)
- for x = 0, 6 do
- local plugin = ARDOUR.LuaAPI.new_plugin(Session, name, x, "")
- if not(plugin:isnil()) then return plugin end
- end
+ function new_plugin(name, type)
+ local plugin = ARDOUR.LuaAPI.new_plugin(Session, name, type, "")
+ if not(plugin:isnil()) then return plugin end
end
function group_by_id(id)
proc = Session:processor_by_id(PBD.ID(v))
end
if proc:isnil() then
- for id, name in pairs(cache) do
+ for id, sub_tbl in pairs(cache) do
+ local name = sub_tbl[1]
+ local type = sub_tbl[2]
if v == id then
- proc = new_plugin(name)
+ proc = new_plugin(name, type)
for _, control in pairs(well_known) do
if name == control then
proc = get_processor_by_name(rt, control)
if soloed then rt:solo_control():set_value(1, 1) else rt:solo_control():set_value(0, 1) end
rt:gain_control():set_value(gc, 1)
rt:trim_control():set_value(tc, 1)
- if pc ~= false then rt:pan_azimuth_control():set_value(pc, 1) end
+ if pc ~= false and not(rt:is_master()) then rt:pan_azimuth_control():set_value(pc, 1) end
end
if plugin then
if string.find(label, "Assign") or string.find(label, "Enable") then --@ToDo: Check Plugin type == LADSPA or VST?
enable[k] = v --queue any assignments/enables for after the initial parameter recalling to duck the 'in-on-change' feature
end
+ print(string.format("%s (Port: %s) -> %s", label, k, v))
ARDOUR.LuaAPI.set_processor_param(proc, k, v)
end
{
type = "radio", col=0, colspan=20, align="left", key = "recall-dir", title = "", values =
{
- ['Pick from Global Settings'] = 1, ['Pick from Local Settings'] = 2
+ ['Pick from Global Settings'] = 1, ['Pick from Local Settings'] = 2, ['Last Used Recall File'] = 3,
},
- default = 'Pick from Local Settings'
+ default = 'Last Used Recall File'
},
{ type = "label", col=0, colspan=20, align="left", title = ""},
}
if not(rv) then return end
local dry_return = LuaDialog.Dialog("Recall Mixer Settings:", dry_run(false, rv['file'])):run()
if dry_return then
+ acoraida_monicas_last_used_recall_file = rv['file']
recall(false, rv['file'], dry_return)
else
return
if not(rv) then return end
local dry_return = LuaDialog.Dialog("Recall Mixer Settings:", dry_run(false, rv['file'])):run()
if dry_return then
+ acoraida_monicas_last_used_recall_file = rv['file']
recall(true, rv['file'], dry_return)
else
return
LuaDialog.MessageType.Info, LuaDialog.ButtonType.Close):run()
end
end
+
+ if gvld['recall-dir'] == 3 then
+ if acoraida_monicas_last_used_recall_file then
+ local dry_return = LuaDialog.Dialog("Recall Mixer Settings:", dry_run(false, acoraida_monicas_last_used_recall_file)):run()
+ if dry_return then
+ recall(true, acoraida_monicas_last_used_recall_file, dry_return)
+ else
+ return
+ end
+ else
+ LuaDialog.Message ("Script has no record of last used file:",
+ 'Please pick a recall file and then this option will be available',
+ LuaDialog.MessageType.Info, LuaDialog.ButtonType.Close):run()
+ end
+ end
end
end end