-- @description RTL Auto Normalize
-- @author Rockettree Labs
-- @version 1.0
-- @about Normalizes selected items to -1dB peak

local num_items = reaper.CountSelectedMediaItems(0)
if num_items == 0 then
    reaper.ShowMessageBox("Please select at least one media item to normalize.", "RTL Auto Normalize", 0)
    return
end

reaper.Undo_BeginBlock()

-- 40108 = Item properties: Normalize items (peak)
reaper.Main_OnCommand(40108, 0)

-- Lower volume by 1dB
for i = 0, num_items - 1 do
    local item = reaper.GetSelectedMediaItem(0, i)
    local vol = reaper.GetMediaItemInfo_Value(item, "D_VOL")
    -- Convert -1dB to linear scale: 10^(-1/20) = 0.89125
    reaper.SetMediaItemInfo_Value(item, "D_VOL", vol * 0.89125)
end

reaper.UpdateArrange()
reaper.Undo_EndBlock("RTL: Auto Normalize to -1dB", -1)
