Skip to content

Commit f900756

Browse files
authored
Update amagalma_Calculate difference in LUFS for selected or all FX of focused FX chain.lua
1 parent 8f44996 commit f900756

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

Diff for: FX/amagalma_Calculate difference in LUFS for selected or all FX of focused FX chain.lua

+23-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
-- @description Calculate difference in LUFS for selected or all FX of focused FX chain
22
-- @author amagalma
3-
-- @version 1.00
3+
-- @version 1.01
4+
-- @changelog
5+
-- - Fix for tracks FX chain
46
-- @donation https://www.paypal.me/amagalma
57
-- @about
68
-- # Calculates the volume difference that the selected FX (or all FX, if none selected) will bring, using dry runs (no files are created). The opposite value of the level difference is copied to the clipboard.
79
--
810
-- - The correct dry run action will be smartly chosen
11+
-- - Time Selection is taken into account
912
-- - An FX chain must be visible
1013
-- - Show detailed report
1114
-- - JS_ReaScriptAPI is required
@@ -125,7 +128,7 @@ local function GetStats( what, object, sel_FX )
125128
else
126129
DryAction = 42439 -- Calculate loudness of selected tracks within time selection
127130
end
128-
local ok1, fx_stats = reaper.GetSetProjectInfo_String(0, "RENDER_STATS", tostring(DryAction), false)
131+
ok1, fx_stats = reaper.GetSetProjectInfo_String(0, "RENDER_STATS", tostring(DryAction), false)
129132
if ok1 then
130133

131134
-- Get stats without FX
@@ -186,13 +189,13 @@ local what, object, sel_FX = GetInfo()
186189
if not what or fx_cnt == 0 then
187190
return reaper.defer(function() end)
188191
elseif what == "take" then
192+
reaper.PreventUIRefresh( 1 )
189193
local sel_items, it_cnt = {}, 0
190194
for i = reaper.CountSelectedMediaItems( 0 )-1, 0, -1 do
191195
it_cnt = it_cnt + 1
192196
sel_items[it_cnt] = reaper.GetSelectedMediaItem( 0, i )
193197
reaper.SetMediaItemSelected( sel_items[it_cnt], false )
194198
end
195-
reaper.PreventUIRefresh( 1 )
196199
reaper.SetMediaItemSelected( object.item, true )
197200
reaper.PreventUIRefresh( -1 )
198201
reaper.UpdateArrange()
@@ -205,7 +208,24 @@ elseif what == "take" then
205208
reaper.PreventUIRefresh( -1 )
206209
reaper.UpdateArrange()
207210
else
211+
reaper.PreventUIRefresh( 1 )
212+
local sel_tracks, tr_cnt = {}, 0
213+
for i = reaper.CountSelectedTracks( 0 )-1, 0, -1 do
214+
tr_cnt = tr_cnt + 1
215+
sel_tracks[tr_cnt] = reaper.GetSelectedTrack( 0, i )
216+
reaper.SetTrackSelected( sel_tracks[tr_cnt], false )
217+
end
218+
reaper.SetTrackSelected( object, true )
219+
reaper.PreventUIRefresh( -1 )
220+
reaper.UpdateArrange()
208221
GetStats( what, object, sel_FX )
222+
reaper.PreventUIRefresh( 1 )
223+
reaper.SetTrackSelected( object, false )
224+
for i = 1, #sel_tracks do
225+
reaper.SetTrackSelected( sel_tracks[i], true )
226+
end
227+
reaper.PreventUIRefresh( -1 )
228+
reaper.UpdateArrange()
209229
end
210230

211231
reaper.defer(function() end)

0 commit comments

Comments
 (0)