问题详情
请问大神门,这段代码,怎么实现分别处理同一时间轴上的不同轨道的对象
,不相互干扰,我尝试遍历它所在轨道,但是失败了
fade = 0.2
-- Save item selection
function SaveSelectedItems (table)
for i = 0, reaper.CountSelectedMediaItems(0)-1 do
table[i+1] = reaper.GetSelectedMediaItem(0, i)
end
end
-- Main function
function main()
for i, item in ipairs(init_sel_items) do
local take = reaper.GetActiveTake( item )
if take and not reaper.TakeIsMIDI( take ) then
local item_pos = reaper.GetMediaItemInfo_Value(item, "D_POSITION")
local item_len = reaper.GetMediaItemInfo_Value(item, "D_LENGTH")
reaper.SetEditCurPos( item_pos, false, false)
reaper.Main_OnCommand(40375,0) -- Item navigation: Move cursor to next transient in items
local new_start_item = reaper.GetCursorPosition()
reaper.SetEditCurPos( item_pos + item_len, false, false)
reaper.Main_OnCommand(40376,0) -- Item navigation: Move cursor to previous transient in items
local new_end_item = reaper.GetCursorPosition()
reaper.BR_SetItemEdges( item, new_start_item -fade, new_end_item+fade )
end
end
end
count_sel_items = reaper.CountSelectedMediaItems(0)
if count_sel_items > 0 then
reaper.PreventUIRefresh(1)
reaper.Undo_BeginBlock()
init_sel_items = {}
SaveSelectedItems(init_sel_items)
group_state = reaper.GetToggleCommandState(1156)
if group_state == 1 then
reaper.Main_OnCommand(1156,0)
end
cur_pos = reaper.GetCursorPosition()
main()
if group_state == 1 then
reaper.Main_OnCommand(1156,0)
end
reaper.SetEditCurPos( cur_pos, false, false)
reaper.Undo_EndBlock("Trim selected items at first and last transient", -1)
reaper.UpdateArrange()
reaper.PreventUIRefresh(-1)
end