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.
- 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" });
- JIn reply toJoey_Messina_Doernin⬆:Joey Messina-Doerning @Joey_Messina_Doernin
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!
Chad Wahlbrink @Chad2025-01-21 20:41:59.241Z
Happy to share! Thanks, @Joey_Messina_Doernin