No internet connection
  1. Home
  2. Support

Zoom Waveforms for Pro Tools not working

By Matt Friedman @Matt_Friedman
    2025-08-08 17:56:17.386Z

    Title

    Zoom Waveforms for Pro Tools not working

    What do you expect to happen when you run the script/macro?

    Zoom's waveforms

    Are you seeing an error?

    What happens when you run this script?

    Nothing happens at all. At first I added the Zoom Waveforms Factory Presets to a new Stream Deck Plus knobs, but got no results. I can "Run Script" from the Zoom In or Zoom Out and still waveforms do not zoom in the session.

    How were you running this script?

    I clicked the "Run Script" or "Run Macro" button in SoundFlow

    How important is this issue to you?

    4

    Details

    {
        "inputExpected": "Zoom's waveforms",
        "inputIsError": false,
        "inputWhatHappens": "Nothing happens at all. At first I added the Zoom Waveforms Factory Presets to a new Stream Deck Plus knobs, but got no results. I can \"Run Script\" from the Zoom In or Zoom Out and still waveforms do not zoom in the session.",
        "inputHowRun": {
            "key": "-MpfwYA4I6GGlXgvp5j1",
            "title": "I clicked the \"Run Script\" or \"Run Macro\" button in SoundFlow"
        },
        "inputImportance": 4,
        "inputTitle": "Zoom Waveforms for Pro Tools not working"
    }

    Source

    /** @ts-ignore */
    const { ensureCluster } = require('package:cksj8ip2g00001z10pm13sfs4'); //KM Ensure Cluster Module
    const { zoomDirection } = event.props;
    
    /**
     * @param {String} direction
     */
    function zoomAudioWaveform(direction) {
        if (!sf.ui.proTools.isRunning) throw `Pro Tools is not running`;
        
        sf.ui.proTools.appActivateMainWindow();
        const isEditWinFocused = sf.ui.proTools.windows.first.title.invalidate().value.startsWith('Edit: ');
    
        ensureCluster({ clusterName: 'Zoom Controls' });    
    
        const zoomQuadrantCluster = sf.ui.proTools.mainWindow.zoomQuadrantCluster;
        const audioZoomInBtn = zoomQuadrantCluster.audioZoomInButton;
    
        if (isEditWinFocused && direction === 'In') {
            audioZoomInBtn.mouseClickElement({
                relativePosition: { "x": 0, "y": 3 },
                anchor: "TopCenter",
            });
        } else if (isEditWinFocused && direction === 'Out') {
            audioZoomInBtn.mouseClickElement({
                relativePosition: { "x": 0, "y": -3 },
                anchor: "BottomCenter",
            });
        }
    }
    
    zoomAudioWaveform(zoomDirection);
    

    Links

    User UID: 2FEbvmxaByaWbeBh5fRIjEwuOjA3

    Feedback Key: sffeedback:2FEbvmxaByaWbeBh5fRIjEwuOjA3:-OX9oswC2kqjA8ProQw0

    Feedback ZIP: 6aqjCreekjSVtdjfAZ6eaRajx0VRkYQDvs9UG0C6x+wntoL6cyZ71/rn8GMW3zQMelI0MB5GdHKOCiPxSOjjmdalWD5vhEHOVQ3sDa7Kj1k9gst3F6FzkdtLUh0kYsPprhGgr0Vy/3VHym80Ux3EDmyIpWBqXWMM7Xc5cD/d6UD7Rh/CYDacdR1hqu1nyOnZeqXV0U26TXjrn5N6EYE3VyOrKsNCpwpYzW4I32+mC7ASlLBH81CPX8dUTc3pKsWP9KOy1Oq1FeCJz/PV1L0p04EO0HsoBJmoKW1WcHUZflJpe+InFJlwwQfP9wC7RUE6ZHOAjcpyYHF0aCXpFK1oBQ==

    • 4 replies
    1. S
      SoundFlow Bot @soundflowbot
        2025-08-09 03:01:28.953Z

        This issue is now tracked internally by SoundFlow as SF-2406

        1. In reply toMatt_Friedman:
          Kitch Membery @Kitch2025-08-09 03:21:31.714Z

          Thanks for reporting this @Matt_Friedman

          I've logged this internally, and we'll let you know when it has been addressed.

          Till the command is fixed, here is a workaround.

          /** @ts-ignore */
          const { ensureCluster } = require('package:cksj8ip2g00001z10pm13sfs4'); //KM Ensure Cluster Module
          const { zoomDirection } = event.props;
          
          /**
           * @param {String} direction
           */
          function zoomAudioWaveform(direction) {
              if (!sf.ui.proTools.isRunning) throw `Pro Tools is not running`;
              
              sf.ui.proTools.appActivateMainWindow();
              const isEditWinFocused = sf.ui.proTools.windows.whoseTitle.startsWith('Edit: ').first.isFocused;
          
              ensureCluster({ clusterName: 'Zoom Controls' });    
          
              const zoomQuadrantCluster = sf.ui.proTools.mainWindow.zoomQuadrantCluster;
              const audioZoomInBtn = zoomQuadrantCluster.audioZoomInButton;
          
              if (isEditWinFocused && direction === 'In') {
                  audioZoomInBtn.mouseClickElement({
                      relativePosition: { "x": 0, "y": 3 },
                      anchor: "TopCenter",
                  });
              } else if (isEditWinFocused && direction === 'Out') {
                  audioZoomInBtn.mouseClickElement({
                      relativePosition: { "x": 0, "y": -3 },
                      anchor: "BottomCenter",
                  });
              }
          }
          
          zoomAudioWaveform(zoomDirection);
          

          On a side note, I'd like to mention that we really appreciate the help you've been giving other SoundFlow Community members in the forum. It has not gone unnoticed by the team. I'd love to jump on a Zoom call with you sometime if that's something you'd be interested in. Please reach out to support@soundflow.org, and we can tee up a time. :-)

          1. Matt Friedman @Matt_Friedman
              2025-08-09 15:47:27.730Z

              I'm thoroughly confused at the moment now, LOL!

              This might be because I've been trying to assign the Soundflow / Pro Tools / Zoom / Zoom Waveforms presets for Zoom In and Zoom Out to a new StreamDeck Plus rotary knob.

              Your updated code does not work for me because the isEditWinFocused is coming back false (PT 2024.10 & Ventura).

              I went back to the original Zoom waveform presets and now it works again!?!? Perhaps the rotary knobs send too many commands to SF at once and SF kind of break sometimes???

              1. Kitch Membery @Kitch2025-08-09 18:47:42.050Z

                Yes, that might be the case, it also might be an invalidation issue...

                try changing

                    const isEditWinFocused = sf.ui.proTools.windows.whoseTitle.startsWith('Edit: ').first.isFocused;
                

                to

                    const isEditWinFocused = sf.ui.proTools.windows.invalidate().whoseTitle.startsWith('Edit: ').first.isFocused;