top of page

2

Track

AZSTOKE_AllDeleteTopSelectTrackSearchNotUseMediaAndTrack

Delete Mute and Unused Tracks Starting with Selected Tracks

RANK

package.cpath = package.cpath .. "; "..reaper.GetResourcePath() .."/UserPlugins/?.dll"

require("reaper_AZSTOKE_SILVER")


function Msg(param)

reaper.ShowConsoleMsg(tostring((param)).."\n")

end


_,allCount = reaper.AZ_GetMediaTypeCount(0,"")


--Mute Media Delete

for i = allCount-1,0,-1 do

_,mute = reaper.AZ_GetMediaMute(0,i)

if mute then

reaper.AZ_DeleteMedia(0,i)

end

end


retval,depthList = AZ_SILVER.AZ_GetTrackDepthList(0)

_,count = reaper.AZ_GetTrackCountSelect(0,0)

track,trackId = reaper.AZ_GetSelectedTrackFirstInfo(0)


for a = 0,1 do

for i = count-1,trackId,-1 do

_,allCount = reaper.AZ_GetTrackMediaTypeCount(0,i,"")

retval,trackList = AZ_SILVER.AZ_GetTrackIdChildList(0,i)

if allCount == 0 and retval == false then

retval = reaper.AZ_DeleteTrackIdSelect(0,i,0)

end

end

_,count = reaper.AZ_GetTrackCountSelect(0,0)

for i = 0,count-1 do

track = reaper.AZ_GetTrackItemSelect(0,i,0)

for e, value in pairs(depthList) do

if track == depthList[e].Track then

retval = reaper.AZ_SetTrackItemDepth(track,depthList[e].Depth)

end

end

end

end

package.cpath = package.cpath .. ";"..reaper.GetResourcePath() .."/UserPlugins/?.dll"

require("reaper_AZSTOKE_SILVER")


  • SILVERのAPIを利用可能にする

function Msg(param)

 reaper.ShowConsoleMsg(tostring((param)).."\n")

end


  • デバック用コンソール出力関数

_,allCount = reaper.AZ_GetMediaTypeCount(0,"")


  • 全てのメディアの数を出力してallCountに代入

--Mute Media Delete

for i = allCount-1,0,-1 do


  • allCountから0に向かって逆にループ再生

   _,mute = reaper.AZ_GetMediaMute(0,i)


  • 各メディアのミュート情報を取得

   if mute then


  • ミュートがTrue(ミュート状態)だった場合以下に続く

      reaper.AZ_DeleteMedia(0,i)


  • [i]のIndexメディアを削除

   end

end


retval,depthList = AZ_SILVER.AZ_GetTrackDepthList(0)


  • 全トラックの階層情報をリストで取得してdepthListに代入

_,count = reaper.AZ_GetTrackCountSelect(0,0)


  • 全トラックの数を取得してcountに代入

track,trackId = reaper.AZ_GetSelectedTrackFirstInfo(0)


  • すべての選択トラックの先頭トラックとトラックIDを取得してtrack/trackIdに代入

for a = 0,1 do 

  • 階層が変わって削除できていない場合を防ぐために2回ループ

    for i = count-1,trackId,-1 do


  • トラックの数から選択先頭トラックまでをループ

        _,allCount = reaper.AZ_GetTrackMediaTypeCount(0,i,"")


  • 指定トラックIDのメディアの数を取得してallCountに代入

       retval,trackList = AZ_SILVER.AZ_GetTrackIdChildList(0,i)


・指定トラックIDの子のトラックを取得してtrackListに代入

・子トラックがない場合はretvalにfalseを返す。


       if allCount == 0 and retval == false then


  • もしトラックにメディアが一つもなく子トラックがない場合

          retval = reaper.AZ_DeleteTrackIdSelect(0,i,0)


  • 指定トラックを削除する

       end

    end


    _,count = reaper.AZ_GetTrackCountSelect(0,0)


  • 削除したので再度残りのトラックの数を出力

    for i = 0,count-1 do


  • トラックの数ループ再生

        track = reaper.AZ_GetTrackItemSelect(0,i,0)


  • 指定IDのトラックを取得してtrackに代入

        for e, value in pairs(depthList) do


  • 階層リストの数分ループ

           if track == depthList[e].Track then


  • もしtrackと階層配列内のtrackが一致したら

              retval = reaper.AZ_SetTrackItemDepth(track,depthList[e].Depth)


  • そのトラックの階層を前の状態に戻す

           end

        end

    end

end

To use the API, you need to sign up for a plan.

Download the dedicated API

need to do it.

*SILVER is scheduled to be released in May.

  • Select the first track you want to start deleting

- Script Code -
- Script Image -
- Warm Up -
- Script Detail -
- API -

LUA

reaper.AZ_GetMediaTypeCount

reaper.AZ_GetMediaMute

reaper.AZ_DeleteMedia

AZ_SILVER.AZ_GetTrackDepthList

reaper.AZ_GetTrackCountSelect

reaper.AZ_GetSelectedTrackFirstInfo

reaper.AZ_GetTrackMediaTypeCount

AZ_SILVER.AZ_GetTrackIdChildList

reaper.AZ_DeleteTrackIdSelect

reaper.AZ_GetTrackItemSelect

reaper.AZ_SetTrackItemDepth

​ReaScript File Download 👇

* A dedicated API is required to run this

- Script Image -
bottom of page