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