|
|
|
09-18-2020, 06:46 PM
|
#1
|
Human being with feelings
Join Date: Aug 2014
Posts: 884
|
Strip all bypassed and inactive plugins from closed project file?
The question first and reason follows.
Question:
Can I strip out all plugins that are bypassed and inactive from a closed project file?
Reason:
In doing sound design for film & games I keep a lot, and I do mean a LOT of plugin options at the ready. While I find Reaper to be quite stable, there are often enough times where projects don't want to re-open, even if they weren't having any issues when they were last opened.
This also presents itself fairly often when opening an archived session.
This is nearly always fixed by opening the project with all plugins offline.
My issue is, when getting a project open this way (plugins offline), with all the plugin options I keep handy. It's difficult to determine exactly what I DID have enabled.
If I can remove all plugins that are bypassed/inactive from the closed project, then I know that every plugin that is still in the opened project, even when opened with plugins OFFLINE, are supposed to be there.
|
|
|
09-18-2020, 09:36 PM
|
#2
|
Human being with feelings
Join Date: Aug 2014
Posts: 884
|
I think I found what to cut out.
Use at your own risk on a copy!
Include these and everything in-between a bracket of a plugin to remove, in a text editor:
So example (if there is automation there will be a lot of events in addition to this, but still between the brackets mentioned above):
Quote:
BYPASS 1 0 0
<VST "VST3: MFlanger (MeldaProduction)" MFlanger.vst3 0 "" 1126396409{4D656C646170726F4D4145264D414526} ""
+XEjQ+5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAA AAAAIAAAAAAAAAEAIAAAEAAAAAABAA
AAEAAAEAAAB42l1QW2uDMBh991eEb6/bvGxuCkkK6ywUKhMj27PVrzYsSySJo+zXDxT70Ndz45xDN5cfR X7ROmk0g/gxAoK6M73UA4PJnx4y2PCAljvV6gGtQ++lHhy5
YxAD2RrtrVEKrSt0e1TYM4iAFL30xgr5hwyy55f79DUDcqjFqK T3OBMxgzTLb9GEQZznQMr2cth9vCnTfS8pTwmQEj1atzVKtaPD Xni0aOYalZoGqRtj1LG1V8FMfa7T
8jhP0wQ4XWISTr9k788lp8JMtkNSWTxJ5dHO0yMIOQ1XSbiaAl ru3/c1OvQhD6g7tyMS0RRVVReiaBZfQMObvxwP/gGQaHVIAAEAAAAAAAB42l1QW2uDMBh991eEb6/b
vGxuCkkK6ywUKhMj27PVrzYsSySJo+zXDxT70Ndz45xDN5cfRX 7ROmk0g/gxAoK6M73UA4PJnx4y2PCAljvV6gGtQ++lHhy5YxAD2RrtrVEK rSt0e1TYM4iAFL30xgr5
hwyy55f79DUDcqjFqKT3OBMxgzTLb9GEQZznQMr2cth9vCnTfS 8pTwmQEj1atzVKtaPDXni0aOYalZoGqRtj1LG1V8FMfa7T8jhP 0wQ4XWISTr9k788lp8JMtkNSWTxJ
5dHO0yMIOQ1XSbiaAlru3/c1OvQhD6g7tyMS0RRVVReiaBZfQMObvxwP/gGQaHVI
AFByZXNldHM6IDAAEAAAAA==
>
PRESETNAME "Presets: 0"
FLOATPOS 0 0 0 0
FXID {3FA83120-932D-B142-9A7F-16EDC77AD57E}
WAK 0 0
|
This indicates the plugin is bypassed:
And this means it's offline:
|
|
|
09-18-2020, 11:32 PM
|
#3
|
Human being with feelings
Join Date: Feb 2020
Location: Los Angeles
Posts: 463
|
You're Chunking now! Awesome!
|
|
|
09-19-2020, 01:40 AM
|
#4
|
Human being with feelings
Join Date: Jan 2014
Posts: 923
|
before you close project run this script. it saves active fx.
Code:
-- lua script
-- save active fx
for i = 0, reaper.CountTracks(0) - 1 do
local track, fx_indexes = reaper.GetTrack(0, i), {}
for fx_index = 0, reaper.TrackFX_GetCount(track) - 1 do
if reaper.TrackFX_GetEnabled(track, fx_index) and
not reaper.TrackFX_GetOffline(track, fx_index) then
table.insert(fx_indexes, fx_index)
end
end
if #fx_indexes > 0 then
local str_fx_indexes = table.concat(fx_indexes, " ")
reaper.GetSetMediaTrackInfo_String(track, "P_EXT:emb_active_fx_indexes", str_fx_indexes, true) -- write to track obj
else
reaper.GetSetMediaTrackInfo_String(track, "P_EXT:emb_active_fx_indexes", "", true) -- clear
end
end
open project in fx offline mode and run this script. it restores active fx.
Code:
-- lua script
-- restore active fx
reaper.PreventUIRefresh(1)
reaper.Undo_BeginBlock()
for i = 0, reaper.CountTracks(0) - 1 do
local track = reaper.GetTrack(0, i)
local ok, str_fx_indexes = reaper.GetSetMediaTrackInfo_String(track, "P_EXT:emb_active_fx_indexes", "", false)
if ok and str_fx_indexes ~= "" then
for str_fx_index in str_fx_indexes:gmatch("%S+") do
local fx_index = tonumber(str_fx_index)
reaper.TrackFX_SetEnabled(track, fx_index, true)
reaper.TrackFX_SetOffline(track, fx_index, false)
end
end
end
reaper.Undo_EndBlock("Restore active fx", -1)
reaper.PreventUIRefresh(-1)
|
|
|
09-19-2020, 04:24 AM
|
#5
|
Human being with feelings
Join Date: Nov 2010
Posts: 2,436
|
Quote:
Originally Posted by Ice
I think I found what to cut out.
Use at your own risk on a copy!
Include these and everything in-between a bracket of a plugin to remove, in a text editor:
So example (if there is automation there will be a lot of events in addition to this, but still between the brackets mentioned above):
This indicates the plugin is bypassed:
And this means it's offline:
|
The ability to text edit almost any type of file is probably the best feature of REAPER.
|
|
|
09-19-2020, 08:35 AM
|
#6
|
Human being with feelings
Join Date: Aug 2014
Posts: 884
|
Quote:
Originally Posted by Embass
before you close project run this script. it saves active fx.
Code:
-- lua script
-- save active fx
for i = 0, reaper.CountTracks(0) - 1 do
local track, fx_indexes = reaper.GetTrack(0, i), {}
for fx_index = 0, reaper.TrackFX_GetCount(track) - 1 do
if reaper.TrackFX_GetEnabled(track, fx_index) and
not reaper.TrackFX_GetOffline(track, fx_index) then
table.insert(fx_indexes, fx_index)
end
end
if #fx_indexes > 0 then
local str_fx_indexes = table.concat(fx_indexes, " ")
reaper.GetSetMediaTrackInfo_String(track, "P_EXT:emb_active_fx_indexes", str_fx_indexes, true) -- write to track obj
else
reaper.GetSetMediaTrackInfo_String(track, "P_EXT:emb_active_fx_indexes", "", true) -- clear
end
end
open project in fx offline mode and run this script. it restores active fx.
Code:
-- lua script
-- restore active fx
reaper.PreventUIRefresh(1)
reaper.Undo_BeginBlock()
for i = 0, reaper.CountTracks(0) - 1 do
local track = reaper.GetTrack(0, i)
local ok, str_fx_indexes = reaper.GetSetMediaTrackInfo_String(track, "P_EXT:emb_active_fx_indexes", "", false)
if ok and str_fx_indexes ~= "" then
for str_fx_index in str_fx_indexes:gmatch("%S+") do
local fx_index = tonumber(str_fx_index)
reaper.TrackFX_SetEnabled(track, fx_index, true)
reaper.TrackFX_SetOffline(track, fx_index, false)
end
end
end
reaper.Undo_EndBlock("Restore active fx", -1)
reaper.PreventUIRefresh(-1)
|
Cheers! I'll give this a go.
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 01:52 AM.
|