top of page
- Script Code -

dofile(reaper.AZ_GetLuaInitPath())

require("reaper_AZSTOKE_SILVER")


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


depthList = reaper.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,"")

       trackList = reaper.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

- Warm Up -

  • 削除を開始したい先頭トラックを選択

- Script Detail -

dofile(reaper.AZ_GetLuaInitPath())

require("reaper_AZSTOKE_SILVER")


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


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


depthList = reaper.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に代入


       trackList = reaper.AZ_GetTrackIdChildList(0,i)


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

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


       if allCount == 0 and retval == false then


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


          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が一致したら

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


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


           end

        end

    end

end

- API LINK -

Track

AZSTOKE_AllDeleteTopSelectTrackSearchNotUseMediaAndTrack

選択トラックを先頭にミュート削除と未使用トラックを削除

01_BRONZE_ss_edited.png
01_SILVER_edited_edited.png
03_GOLD_edited_edited.png
bottom of page