Needed a higher resolution for one of my songs and instead of changing everything manually i’ve written a small script which does the work for me and which also stretches out the automation envelopes correctly. Might be useful for someone else too maybe. This script will take a while to process, so be sure to answer “no” if Renoise asks you to abort it. Only thing one needs to adjust afterwards are any effects which use LPC as timebase.
local rs = renoise.song() rs.transport.lpb = rs.transport.lpb * 3 for _, pattern in ipairs(rs.patterns) do local old_number_of_lines = pattern.number_of_lines pattern.number_of_lines = pattern.number_of_lines * 3 for _, track in ipairs(pattern.tracks) do for i = old_number_of_lines, 2, -1 do if not track.lines[i].is_empty then track.lines[i * 3 - 2]:copy_from(track.lines[i]) track.lines[i]:clear() end end for _, automation in ipairs(track.automation) do for _, point in ripairs(automation.points) do if point.time == old_number_of_lines then automation:add_point_at(point.time * 3, point.value) automation:remove_point_at(point.time) elseif point.time > 1 then automation:add_point_at(point.time * 3 - 2, point.value) automation:remove_point_at(point.time) end end end end end