Track Automation
Access the selected parameters automation
... selected in the "Automation" tab in Renoise
local selected_track_parameter = renoise.song().selected_track_parameter
local selected_pattern_track = renoise.song().selected_pattern_track
-- is a parameter selected?.
if (selected_track_parameter) then
local selected_parameters_automation = selected_pattern_track:find_automation(
selected_track_parameter)
-- is there automation for the seelcted parameter?
if (not selected_parameters_automation) then
-- if not, create a new automation for the currently selected pattern/track
selected_parameters_automation = selected_pattern_track:create_automation(
selected_track_parameter)
end
---- do something with existing automation
-- iterate over all existing automation points
for _,point in pairs(selected_parameters_automation.points) do
print(("track automation: time=%s, value=%s"):format(
point.time, point.value))
end
-- clear all points
selected_parameters_automation.points = {}
-- insert a single new point at line 2
selected_parameters_automation:add_point_at(2, 0.5)
-- change its value when it already exists
selected_parameters_automation:add_point_at(2, 0.8)
-- remove it again (must exist here)
selected_parameters_automation:remove_point_at(2)
-- batch creation/insertion of points
local new_points = table.create()
for i=1,selected_parameters_automation.length do
new_points:insert {
time=i,
value=i/selected_parameters_automation.length
}
end
-- assign them (note that new_points must be sorted by time)
selected_parameters_automation.points = new_points
-- change the automations interpolation mode
selected_parameters_automation.playmode =
renoise.PatternTrackAutomation.PLAYMODE_CUBIC
end
Add menu entries for automation
-- shows up in the automation list on the left of the "Automation" tab
renoise.tool():add_menu_entry {
name = "Track Automation:Do Something With Automation",
invoke = function() do_something_with_current_automation() end,
active = function() return can_do_something_with_current_automation() end
}
-- shows up in the context menu of the automation !rulers!
renoise.tool():add_menu_entry {
name = "Track Automation List:Do Something With Automation",
invoke = function() do_something_with_current_automation() end,
active = function() return can_do_something_with_current_automation() end
}
function can_do_something_with_current_automation()
-- is a parameter selected and automation present?
return (renoise.song().selected_track_parameter ~= nil and
selected_pattern_track:find_automation(selected_track_parameter))
end
function do_something_with_current_automation()
-- do something with selected_parameters_automation
end