- Script Code -
dofile(reaper.AZ_GetLuaInitPath())
require("reaper_AZSTOKE_BRONZE")
require("reaper_AZSTOKE_SILVER")
require("reaper_AZSTOKE_GOLD")
reaper.AZ_DeleteAllRegion(0)
cancelType, inputList = reaper.AZ_GetUserInputList("Insert",1,"Path:","D://")
if cancelType then
--file import HANDAUTOMER
fileList = reaper.AZ_GetFilePathList(inputList[1],"wav")
startPos = 0
itemList = {}
for i, value in pairs(fileList) do
itemList[i] = {}
itemList[i]["item"] = reaper.AZ_InsertMediaTrackIdSecond(0,0,value,0,startPos)
reaper.AZ_SetMediaItemHANDAUTOMER(itemList[i].item,3)
itemList[i]["name"] = reaper.AZ_GetMediaItemName(itemList[i].item)
--get parent
itemList[i]["parent"] = ""
splitList = reaper.AZ_GetStringSplitList(itemList[i].name,"_")
table.remove(splitList)
for e, value in pairs(splitList) do
if e == 1 then
itemList[i]["parent"] = itemList[i].parent..value
else
itemList[i]["parent"] = itemList[i].parent.."_"..value
end
end
--next start pos setting + regionMarker
endPos = reaper.AZ_GetMediaItemEndTime(itemList[i].item)
reaper.AZ_AddRegionMarker(0,startPos,endPos,itemList[i].name,0,0)
startPos = endPos + 1
end
--render setting
renderPath = "D:\\script\\renderdata"
renderFileName = "render"
jsonStr = reaper.AZ_ReadFile(renderPath,renderFileName..".txt")
render = reaper.AZ_Json_Deserialize(jsonStr)
path = reaper.AZ_SetProjectPathFolder("Rec",3)
render.OutputDir = path
--render
fileList = reaper.AZ_RenderToAudioFile(0,render)
--wwise intro
wwisePath = "\\Actor-Mixer Hierarchy\\Default Work Unit\\Master\\VOICE"
parent = ""
if (reaper.AZ_Wwise_Connect("127.0.0.1",8080)) then
--wwise object create
for i, value in pairs(fileList) do
if parent ~= itemList[i].parent then
parent = itemList[i].parent
containerList = reaper.AZ_Wwise_CreateContainer(wwisePath,0,itemList[i].parent)
end
soundVoiceList = reaper.AZ_Wwise_CreateSoundVoice(containerList.ID,value,itemList[i].name)
itemList[i]["soundVoiceID"] = soundVoiceList.ID
end
--LOUDMATCHIFY Savedata
jsonStr = reaper.AZ_ReadFile("D:\\script\\savedata\\savedata","savedata.txt")
loudmatchifyList = reaper.AZ_Json_Deserialize(jsonStr)
--loudness
for i, value in pairs(itemList) do
wwiseVol = reaper.AZ_MIDDLESCANNER_Wwise_GetVolumeForMediaItem(itemList[i].item,"English(US)")
reaper.AZ_LOUDMATCHIFY_SetVolumeForMediaItem(itemList[i].item,loudmatchifyList,1,wwiseVol.Volume)
Msg(itemList[i].name)
Msg(wwiseVol.Volume)
Msg(reaper.AZ_GetMediaItemLoudnessMaxMomentary(itemList[i].item))
end
path = reaper.AZ_SetProjectPathFolder("Rec",3)
render.OutputDir = path
fileList = reaper.AZ_RenderToAudioFile(0,render)
for i, value in pairs(fileList) do
reaper.AZ_Wwise_ImportAudioFile(itemList[i].soundVoiceID,value,"English(US)")
end
reaper.AZ_Wwise_Disconnect()
end
end
- Warm Up -
Trackを作成しておく
インサートする用のメディアを用意しておく
LOUDMATCHIFYで利用可能なセーブデータを生成しておく
レンダー設定を用意しておく
WwiseにインサートしたいWorkUnitを作成しておく
- Script Detail -
dofile(reaper.AZ_GetLuaInitPath())
require("reaper_AZSTOKE_BRONZE")
require("reaper_AZSTOKE_SILVER")
require("reaper_AZSTOKE_GOLD")
・BRONZE、SILVER、GOLDのAPIを利用可能にする
reaper.AZ_DeleteAllRegion(0)
・既につくられているリージョンを削除する
cancelType, inputList = reaper.AZ_GetUserInputList("Insert",1,"Path:","D://")
・音声ファイルが格納されているフォルダのパスを指定
if cancelType then
--file import HANDAUTOMER
fileList = reaper.AZ_GetFilePathList(inputList[1],"wav")
・音声ファイルのパスを取得
startPos = 0
・音声ファイルの開始位置を設定
itemList = {}
for i, value in pairs(fileList) do
itemList[i] = {}
itemList[i]["item"] = reaper.AZ_InsertMediaTrackIdSecond(0,0,value,0,startPos)
・音声ファイルをReaperにインポート
reaper.AZ_SetMediaItemHANDAUTOMER(itemList[i].item,3)
・HANDAUTOMERを実行
itemList[i]["name"] = reaper.AZ_GetMediaItemName(itemList[i].item)
・メディアアイテムの名前(ファイル名)を取得
--get parent
itemList[i]["parent"] = ""
splitList = reaper.AZ_GetStringSplitList(itemList[i].name,"_")
table.remove(splitList)
for e, value in pairs(splitList) do
if e == 1 then
itemList[i]["parent"] = itemList[i].parent..value
else
itemList[i]["parent"] = itemList[i].parent.."_"..value
end
end
・音声ファイル名のナンバリングを除いた部分を取得(Wwiseでコンテナ名として使用する)
--next start pos setting + regionMarker
endPos = reaper.AZ_GetMediaItemEndTime(itemList[i].item)
reaper.AZ_AddRegionMarker(0,startPos,endPos,itemList[i].name,0,0)
・メディアアイテムの位置にリージョンマーカーを設定
startPos = endPos + 1
・メディアアイテムの情報をリストに格納しておく
end
--render setting
renderPath = "D:\\script\\renderdata"
renderFileName = "render"
・ファイルからレンダリング設定データを取得
jsonStr = reaper.AZ_ReadFile(renderPath,renderFileName..".txt")
render = reaper.AZ_Json_Deserialize(jsonStr)
path = reaper.AZ_SetProjectPathFolder("Rec",3)
render.OutputDir = path
・出力先フォルダのみ変更
--render
fileList = reaper.AZ_RenderToAudioFile(0,render)
・レンダリング実行
--wwise intro
wwisePath = "\\Actor-Mixer Hierarchy\\Default Work Unit\\Master\\VOICE"
・Wwise上のインポート先を指定
parent = ""
if (reaper.AZ_Wwise_Connect("127.0.0.1",8080)) then
・Wwiseに接続
--wwise object create
for i, value in pairs(fileList) do
・各メディアアイテム情報に対して以下処理を実行
if parent ~= itemList[i].parent then
parent = itemList[i].parent
containerList = reaper.AZ_Wwise_CreateContainer(wwisePath,0,itemList[i].parent)
end
・対応するランダムコンテナが作成されていない場合、作成する
soundVoiceList = reaper.AZ_Wwise_CreateSoundVoice(containerList.ID,value,itemList[i].name)
・コンテナにレンダリングした音声ファイルをインポートする
itemList[i]["soundVoiceID"] = soundVoiceList.ID
end
--LOUDMATCHIFY Savedata
jsonStr = reaper.AZ_ReadFile("D:\\script\\savedata\\savedata","savedata.txt")
loudmatchifyList = reaper.AZ_Json_Deserialize(jsonStr)
・LOUDMATCHIFY用の設定データをファイルから取得する
--loudness
for i, value in pairs(itemList) do
wwiseVol = reaper.AZ_MIDDLESCANNER_Wwise_GetVolumeForMediaItem(itemList[i].item,"English(US)")
・MIDDLESCANNERを実行し、Wwise上での音量設定を取得
reaper.AZ_LOUDMATCHIFY_SetVolumeForMediaItem(itemList[i].item,loudmatchifyList,1,wwiseVol.Volume)
・MIDDLESCANNERの結果を考慮してLOUDMATCHIFYを実行
Msg(itemList[i].name)
Msg(wwiseVol.Volume)
Msg(reaper.AZ_GetMediaItemLoudnessMaxMomentary(itemList[i].item))
・処理の結果をコンソールに出力
end
path = reaper.AZ_SetProjectPathFolder("Rec",3)
render.OutputDir = path
fileList = reaper.AZ_RenderToAudioFile(0,render)
・レンダリング設定の出力先フォルダを変更し、レンダリングを実行
for i, value in pairs(fileList) do
reaper.AZ_Wwise_ImportAudioFile(itemList[i].soundVoiceID,value,"English(US)")
end
・レンダリングしたファイルを対応するWwiseオブジェクトにインポート(置き換え)
reaper.AZ_Wwise_Disconnect()
・Wwiseから切断する
end
end
- API LINK -
AZ_RenderToAudioFile
AZ_Wwise_CreateSoundVoice
AZ_Wwise_ImportAudioFile