View Single Post
Old 02-11-2019, 05:10 PM   #1813
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

Quote:
Originally Posted by gmassieu View Post
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()
juliansader is offline   Reply With Quote