![](https://static.wixstatic.com/media/fc32ca_f9681906c77e41e2bb63e2fc71e38167~mv2.png/v1/fill/w_61,h_61,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/01_SILVER.png)
2
![](https://static.wixstatic.com/media/fc32ca_ce420e9bb52c45e180e78eae3346c302~mv2.png/v1/fill/w_61,h_61,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/01_BRONZE.png)
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 -
AZ_SILVER.AZ_GetTrackDepthList
reaper.AZ_GetSelectedTrackFirstInfo
reaper.AZ_GetTrackMediaTypeCount
AZ_SILVER.AZ_GetTrackIdChildList
reaper.AZ_DeleteTrackIdSelect
reaper.AZ_GetTrackItemSelect
reaper.AZ_SetTrackItemDepth