top of page

3

Track

AZSTOKE_AllTrackOrganize

選択トラックを先頭に削除/命名/配色を一連整理

RANK

os = reaper.GetOS()

if "Win" == string.match(os,"(Win)") then

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

else

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

end

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,trackCount = AZ_SILVER.AZ_GetTrackIdChildList(0,i)

       if allCount == 0 and trackCount == 0 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


retval,count = reaper.AZ_GetTrackCountSelect(0,1)


for i = 0,count-1 do

   retval,masterName = reaper.AZ_GetSelectedTrackIdName(0,i)

   retval,color = reaper.AZ_GetRandomColor()


   reaper.AZ_SetSelectedTrackIdColor(0,i,color)

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

   for e, value in pairs(trackList) do

       reaper.AZ_SetTrackItemColor(trackList[e],color)

       retval,num = reaper.AZ_FormatNumDigit(e,2)

       setName = masterName.."_"..num

       reaper.AZ_SetTrackItemName(trackList[e],setName)

   end


end

os = reaper.GetOS()

if "Win" == string.match(os,"(Win)") then

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

else

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

end

require("reaper_AZSTOKE_SILVER")


・SILVERAPIを利用可能にする


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に向けてForループ


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


・各メディアのミュートを検知


   if mute then


・ミュートだった場合


      reaper.AZ_DeleteMedia(0,i)


・メディアを削除対応


   end

end



retval,depthList = AZ_SILVER.AZ_GetTrackDepthList(0)


・全トラックの階層を取得してdepthList配列に代入


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


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


track,trackId = reaper.AZ_GetSelectedTrackFirstInfo(0)


・選択トラックの先頭トラックを取得してtrackとtrackIdに代入


for a = 0,1 do 


・以下処理を2回ループさせる


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


・トラックの数分0に向かってループ


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


・トラック内のメディア数を取得してallCountに代入


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


・トラックの子トラックをtrackListに代入 子トラックの数をtrackCountに代入


       if allCount == 0 and trackCount == 0 then


・メディアもなく、子トラックもない場合


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


・トラックを削除


       end

    end

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


・トラック削除後に再度トラック数を取得 countに代入


    for i = 0,count-1 do


・count分Forループ


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


・各IDのトラックアイテムを取得


        for e, value in pairs(depthList) do


・階層リスト分Forループ


           if track == depthList[e].Track then


・階層に入っているトラックと各IDのトラックを検知


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


・指定トラックの階層を設定


           end

        end

    end

end


retval,count = reaper.AZ_GetTrackCountSelect(0,1)


・トラックの数を出力してcountに代入


for i = 0,count-1 do


・count分Forループ


   retval,masterName = reaper.AZ_GetSelectedTrackIdName(0,i)


・選択トラックの名前を取得


   retval,color = reaper.AZ_GetRandomColor()


・ランダムのカラー値を取得


   reaper.AZ_SetSelectedTrackIdColor(0,i,color)


・選択トラックにカラーを設定


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


・選択トラックの子の配列を取得してtrackListに代入


   for e, value in pairs(trackList) do


・trackList分Forループ


       reaper.AZ_SetTrackItemColor(trackList[e],color)


・子のトラックアイテムにカラーを設定


       retval,num = reaper.AZ_FormatNumDigit(e,2)


・順列番号に桁の文字列を出力 01/02/03/04


       setName = masterName.."_"..num


・選択トラックの名前に桁番号を付与してsetNameに代入


       reaper.AZ_SetTrackItemName(trackList[e],setName)


・各子トラックに名前を設定


   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.

  • 変更したい親トラックを選択


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

LUA

​ReaScript File Download 👇

* A dedicated API is required to run this

- Script Image -
bottom of page