How to open multiple AudioSuite instances and render in one go
Hi,
I'd liek to be able to open 3 audio suite instances at once and render the selected audiow tih all of the plugins in 1 go. Can this be done?
Thanks
- MMike Avenaim @Mike_Avenaim
This is what i have so far.... maybe there is a cleanre way to do it...
const window = sf.ui.proTools.audioSuiteOpenPlugin({ category: "Noise Reduction", name: "RX 7 De-Click", }).window; sf.ui.proTools.firstAudioSuiteWindow.buttons.whoseTitle.is('Target button').first.elementClick(); sf.ui.proTools.windows.whoseTitle.is('Audio Suite: RX 7 De-click').first.windowMove({ position: {"x":100,"y":300}, }); const window2 = sf.ui.proTools.audioSuiteOpenPlugin({ category: "Noise Reduction", name: "RX 7 Mouth De-Click", }).window; sf.ui.proTools.firstAudioSuiteWindow.buttons.whoseTitle.is('Target button').first.elementClick(); sf.ui.proTools.firstAudioSuiteWindow.windowMove({ position: {"x":600,"y":300}, size: {"x":1,"y":0}, }); const window3 = sf.ui.proTools.audioSuiteOpenPlugin({ category: "EQ", name: "FabFilter Pro-Q 3", }).window; sf.ui.proTools.firstAudioSuiteWindow.windowMove({ position: {"x":10,"y":700}, size: {"x":0,"y":0}, }); window.audioSuiteRender(); window2.audioSuiteRender(); window3.audioSuiteRender(); window.windowClose(); window2.windowClose(); window3.windowClose();
Kitch Membery @Kitch2020-10-25 17:30:26.688Z
@Mike_Avenaim you legend! Great to see you here in the forum! :-)
So I took a look at that video you showed me, and it looks to me like the AudioSuite windows were being opened from a stored Window Configuration. That's probably going to be the best way to do it. Later today 'll take a look and see if I can whip up a script for you to do the whole workflow.
Oh and by the way, be sure to watch this video on how to quote code in the forum.
Rock on!
- MMike Avenaim @Mike_Avenaim
Ok awesome. Thank you!
Sorry about pasting the code here. Do you need me to send it again?
Kitch Membery @Kitch2020-10-25 17:40:43.521Z
All good I fixed it for you mate :-)
- In reply toMike_Avenaim⬆:
Christian Scheuer @chrscheuer2020-10-25 18:27:38.362Z
Great work getting this done!
If you don't mind it opening the plugins one by one, you could get a slightly cleaner looking code (which is also more easily extensible) this way:
function openAndRenderAudioSuitePlugin({ category, name }) { const window = sf.ui.proTools.audioSuiteOpenPlugin({ category, name, }).window; window.audioSuiteRender(); window.windowClose(); } const pluginsToRender = [ { category: "Noise Reduction", name: "RX 7 De-Click", }, { category: "Noise Reduction", name: "RX 7 Mouth De-Click", }, { category: "EQ", name: "FabFilter Pro-Q 3", }, ]; pluginsToRender.forEach(openAndRenderAudioSuitePlugin);
Daniel Perez @daniel_perez
or just use bluecat's patchwork to host multiple plugins.
- In reply toMike_Avenaim⬆:
Kitch Membery @Kitch2020-10-25 19:24:14.551Z
Hi Mike,
@chrscheuer's script is more accessible for sure and requires no setup, however if you wanted to use window configurations to have more than one plugin open you could use the code below;
There is a bit of setup involved... you'll need to create a new window configuration in Pro Tools with the three plugins open, with the settings you like.
You'll also need to update
selectWindowConfigByName('WINDOW CONFIG NAME');
with your window configuration name.function selectWindowConfigByName(windowConfigName) { var allConfigurationItems = sf.ui.proTools.getMenuItem('Window', 'Configurations').children.first.children.map(c => { var m = c.title.value.match(/^(\d+):\s+(.+)$/); return { num: m && Number(m[1]), title: m && m[2], element: c, }; }).filter(i => i.num); var item = allConfigurationItems.filter(i => i.title === windowConfigName)[0]; if (!item) throw `Could not find window configuration with name: "${windowConfigName}"`; item.element.elementClick(); } function processAusioSuiteAndClose(pluginName) { sf.ui.proTools.windows.whoseTitle.contains(pluginName).first.elementRaise(); sf.ui.proTools.audioSuiteRenderCurrent(); sf.ui.proTools.windows.whoseTitle.contains(pluginName).first.windowClose(); } function main() { const pluginNames = [ "RX 7 De-click", "RX 7 Mouth De-click", "FabFilter Pro-Q 3", ]; selectWindowConfigByName('WINDOW CONFIG NAME'); pluginNames.forEach(processAusioSuiteAndClose); } main();
Let me know if you get stuck.
- MMike Avenaim @Mike_Avenaim
Ok awesome. I did try it using window configurations earlier while I was building the macro but I couldn’t get it to work.
I’ll try this guy now!
Thank you both.
- In reply toKitch⬆:MMike Avenaim @Mike_Avenaim
Hey! So all of this seems to be working great but the windows are not autmatically closing once the process is finished. Here is the code....
function selectWindowConfigByName(windowConfigName) { var allConfigurationItems = sf.ui.proTools.getMenuItem('Window', 'Configurations').children.first.children.map(c => { var m = c.title.value.match(/^(\d+):\s+(.+)$/); return { num: m && Number(m[1]), title: m && m[2], element: c, }; }).filter(i => i.num); var item = allConfigurationItems.filter(i => i.title === windowConfigName)[0]; if (!item) throw `Could not find window configuration with name: "${windowConfigName}"`; item.element.elementClick(); } function processAusioSuiteAndClose(pluginName) { sf.ui.proTools.windows.whoseTitle.contains(pluginName).first.elementRaise(); sf.ui.proTools.audioSuiteRenderCurrent(); sf.ui.proTools.windows.whoseTitle.contains(pluginName).first.windowClose(); } function main() { const pluginNames = [ "RX 7 De-click", "RX 7 Mouth De-click", "FabFilter Pro-Q 3", ]; selectWindowConfigByName('Vocal Mix Prep');
Kitch Membery @Kitch2020-10-25 20:39:10.171Z
Ahh... I'm using RX 8, so I may have the names of the plugins incorrect (capital letters etc)... try changing the following
const pluginNames = [ "RX 7 De-click", "RX 7 Mouth De-click", "FabFilter Pro-Q 3", ];
to
const pluginNames = [ "RX 7 De-Click", "RX 7 Mouth De-Click", "FabFilter Pro-Q 3", ];
- In reply toMike_Avenaim⬆:
Kitch Membery @Kitch2020-10-25 20:51:17.189Z2020-10-25 21:14:18.146Z
Actually try this;
function selectWindowConfigByName(windowConfigName) { var allConfigurationItems = sf.ui.proTools.getMenuItem('Window', 'Configurations').children.first.children.map(c => { var m = c.title.value.match(/^(\d+):\s+(.+)$/); return { num: m && Number(m[1]), title: m && m[2], element: c, }; }).filter(i => i.num); var item = allConfigurationItems.filter(i => i.title === windowConfigName)[0]; if (!item) throw `Could not find window configuration with name: "${windowConfigName}"`; item.element.elementClick(); } function processAusioSuiteAndClose(pluginName) { sf.ui.proTools.windows.whoseTitle.contains(pluginName).first.elementRaise(); sf.ui.proTools.audioSuiteRenderCurrent(); sf.ui.proTools.windows.whoseTitle.contains(pluginName).first.windowClose(); } function main() { const pluginNames = [ "RX 7 De-Click", "RX 7 Mouth De-Click", "FabFilter Pro-Q 3", ]; selectWindowConfigByName('Vocal Mix Prep'); pluginNames.forEach(processAusioSuiteAndClose); } main();
Updated.
- MMike Avenaim @Mike_Avenaim
For some reason it still isnt closing...?
- MMike Avenaim @Mike_Avenaim
Also - on a complete side note: it seems as though the function for me to be able to type on my keboard to search for a plugin or output quickly is gone since installing SoundFlow. Is there a way to get that back?
Kitch Membery @Kitch2020-10-25 21:06:50.939Z
This is an issue that SoundFlow does not have control over... However here is a link to the work around.
- In reply toMike_Avenaim⬆:
Kitch Membery @Kitch2020-10-25 22:00:23.040Z
Mike... To log a support requeset follow the #2 help/issue workflow in this video;
- MMike Avenaim @Mike_Avenaim
Just did it now! Thank you!
- In reply toMike_Avenaim⬆:
Kitch Membery @Kitch2020-10-25 21:15:18.468Z
Just updated the script above. Double check the plugin names before you run it.
- MMike Avenaim @Mike_Avenaim
Checking now
- In reply toKitch⬆:MMike Avenaim @Mike_Avenaim
Still the same... Everything is opening and running correctly. Just wont close..HAHA!
Kitch Membery @Kitch2020-10-25 21:34:04.527Z
I've got iZotope RX 7 so I'll install and try it later this afternoon.
Are the target buttons in the corners of the plugins red by chance?
- MMike Avenaim @Mike_Avenaim
Just tested it again and for some reason now its working haha.
Kitch Membery @Kitch2020-10-25 21:44:30.828Z
I may need to add some error checking in there. Will take a look later tonight.