if not(isdir(global_path)) then
global_ok, _, _ = os.execute('mkdir '.. global_path)
if global_ok == 0 then
- local default_file = ARDOUR.LuaAPI.build_filename(global_path, 'FactoryDefault-'..whoami()..'.lua')
- local file = io.open(default_file, "w")
- file:write("")
- file:close()
global_ok = true
end
else
if not(isdir(local_path)) then
local_ok, _, _ = os.execute('mkdir '.. local_path)
if local_ok == 0 then
- local stub_file = ARDOUR.LuaAPI.build_filename(local_path, 'stub')
- local file = io.open(stub_file, "w")
- file:write("")
- file:close()
local_ok = true
end
else
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
- end
-
function group_by_id(id)
local id = tonumber(id)
for g in Session:route_groups():iter() do
function empty_last_store(path) --empty current file from last run
local file = io.open(path, "w")
+ --file:write(string.format("instance = { whoami = '%s' }", whoami())
file:write("")
file:close()
end
local route_string = [[instance = {
route_id = %d,
route_name = '%s',
- gain_control = %f,
- trim_control = %f,
+ gain_control = %s,
+ trim_control = %s,
pan_control = %s,
muted = %s,
soloed = %s,
order = {%s},
cache = {%s},
group = %s,
- group_name = '%s'
+ group_name = '%s',
+ pi_order = %d
}]]
local group_string = [[instance = {
local processor_string = [[instance = {
plugin_id = %d,
+ type = %d,
display_name = '%s',
owned_by_route_name = '%s',
owned_by_route_id = %d,
local group_route_string = " [%d] = %s,"
local proc_order_string = " [%d] = %d,"
- local proc_cache_string = " [%d] = '%s',"
- local params_string = " [%d] = %f,"
+ local proc_cache_string = " [%d] = {'%s', %d},"
+ local params_string = " [%d] = %s,"
--ensure easy-to-read formatting doesn't make it through
local route_string = string.gsub(route_string, "[\n\t]", "")
local groups_to_write = {}
local i = 0
- local tracks = Session:get_routes()
+ local tracks = Session:get_stripables()
if selected then tracks = sel.tracks:routelist() end
end
for r in tracks:iter() do
- if r:is_monitor () or r:is_auditioner () then goto nextroute end -- skip special routes
-
+ if r:is_monitor () or r:is_auditioner () or not(r:to_vca():isnil()) then goto nextroute end -- skip special routes
+ r = r:to_route()
+ if r:isnil() then goto nextroute end
local order = ARDOUR.ProcessorList()
local x = 0
repeat
x = x + 1
until proc:isnil()
+
local route_group = route_group_interrogate(r)
if route_group then route_group = route_group:name() else route_group = "" end
local rid = r:to_stateful():id():to_s()
local order_nmbr = 0
local tmp_order_str, tmp_cache_str = "", ""
for p in order:iter() do
+ local ptype
+ if not(p:to_insert():isnil()) then
+ ptype = p:to_insert():plugin(0):get_info().type
+ else
+ ptype = 99
+ end
local pid = p:to_stateful():id():to_s()
if not(string.find(p:display_name(), "latcomp")) then
tmp_order_str = tmp_order_str .. string.format(proc_order_string, order_nmbr, pid)
- tmp_cache_str = tmp_cache_str .. string.format(proc_cache_string, pid, p:display_name())
+ tmp_cache_str = tmp_cache_str .. string.format(proc_cache_string, pid, p:display_name(), ptype)
end
order_nmbr = order_nmbr + 1
end
route_string,
rid,
r:name(),
- r:gain_control():get_value(),
- r:trim_control():get_value(),
+ ARDOUR.LuaAPI.ascii_dtostr(r:gain_control():get_value()),
+ ARDOUR.LuaAPI.ascii_dtostr(r:trim_control():get_value()),
tostring(pan),
r:muted(),
r:soloed(),
tmp_order_str,
tmp_cache_str,
route_groupid_interrogate(r),
- route_group
+ route_group,
+ r:presentation_info_ptr():order()
)
file = io.open(path, "a")
local active = proc:active()
local id = proc:to_stateful():id():to_s()
local plug = proc:to_insert ():plugin (0)
+ local ptype = proc:to_insert():plugin(0):get_info().type
local n = 0 -- count control-ports
for j = 0, plug:parameter_count () - 1 do -- iterate over all plugin parameters
if plug:parameter_is_control (j) then
local label = plug:parameter_label (j)
if plug:parameter_is_input (j) and label ~= "hidden" and label:sub (1,1) ~= "#" then
- local _, _, pd = ARDOUR.LuaAPI.plugin_automation(proc, n)
+ --local _, _, pd = ARDOUR.LuaAPI.plugin_automation(proc, n)
local val = ARDOUR.LuaAPI.get_processor_param(proc, j, true)
- --print(r:name(), "->", proc:display_name(), label, val)
- params[n] = val
+ print(r:name(), "->", proc:display_name(), label, val)
+ params[j] = val
end
n = n + 1
end
local tmp_params_str = ""
for k, v in pairs(params) do
- tmp_params_str = tmp_params_str .. string.format(params_string, k, v)
+ tmp_params_str = tmp_params_str .. string.format(params_string, k, ARDOUR.LuaAPI.ascii_dtostr(v))
end
local proc_str = string.format(
processor_string,
id,
+ ptype,
proc:display_name(),
r:name(),
r:to_stateful():id():to_s(),
end
local store_options = {
- { type = "label", col=0, colspan=1, align="left", title = "Settings name:" },
- { type = "entry", col=1, colspan=1, align="right" , key = "filename", default = Session:name(), title=""},
- { type = "label", col=0, colspan=1, align="left", title = "Selected Tracks Only:" },
- { type = "checkbox", col=1, colspan=1, align="right", key = "selected", default = false, title = ""},
- { type = "hseparator", title="", col=0, colspan = 3},
- { type = "label", col=0, colspan=1, align="left", title = "Store Settings:" },
+ { type = "label", col=0, colspan=1, align="right", title = "Name:" },
+ { type = "entry", col=1, colspan=1, align="left" , key = "filename", default = Session:name(), title=""},
+ { type = "label", col=0, colspan=1, align="right", title = "Location:" },
{
- type = "radio", col=1, colspan=3, align="right", key = "store-dir", title = "", values =
+ type = "radio", col=1, colspan=3, align="left", key = "store-dir", title = "", values =
{
- ['Global (accessible from any session)'] = 1, ['Locally (this session only)'] = 2
+ ['Global (accessible from any session)'] = 1, ['Local (this session only)'] = 2
},
default = 'Locally (this session only)'
},
+ { type = "hseparator", title="", col=0, colspan = 3},
+ { type = "label", col=0, colspan=1, align="right", title = "Selected Tracks Only:" },
+ { type = "checkbox", col=1, colspan=1, align="left", key = "selected", default = false, title = ""},
--{ type = "label", col=0, colspan=2, align="left", title = ''},
--{ type = "label", col=0, colspan=2, align="left", title = "Global Path: " .. global_path},
--{ type = "label", col=0, colspan=2, align="left", title = "Local Path: " .. local_path},