Izotope RX 10 Module Chain Presets
By David Alba @David_Alba
Hi!
I Just want that with just 1 button on my stream deck open the module chain on izotope RX 10 then choose the preset that I want to use and render.
I'm not an expert in java (still learning) and I appreciate your help!

- OOwen Granich-Young @Owen_Granich_Young
Give this a whirl, thanks @Kitch for leaving the Izotope package open, most of the code jacked from there. Maybe you want to add to your Presets Category in your Izotope package (with removal of render button and some vetting of course)
@David_Alba just set your preset name in the last line where currently
'Podcast'
is.// Bail out if iZotope is not running if (!sf.ui.izotope.isRunning) throw `iZotope RX is not running`; ////Wait forISZOTOPE function activateAndWaitForiZotope() { const izotope = sf.ui.izotope; izotope.appActivate(); let tries = 0; while (!sf.ui.frontmostApp.title.value.includes("iZotope") && tries < 20) { sf.wait({ intervalMs: 100 }); tries++; } if (tries === 20) throw `Could not activate iZotope RX`; } ///tools to work on preset select function main(presetName) { const izotope = sf.ui.izotope; const modChainWin = izotope.windows.whoseTitle.is("Module Chain").invalidate().first; const presetPopupBtn = modChainWin.popupButtons.first; activateAndWaitForiZotope(); if (!modChainWin.exists) { izotope.menuClick({ menuPath: ["Window", "Module Chain"], targetValue: "Enable" }); modChainWin.elementWaitFor(); modChainWin.windowRestore(); } //Set the Batch Processor Preset presetPopupBtn.value.value = presetName; //Regex removes keyboard shortcut displayed inside square brackets if (presetPopupBtn.value.invalidate().value && presetPopupBtn.value.invalidate().value.replace(/ \[[^\]]*\]$/, '') !== presetName) { while (presetPopupBtn.value.invalidate().value.replace(/ \[[^\]]*\]$/, '') !== presetName) { presetPopupBtn.elementClick({ actionName: "AXMenuPress" }); sf.keyboard.press({ keys: "down" }); sf.keyboard.press({ keys: "return" }); sf.wait({ intervalMs: 100 }); } } sf.ui.izotope.windows.whoseTitle.is("Module Chain").first.buttons.whoseDescription.is("Render").first.elementClick(); } main('Podcast')