From bd5263087b9105fb9507410444f9d45209bfd72a Mon Sep 17 00:00:00 2001 From: Neftovsky Date: Mon, 3 Feb 2025 13:47:18 +0600 Subject: [PATCH 1/2] Release Apply track volume to Items v1.0 --- .../neftovsky_Apply track volume to Items.lua | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Items Properties/neftovsky_Apply track volume to Items.lua diff --git a/Items Properties/neftovsky_Apply track volume to Items.lua b/Items Properties/neftovsky_Apply track volume to Items.lua new file mode 100644 index 000000000..44541036b --- /dev/null +++ b/Items Properties/neftovsky_Apply track volume to Items.lua @@ -0,0 +1,44 @@ +-- @description Apply track volume to Items +-- @author Neftovsky +-- @version 1.0 +-- @about +-- Apply track volume to Items +-- +-- Applies selected track volume to its items (takes) and resets track fader to 0 dB. +-- Compensates item volume (Pre-FX) based on track fader volume. +-- +-- Usage: +-- 1. Select tracks. +-- 2. Run the script. +-- 3. Track volume resets to 0 dB, item volumes adjust accordingly. + +local selected_track_count = reaper.CountSelectedTracks(0) + +if selected_track_count > 0 then + for t = 0, selected_track_count - 1 do + local track = reaper.GetSelectedTrack(0, t) + + if track then + local track_volume = reaper.GetMediaTrackInfo_Value(track, "D_VOL") + + local item_count = reaper.CountTrackMediaItems(track) + for i = 0, item_count - 1 do + local item = reaper.GetTrackMediaItem(track, i) + if item then + local take = reaper.GetActiveTake(item) + if take then + local item_vol = reaper.GetMediaItemTakeInfo_Value(take, "D_VOL") + local compensated_vol = item_vol * track_volume + reaper.SetMediaItemTakeInfo_Value(take, "D_VOL", compensated_vol) + end + end + end + + reaper.SetMediaTrackInfo_Value(track, "D_VOL", 1.0) + end + end +else + reaper.ShowMessageBox("No tracks selected!", "Error", 0) +end + +reaper.UpdateArrange() From 8249624540d04a60e44b837119ce1217278751ac Mon Sep 17 00:00:00 2001 From: Neftovsky Date: Mon, 3 Feb 2025 16:19:30 +0600 Subject: [PATCH 2/2] Update and rename neftovsky_Apply track volume to Items.lua to neftovsky_Apply track volume to all takes and resets track fader to 0 dB.lua --- .../neftovsky_Apply track volume to Items.lua | 44 ----------------- ...l takes and resets track fader to 0 dB.lua | 47 +++++++++++++++++++ 2 files changed, 47 insertions(+), 44 deletions(-) delete mode 100644 Items Properties/neftovsky_Apply track volume to Items.lua create mode 100644 Items Properties/neftovsky_Apply track volume to all takes and resets track fader to 0 dB.lua diff --git a/Items Properties/neftovsky_Apply track volume to Items.lua b/Items Properties/neftovsky_Apply track volume to Items.lua deleted file mode 100644 index 44541036b..000000000 --- a/Items Properties/neftovsky_Apply track volume to Items.lua +++ /dev/null @@ -1,44 +0,0 @@ --- @description Apply track volume to Items --- @author Neftovsky --- @version 1.0 --- @about --- Apply track volume to Items --- --- Applies selected track volume to its items (takes) and resets track fader to 0 dB. --- Compensates item volume (Pre-FX) based on track fader volume. --- --- Usage: --- 1. Select tracks. --- 2. Run the script. --- 3. Track volume resets to 0 dB, item volumes adjust accordingly. - -local selected_track_count = reaper.CountSelectedTracks(0) - -if selected_track_count > 0 then - for t = 0, selected_track_count - 1 do - local track = reaper.GetSelectedTrack(0, t) - - if track then - local track_volume = reaper.GetMediaTrackInfo_Value(track, "D_VOL") - - local item_count = reaper.CountTrackMediaItems(track) - for i = 0, item_count - 1 do - local item = reaper.GetTrackMediaItem(track, i) - if item then - local take = reaper.GetActiveTake(item) - if take then - local item_vol = reaper.GetMediaItemTakeInfo_Value(take, "D_VOL") - local compensated_vol = item_vol * track_volume - reaper.SetMediaItemTakeInfo_Value(take, "D_VOL", compensated_vol) - end - end - end - - reaper.SetMediaTrackInfo_Value(track, "D_VOL", 1.0) - end - end -else - reaper.ShowMessageBox("No tracks selected!", "Error", 0) -end - -reaper.UpdateArrange() diff --git a/Items Properties/neftovsky_Apply track volume to all takes and resets track fader to 0 dB.lua b/Items Properties/neftovsky_Apply track volume to all takes and resets track fader to 0 dB.lua new file mode 100644 index 000000000..775f3e267 --- /dev/null +++ b/Items Properties/neftovsky_Apply track volume to all takes and resets track fader to 0 dB.lua @@ -0,0 +1,47 @@ +-- @description Apply track volume to all takes and resets track fader to 0 dB +-- @author Neftovsky +-- @version 1.1 +-- @about +-- Apply track volume to all takes and resets track fader to 0 dB +-- +-- Applies selected track volume to all takes in items and resets track fader to 0 dB. +-- Adjusts take volume (Pre-FX) without affecting item volume. +-- +-- Usage: +-- 1. Select tracks. +-- 2. Run the script. +-- 3. Track volume resets to 0 dB, all take's volumes adjust accordingly. + +local selected_track_count = reaper.CountSelectedTracks(0) + +if selected_track_count > 0 then + for t = 0, selected_track_count - 1 do + local track = reaper.GetSelectedTrack(0, t) + + if track then + local track_volume = reaper.GetMediaTrackInfo_Value(track, "D_VOL") + + local item_count = reaper.CountTrackMediaItems(track) + for i = 0, item_count - 1 do + local item = reaper.GetTrackMediaItem(track, i) + if item then + local take_count = reaper.CountTakes(item) + for tk = 0, take_count - 1 do + local take = reaper.GetTake(item, tk) + if take then + local item_vol = reaper.GetMediaItemTakeInfo_Value(take, "D_VOL") + local compensated_vol = item_vol * track_volume + reaper.SetMediaItemTakeInfo_Value(take, "D_VOL", compensated_vol) + end + end + end + end + + reaper.SetMediaTrackInfo_Value(track, "D_VOL", 1.0) + end + end +else + reaper.ShowMessageBox("No tracks selected!", "Error", 0) +end + +reaper.UpdateArrange()