- 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_LOUDMATCHIFY_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 -
Create a track
Generate save data that can be used with LOUDMATCHIFY
Prepare the file you want to adjust the volume of
- Script Detail -
dofile(reaper.AZ_GetLuaInitPath())
require("reaper_AZSTOKE_SILVER")
require("reaper_AZSTOKE_GOLD")
・Enable SILVER and GOLD
cancelType,inputList = reaper.AZ_GetUserInputList("LOUDMATCHIFY",2,"ListPath:,WavPath:","D:/,D:/")
・Enable text input.
jsonStr = reaper.AZ_ReadFile(inputList[1],"savedata.txt")
・Search the save-data folder for savedata.txt and get its string.
loudnessTable = reaper.AZ_Json_Deserialize(jsonStr)
・Replace the retrieved string with an array
if cancelType then
・If OK is pressed in the text input dialog, run the following
fileList = reaper.AZ_GetFilePathList(inputList[2],"wav")
・Get the list of files to adjust
startPos = 0
mediaInterval = 1
for i, value in pairs(fileList) do
・For loop over the retrieved list
item = reaper.AZ_InsertMediaTrackIdSecond(0,0,value,0,startPos)
・Insert the file into track 1 and get the item
name = reaper.AZ_GetMediaItemName(item)
・Get the item name and assign it to name
reaper.AZ_SetMediaItemHANDAUTOMER(item,1)
・Apply HANDAUTOMER compression ratio 1 to the item
reaper.AZ_LOUDMATCHFY_SetVolumeForMediaItem(item ,loudnessTable, 1,0)
・Run LOUDMATCHIFY on the item, loading the saved-data array to adjust the volume
maxMomentary = reaper.AZ_GetMediaItemLoudnessMaxMomentary(item)
・Output the item's current maxMomentary
endPos = reaper.AZ_GetMediaItemEndTime(item)
・Get the end position
startPos = endPos + mediaInterval
・Set the next audio position
Msg(name)
Msg(maxMomentary)
・Output the name and loudness value to the console
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
- API LINK -
LOUDMATCHIFY
AZSTOKE_LOUDMATCHIFY_ACTION_1
"LOUDMATCHIFY" -Part 2- Implementing name detection loudness












