No internet connection
  1. Home
  2. How to

Izotope RX 10 Module Chain Presets

By David Alba @David_Alba
    2024-05-14 23:54:43.349Z

    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!

    • 1 replies
    1. O

      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')