- Script Code -
dofile(reaper.AZ_GetLuaInitPath())
require("reaper_AZSTOKE_SILVER")
require("reaper_AZSTOKE_GOLD")
cancelType,inputList = reaper.AZ_GetUserInputList("LOUDMATCHIFY",2,"ListPath:,WavPath:","D:/,D:/")
jsonStr = reaper.AZ_ReadFile(inputList[1],"savedata.txt")
loudnessTable = reaper.AZ_Json_Deserialize(jsonStr)
if cancelType then
fileList = reaper.AZ_GetFilePathList(inputList[2],"wav")
startPos = 0
mediaInterval = 1
for i, value in pairs(fileList) do
item = reaper.AZ_InsertMediaTrackIdSecond(0,0,value,0,startPos)
name = reaper.AZ_GetMediaItemName(item)
reaper.AZ_SetMediaItemHANDAUTOMER(item,1)
reaper.AZ_LOUDMATCHFY_SetVolumeForMediaItem(item ,loudnessTable, 1,0)
maxMomentary = reaper.AZ_GetMediaItemLoudnessMaxMomentary(item)
endPos = reaper.AZ_GetMediaItemEndTime(item)
startPos = endPos + mediaInterval
Msg(name)
Msg(maxMomentary)
end
end
- Warm Up -
Trackを作成しておく
LOUDMATCHIFYで利用可能なセーブデータを生成しておく
音量調整したいファイルを用意しておく
- Script Detail -
dofile(reaper.AZ_GetLuaInitPath())
require("reaper_AZSTOKE_SILVER")
require("reaper_AZSTOKE_GOLD")
・SILVERとGOLDを利用可能にする
cancelType,inputList = reaper.AZ_GetUserInputList("LOUDMATCHIFY",2,"ListPath:,WavPath:","D:/,D:/")
・テキスト入力を可能にする。
jsonStr = reaper.AZ_ReadFile(inputList[1],"savedata.txt")
・セーブデータ先のフォルダからsavedata.txtを検索してその文字列を取得する。
loudnessTable = reaper.AZ_Json_Deserialize(jsonStr)
・取得した文字列を配列に置き換える
if cancelType then
・テキスト入力画面でOKを押した場合は以下を実行
fileList = reaper.AZ_GetFilePathList(inputList[2],"wav")
・調整したいファイルのリストを取得
startPos = 0
mediaInterval = 1
for i, value in pairs(fileList) do
・取得したリスト分Forループ
item = reaper.AZ_InsertMediaTrackIdSecond(0,0,value,0,startPos)
・ファイルをトラック1にインサートしてitemを取得
name = reaper.AZ_GetMediaItemName(item)
・itemの名前を取得してnameに代入
reaper.AZ_SetMediaItemHANDAUTOMER(item,1)
・itemにHANDAUTOMERの圧縮率1をかける
reaper.AZ_LOUDMATCHFY_SetVolumeForMediaItem(item ,loudnessTable, 1,0)
・itemにLOUDMATCHIFYを実行、セーブデータの配列を読み込んで音量調整
maxMomentary = reaper.AZ_GetMediaItemLoudnessMaxMomentary(item)
・itemの現段階のmaxMomentaryを出力
endPos = reaper.AZ_GetMediaItemEndTime(item)
・終了位置を取得
startPos = endPos + mediaInterval
・次のオーディオ位置を設定
Msg(name)
Msg(maxMomentary)
・名前とラウドネス値をコンソールに出力
end
end
- API LINK -
AZ_GetUserInputList
AZ_ReadFile
AZ_Json_Deserialize
AZ_GetFilePathList
AZ_InsertMediaTrackIdSecond
AZ_GetMediaItemName
AZ_SetMediaItemHANDAUTOMER
AZ_LOUDMATCHFY_SetVolumeForMediaItem
AZ_GetMediaItemLoudnessMaxMomentary
AZ_GetMediaItemEndTime