- Script Code -
dofile(reaper.AZ_GetLuaInitPath())
require("reaper_AZSTOKE_BRONZE")
require("reaper_AZSTOKE_SILVER")
require("reaper_AZSTOKE_GOLD")
p4URL = "********"
p4UserName = "********"
p4Password = "********"
p4Workspace = "********"
function InsertAndSetLoudness(depotPath, excelPath)
track, trackID = reaper.AZ_InsertTrackSearchUniqueOnly(0, "voice")
trackCount = reaper.CountTrackMediaItems(track)
endTime = reaper.AZ_GetTrackMediaEndTime(0, trackID, trackCount - 1)
startPos = endTime + 3
if reaper.AZ_P4_Connect(p4URL, p4UserName, p4Password)then
filePathList = reaper.AZ_P4_ExportAudioToProject(p4Workspace, depotPath, "", -1, "wav")
itemList = reaper.AZ_InsertMediaItems(track, filePathList, startPos, 1)
reaper.AZ_P4_Disconnect()
end
reaper.AZ_SetMediaItemListHANDAUTOMER(itemList, 2)
excelDoc = reaper.AZ_Excel_OpenFile(excelPath)
sheet = reaper.AZ_Excel_OpenWorksheet(excelDoc, "script")
color, _, _, _ = reaper.AZ_GetRandomColor()
for i, item in pairs(itemList) do
itemName = reaper.AZ_GetMediaItemName(item)
itemStartPos = reaper.AZ_GetMediaItemStartTimeSeconds(item)
itemEndPos = reaper.AZ_GetMediaItemEndTime(item)
reaper.AZ_AddRegionMarker(0, itemStartPos, itemEndPos, itemName, -1, color)
result = reaper.AZ_Excel_SearchRowsInWorksheet(sheet, itemName, "A", "", false)
exists = false
for j, row in pairs(result["Cells"]) do
exists = true
Msg("name: " .. row["A"])
Msg("Loudness: " .. row["C"])
Msg("")
loudness = tonumber(row["C"])
end
if exists == true then
reaper.AZ_SetMediaItemLoudnessMaxMomentary(item, loudness)
end
end
reaper.AZ_Excel_CloseFile(excelDoc)
end
function main()
retval, inputList = reaper.AZ_GetUserInputList("", 2, "DeptPath,ExcelPath", "")
if retval == false then return end
deptPath = inputList[1]
excelPath = inputList[2]
InsertAndSetLoudness(deptPath, excelPath)
end
main()
- Warm Up -
Excelファイルを用意する
インポートする音声ファイルを用意する
- Script Detail -
dofile(reaper.AZ_GetLuaInitPath())
require("reaper_AZSTOKE_BRONZE")
require("reaper_AZSTOKE_SILVER")
require("reaper_AZSTOKE_GOLD")
・RIGDOCKSをインポート
p4URL = "********"
p4UserName = "********"
p4Password = "********"
p4Workspace = "********"
・perforceの接続情報を設定
function InsertAndSetLoudness(depotPath, excelPath)
・関数定義、引数はデポパスとExcelパス
track, trackID = reaper.AZ_InsertTrackSearchUniqueOnly(0, "voice")
・「voice」という名前のトラックを作成
trackCount = reaper.CountTrackMediaItems(track)
・「voice」トラック内のメディアアイテム数を取得
endTime = reaper.AZ_GetTrackMediaEndTime(0, trackID, trackCount - 1)
・最後のメディアアイテムの終了時間を取得
startPos = endTime + 3
・新規挿入位置を最後のメディアアイテム終了時間の3秒後に設定
if reaper.AZ_P4_Connect(p4URL, p4UserName, p4Password)then
・perforceに接続
filePathList = reaper.AZ_P4_ExportAudioToProject(p4Workspace, depotPath, "", -1, "wav")
・デポパス配下の音声ファイルを全てプロジェクトにエクスポートし、パスのリストを取得
itemList = reaper.AZ_InsertMediaItems(track, filePathList, startPos, 1)
・音声ファイルを「voice」トラックに挿入し、メディアアイテムのリストを取得
reaper.AZ_P4_Disconnect()
・perforceから切断
end
reaper.AZ_SetMediaItemListHANDAUTOMER(itemList, 2)
・挿入したメディアアイテム全てにHANDAUTOMERを実行
excelDoc = reaper.AZ_Excel_OpenFile(excelPath)
・Excelファイルを開く
sheet = reaper.AZ_Excel_OpenWorksheet(excelDoc, "script")
・「script」ワークシートを開く
color, _, _, _ = reaper.AZ_GetRandomColor()
・ランダムな色を取得
for i, item in pairs(itemList) do
・挿入したメディアアイテム全てに対してループ
itemName = reaper.AZ_GetMediaItemName(item)
・メディアアイテムの名前を取得
itemStartPos = reaper.AZ_GetMediaItemStartTimeSeconds(item)
itemEndPos = reaper.AZ_GetMediaItemEndTime(item)
reaper.AZ_AddRegionMarker(0, itemStartPos, itemEndPos, itemName, -1, color)
・メディアアイテムの範囲にリージョンを追加
result = reaper.AZ_Excel_SearchRowsInWorksheet(sheet, itemName, "A", "", false)
・ワークシート内にメディアアイテム名に対応する行があるか検索
exists = false
for j, row in pairs(result["Cells"]) do
・検索結果の最初の行を取得
exists = true
Msg("name: " .. row["A"])
Msg("Loudness: " .. row["C"])
Msg("")
・コンソールにメディアアイテム名とラウドネス値を表示
loudness = tonumber(row["C"])
・対応する行がある場合、C列に記載されたラウドネス値を取得
end
if exists == true then
reaper.AZ_SetMediaItemLoudnessMaxMomentary(item, loudness)
・ラウドネス値が取得できた場合のみ、メディアアイテムのラウドネス値をその値に設定する
end
end
reaper.AZ_Excel_CloseFile(excelDoc)
・Excelファイルを閉じる
end
function main()
・メイン関数定義
retval, inputList = reaper.AZ_GetUserInputList("", 2, "DeptPath,ExcelPath", "")
・必要事項の入力を要求
if retval == false then return end
・キャンセルされた場合、処理を中断
deptPath = inputList[1]
excelPath = inputList[2]
・入力値からデポパスとExcelパスを取得
InsertAndSetLoudness(deptPath, excelPath)
・関数を実行
end
main()
・メイン関数を実行
- API LINK -
Excel
AZSTOKE_Excel_InsertAndSetLoudness
Perforceで管理された音声ファイルをExcelの表を基に設定し、Wwiseに自動実装①
















