Quote:
Originally Posted by gmassieu
Could someone create please a script that select all items on selected track outside regions area?
|
This script should select all items that do not overlap any region:
Code:
-- Select all items on selected tracks that do not overlap any regions
tRegions = {}
for r = 0, reaper.CountProjectMarkers(0)-1 do
retval, isRegion, startTime, endTime = reaper.EnumProjectMarkers(r)
if isRegion then
tRegions[#tRegions+1] = {startTime = startTime, endTime = endTime}
end
end
reaper.SelectAllMediaItems(0, false)
for t = 0, reaper.CountSelectedTracks(0)-1 do
track = reaper.GetSelectedTrack(0, t)
if reaper.ValidatePtr2(0, track, "MediaTrack*") then
for i = 0, reaper.CountTrackMediaItems(track)-1 do
item = reaper.GetTrackMediaItem(track, i)
if reaper.ValidatePtr2(0, item, "MediaItem*") then
iStart = reaper.GetMediaItemInfo_Value(item, "D_POSITION")
iEnd = iStart + reaper.GetMediaItemInfo_Value(item, "D_LENGTH")
local foundOverlap
for r = 1, #tRegions do
if iEnd > tRegions[r].startTime and iStart < tRegions[r].endTime then
foundOverlap = true
break
end
end
if not foundOverlap then reaper.SetMediaItemSelected(item, true) end
end
end
end
end
reaper.UpdateArrange()