这段代码,怎么实现分别处理同一时间轴上的不同轨道的对象

问题详情

2{KSOUT@NQIFJ@$83ERPVJ
请问大神门,这段代码,怎么实现分别处理同一时间轴上的不同轨道的对象
,不相互干扰,我尝试遍历它所在轨道,但是失败了

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

做过的尝试

这个脚本里面的代码应该只是遍历items本身,和轨道无关。

有办法让它实现吗?

建议去问一下chatgpt,然后参考它给的代码

问了,它叫我分别处理不同轨道。但是没弄成功,哈哈,感谢大神,我再研究研究

同时处理同时间轴上的两个item,目的让它们首尾对齐?

想试试让他们对齐到瞬态,这个修剪不能跨轨执行同一时间轴的对象,想试试看能不能解决

修剪功能,好像其他的大佬有类似脚本,可以参考他们的脚本。
加油。

这就是大佬们的,有这个bug,哈哈

脚本本身是可以执行多个音频块的,无论是同轨还是跨轨。

如果平行就不能正常处理了

X-Raym 大佬的?这个BUG 貌似很久了,你想改多参考参考其他大佬的吧

嗯,只能这样了

什么叫同一时间轴?
对象时间主要就是起点,终点,长度这几个参数。

这样不同轨道上,相同位置就会出错,时间轴AI说的,哈哈