- Script Code -
dofile(reaper.AZ_GetLuaInitPath())
require("reaper_AZSTOKE_BRONZE")
require("reaper_AZSTOKE_SILVER")
function main()
retval, imputList = reaper.AZ_GetUserInputList("", 1, "import path", "")
if(retval == false) then
return
end
importPath = imputList[1]
filePathList = reaper.AZ_GetFilePathList(importPath, "wav")
table.sort(filePathList)
insertPos = 0
preCharID = ""
color, _, _, _ = reaper.AZ_GetRandomColor()
reaper.AZ_DeleteAllRegion(0)
for i, filePath in pairs(filePathList) do
fileName = reaper.AZ_GetPathInfo(filePath)["FileNameWithoutExtension"]
splitList =reaper.AZ_GetStringSplitList(fileName, "_")
charID = splitList[1]
voiceType = splitList[2]
charTrack = reaper.AZ_InsertTrackSearchUniqueOnly(0, charID)
reaper.AZ_SetTrackItemDepth(charTrack, 0)
typeTrack = reaper.AZ_InsertUniqueChildTrack(charTrack, splitList[2])
if preCharID ~= "" and preCharID ~= charID then
insertPos = insertPos + 2
color, _, _, _ = reaper.AZ_GetRandomColor()
end
item = reaper.AZ_InsertMediaTrackItemSecond(typeTrack, filePath, 0, insertPos)
itemStartPos = reaper.AZ_GetMediaItemStartTimeSeconds(item)
itemEndPos = reaper.AZ_GetMediaItemEndTime(item)
reaper.AZ_AddRegionMarker(0, itemStartPos, itemEndPos, fileName, -1, color)
insertPos = itemEndPos + 1
preCharID = charID
end
end
main()
- Warm Up -
- Script Detail -
dofile(reaper.AZ_GetLuaInitPath())
require("reaper_AZSTOKE_BRONZE")
require("reaper_AZSTOKE_SILVER")
・RIGDOCKSをインポート
function main()
・メインの処理を記載する関数を定義
retval, imputList = reaper.AZ_GetUserInputList("", 1, "import path", "")
・ユーザー空の入力ダイアログを表示して、インポートするフォルダのパスを取得
if(retval == false) then
return
end
・ダイアログがキャンセルされた場合は処理を終了する
importPath = imputList[1]
・インポートするフォルダのパスを変数に格納
filePathList = reaper.AZ_GetFilePathList(importPath, "wav")
・指定したフォルダ内のwavファイルのパスを取得
table.sort(filePathList)
・ファイルパスのリストをソート
insertPos = 0
preCharID = ""
・アイテムの挿入位置と前回のキャラクターIDを初期化
color, _, _, _ = reaper.AZ_GetRandomColor()
・ランダムな色を取得
reaper.AZ_DeleteAllRegion(0)
・プロジェクト内のリージョンを全て削除
for i, filePath in pairs(filePathList) do
・取得したファイルパスごとに実行
fileName = reaper.AZ_GetPathInfo(filePath)["FileNameWithoutExtension"]
・ファイル名を取得
splitList =reaper.AZ_GetStringSplitList(fileName, "_")
・ファイル名を"_"で分割してリスト化
charID = splitList[1]
voiceType = splitList[2]
・ファイル名からキャラクターIDとボイスの種類を取得
charTrack = reaper.AZ_InsertTrackSearchUniqueOnly(0, charID)
・キャラクターIDの名前のトラックを作成(既に存在する場合は取得のみ)
reaper.AZ_SetTrackItemDepth(charTrack, 0)
・キャラクタートラックの深さを0に設定(最上位にする)
typeTrack = reaper.AZ_InsertUniqueChildTrack(charTrack, splitList[2])
・ボイスの種類の名前の子トラックを作成(既に存在する場合は取得のみ)
if preCharID ~= "" and preCharID ~= charID then
insertPos = insertPos + 2
color, _, _, _ = reaper.AZ_GetRandomColor()
end
・キャラクターIDが前回と異なる場合、挿入位置を2秒進めて色を変更
item = reaper.AZ_InsertMediaTrackItemSecond(typeTrack, filePath, 0, insertPos)
・指定したトラックにアイテムを挿入
itemStartPos = reaper.AZ_GetMediaItemStartTimeSeconds(item)
itemEndPos = reaper.AZ_GetMediaItemEndTime(item)
・挿入したアイテムの開始位置と終了位置を取得
reaper.AZ_AddRegionMarker(0, itemStartPos, itemEndPos, fileName, -1, color)
・アイテムの位置にリージョンを追加
insertPos = itemEndPos + 1
・次のアイテムの挿入位置を1秒進める
preCharID = charID
・前回のキャラクターIDを更新
end
end
main()
・メイン処理を実行
- API LINK -
Track
AZSTOKE_InsertTrackMediasFromFileName
ファイル名を考慮してトラックをインサート


