No internet connection
  1. Home
  2. How to

Automating "Save As Track Preset" to use Track Data Presets

Hi there! Since there currently is no way to override the default track data to save in a track preset (ugh PT...) I'm looking for a way to automate it. Specifically looking to have SoundFlow click "Track Data To Recall..." (screenshot below) and then click "Preset 1" in the following dialog box (also screenshot below

I believe the script would start like this?

function saveTrackPreset({ categoryFolderMenuPath, tags }) {
    // Open Save Track Preset
    sf.ui.proTools.menuClick({
        menuPath: ["Track", "Save Track Preset..."],
    });

    // Identify the Save Track Preset window
    const saveTrackPresetWin = sf.ui.proTools.windows.whoseTitle.is("Save Track Preset ").first;

    // Wait for Save Track Preset window to open
    saveTrackPresetWin.elementWaitFor();

I have basically 0% knowledge on how to begin writing scripts for PT but would love to learn! Thank you for any and all help.

  • 3 replies
  1. Chad Wahlbrink @Chad2025-01-21 17:03:37.995Z

    Thanks for the question, @Joey_Messina_Doernin!

    Here's a quick video on how I would approach this kind of question:

    The resulting script would be this:

    
    // Activate Main Window of Pro Tools
    sf.ui.proTools.appActivateMainWindow();
    
    // Open Save Track Preset
    sf.ui.proTools.menuClick({
        menuPath: ["Track", "Save Track Preset..."],
    });
    
    // Identify the Save Track Preset window
    const saveTrackPresetWin = sf.ui.proTools.windows.whoseTitle.is("Save Track Preset").first
    
    // Wait for Save Track Preset window to open
    saveTrackPresetWin.elementWaitFor();
    
    // Clicking "Track Data to Recall..."
    sf.ui.proTools.windows.whoseTitle.is("Save Track Preset").first.buttons.whoseTitle.is("Track Data to Recall...").first.elementClick();
    
    // Wait for "Track Data to Recall" Window to Appear
    sf.ui.proTools.windows.whoseTitle.is("Track Data to Recall").first.elementWaitFor();
    
    // Click "Preset Toggle 1"
    sf.ui.proTools.windows.whoseTitle.is("Track Data to Recall").first.buttons.whoseTitle.is("Preset Toggle 1").first.elementClick();
    
    // Clicking "OK" on "Track Data to Recall" Window
    sf.ui.proTools.windows.whoseTitle.is("Track Data to Recall").first.buttons.whoseTitle.is("OK").first.elementClick();
    
    // Wait for "Track Data to Recall" Window to Disappear
    sf.ui.proTools.windows.whoseTitle.is("Track Data to Recall").first.elementWaitFor({waitType: "Disappear" });
    
    // Click "OK" on the "Save Track Preset" window
    sf.ui.proTools.windows.whoseTitle.is("Save Track Preset").first.buttons.whoseTitle.is("OK").first.elementClick()
    
    // Wait for Save Track Preset window to open
    saveTrackPresetWin.elementWaitFor({waitType: "Disappear" });
    
    
    1. J

      Hey Chad, this was phenomenally helpful, thank you for your time!! Exactly the script I needed, and with an easy to follow tutorial to boot. Thanks again!

      1. Chad Wahlbrink @Chad2025-01-21 20:41:59.241Z

        Happy to share! Thanks, @Joey_Messina_Doernin