top of page
- Script Code -

dofile(reaper.AZ_GetLuaInitPath())

require("reaper_AZSTOKE_SILVER")


trackNameList = {"pl0000","pl1000","pl2000","pl3000","pl4000","pl5000"}

trackColorList = {33554304,33521664,25165824,16777471,21004543,20988032}



--Get Master Select Track 

masterTrack = reaper.AZ_GetTrackItemSelect(0,0,1)

masterName = reaper.AZ_GetTrackItemName(masterTrack)

masterDepth = reaper.AZ_GetTrackItemDepth(masterTrack)


for i, value in pairs(trackNameList) do

   if masterName == trackNameList[i] then

      reaper.AZ_SetTrackItemColor(masterTrack,trackColorList[i])

      masterColor = trackColorList[i]

   end

end


--Get Master Track Children

childList,masterChildCount = reaper.AZ_GetTrackItemChildList(masterTrack)


childInfoList = {}

for i, value in pairs(childList) do

    childInfoList[i] = {}

    childInfoList[i]["TrackName"]= reaper.AZ_GetTrackItemName(value)

    reaper.AZ_SetTrackItemColor(value,masterColor)

end


--delet trackNameList & trackBaseList create 

trCount = reaper.AZ_GetTrackCountSelect(0,0)

deletIDList = {}

idCount = 0


for i = 0,trCount-1 do

    name = reaper.AZ_GetTrackIdName(0,i)

    for i, value in pairs(trackNameList) do

        if name == value then

           idCount = idCount + 1

           deletIDList[idCount] = i

        end

    end

end


table.sort(deletIDList,function(a,b) return (a>b)end)


for i = 1,idCount do

    table.remove(trackNameList,deletIDList[i])

    table.remove(trackColorList,deletIDList[i])

end


--InsertTrack

for i, value in pairs(trackNameList) do

    count = reaper.AZ_GetTrackCountSelect(0,0)

    track = reaper.AZ_InsertTrackId(0,count)

    reaper.AZ_SetTrackItemName(track,value)

    reaper.AZ_SetTrackItemDepth(track,masterDepth)

    reaper.AZ_SetTrackItemColor(track,trackColorList[i])

   

    for e = 1,masterChildCount do

        childTrack = reaper.AZ_InsertChildTrack(track)

        reaper.AZ_SetTrackItemName(childTrack,childInfoList[e].TrackName)

        reaper.AZ_SetTrackItemColor(childTrack,trackColorList[i])

    end

end




- Warm Up -

ベースのトラック/子トラックを作成しておく

- Script Detail -

dofile(reaper.AZ_GetLuaInitPath())

require("reaper_AZSTOKE_SILVER")


・SilverのAPIを可能にする


trackNameList = {"pl0000","pl1000","pl2000","pl3000","pl4000","pl5000"}

trackColorList = {33554304,33521664,25165824,16777471,21004543,20988032}


・トラックのベース名と各色番号を設定して配列に代入


--Get Master Select Track 

masterTrack = reaper.AZ_GetTrackItemSelect(0,0,1)


・ベーストラックを取得してmasterTrackに代入


masterName = reaper.AZ_GetTrackItemName(masterTrack)


・トラックの名前を取得してmasterNameに代入


masterDepth = reaper.AZ_GetTrackItemDepth(masterTrack)



・トラックの階層を取得してmasterDepthに代入


for i, value in pairs(trackNameList) do


・trackNameList分Forループ


   if masterName == trackNameList[i] then


・masterNameと一致する場合以下を実行


      reaper.AZ_SetTrackItemColor(masterTrack,trackColorList[i])


・トラックの色を設定


      masterColor = trackColorList[i]


・masterColorにカラーを設定


   end

end


--Get Master Track Children

childList,masterChildCount = reaper.AZ_GetTrackItemChildList(masterTrack)


・masterTrackの子トラックを出力してchildListに配列代入


childInfoList = {}


・子トラックの各情報を登録する配列を用意


for i, value in pairs(childList) do


・childList分Forループ


    childInfoList[i] = {}


・子トラックのさらに情報分岐用に配列に配列の枠を用意


    childInfoList[i]["TrackName"]= reaper.AZ_GetTrackItemName(value)


・トラックの名前をchildInfoListに代入


    reaper.AZ_SetTrackItemColor(value,masterColor)


・masterColorを子トラックに同色設定


end


--delet trackNameList & trackBaseList create 

trCount = reaper.AZ_GetTrackCountSelect(0,0)


・トラックの数を取得


deletIDList = {}

idCount = 0


for i = 0,trCount-1 do

    name = reaper.AZ_GetTrackIdName(0,i)


・トラックIDごとに名前を取得


    for i, value in pairs(trackNameList) do


・trackNameListごとにForルー@う


        if name == value then


・nameとtrackNameListを検索して一致するか確認


           idCount = idCount + 1

           deletIDList[idCount] = i


・一致する場合、すでにあると判断されて削除リストにIDを入れる 


        end

    end

end


table.sort(deletIDList,function(a,b) return (a>b)end)


deletIDListを降順ソート化する



for i = 1,idCount do

    table.remove(trackNameList,deletIDList[i])

    table.remove(trackColorList,deletIDList[i])

end



・後ろから順番に消す


--InsertTrack

for i, value in pairs(trackNameList) do


・trackNameList分Forループ


    count = reaper.AZ_GetTrackCountSelect(0,0)


・トラックの数を取得


    track = reaper.AZ_InsertTrackId(0,count)


・一番最後にトラックを挿入してtrackのアイテムを出力


    reaper.AZ_SetTrackItemName(track,value)


・インサートしたトラックに名前を設定


    reaper.AZ_SetTrackItemDepth(track,masterDepth)


・インサートしたトラックにmasterの階層と同様にする


    reaper.AZ_SetTrackItemColor(track,trackColorList[i])


・色をtrackColorListに沿って設定する


    for e = 1,masterChildCount do


・masterChildCountの数分forを実行


        childTrack = reaper.AZ_InsertChildTrack(track)


・インサートしたトラックの子トラックをインサートしてchildTrackにアイテムを出力


        reaper.AZ_SetTrackItemName(childTrack,childInfoList[e].TrackName)


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


        reaper.AZ_SetTrackItemColor(childTrack,trackColorList[i])


・子トラックに色を設定


    end

end

- API LINK -

Track

AZSTOKE_TrackSetSameAutoSetter

トラックのセットを同セット自動複数作成

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