Pro Tools 2025.6 heads up
Just a friendly note, if you use Soundflow to create new Pro Tools sessions (for example), nearly every named object on the Dashboard window has changed in Pro Tools 2025.6. Also, the popUpMenu.select seems broken in 2025 as well.
If you need that functionality (as well do), I would hold off upgrading outside of a test environment.
-Randall
- RRandall Smith @Randall_Smith
To follow up. This sepcifically is not working:
sf.ui.proTools.windows.whoseTitle.is("Pro Tools Ultimate 2025.6").first.buttons.whoseTitle.is("Session Configuration").first.popupButtons.first.popupMenuFetchAllItems({ dismissMenu: true, });
SF will open the correct pop up menu. This hold true for 'File Type, Sample Rate, Bit Depth and I/O Settings. SF cannot close the resulting open menu, nor can it choose the correct menu item.
In this example:
sf.ui.proTools.windows.whoseTitle.is("Pro Tools Ultimate 2025.6").first.buttons.whoseTitle.is("Session Configuration").first.popupButtons.allItems[3].popupMenuSelect({ menuPath: ["Starz PTU Template - Clean"], });
I get :
Could not open popup menu
Popup menu was not found
Popup window was not found after waiting 2000 msI am on SF v 5.10.2
What do I need to change in order to correctly select menu items in the new create session dashboard?
Kitch Membery @Kitch2025-06-18 00:50:52.067Z
Hi again @Randall_Smith,
On further inspection, I believe the change to the dashboard may have caused some issues.
I'll take a look and shall report back with what I find asap.
Thanks for bringing this to our attention. :-)
- In reply toRandall_Smith⬆:Kitch Membery @Kitch2025-06-18 00:25:20.024Z
I'm sorry you are experiencing this.
You've mentioned here in your post that the popupMenuSelect functionality seems broken in Pro Tools 2025.6.
If you are experiencing an issue like this, please log a bug report so we can investigate and troubleshoot the issue further, as our internal testing has not uncovered any change in the stability of the popupMenuSelect method.
To log a Help Issue request, please follow the steps in the following article/video
https://soundflow.org/docs/help#help-issueAs you are aware, Avid made some changes to the Dashboard in Pro Tools, so your scripts and macros may need some updating. The fix might be as simple as re-picking the elements that are not being found, as their UI names or index may have changed.
Let me know if you have any specific questions, and I'd be more than happy to take a look.
Thanks in advance.
- MIn reply toRandall_Smith⬆:Matt Friedman @Matt_Friedman
Use the SDK instead of UI.
sf.app.proTools.createSession()
sf.app.proTools.createSessionFromTemplate()
- In reply toRandall_Smith⬆:Kitch Membery @Kitch2025-06-18 03:07:52.898Z2025-06-18 17:56:05.741Z
Here is a workaround for setting the four pop-up menus in the "Session Configuration" section of the Dashboard until an internal fix is implemented.
function main() { sf.ui.proTools.appActivate(); const dashboard = sf.ui.proTools.windows.whoseTitle.startsWith("Pro Tools").first; // Invalidate the dashboard to ensure it returns fresh UI Elements dashboard.invalidate(); function selectFromPopupMenu({ popupButton, menuPath }) { popupButton.elementClick({ asyncSwallow: true }); sf.waitFor({ callback: () => dashboard.invalidate().groups.whoseTitle.is("Drop down popup").first.exists, timeout: 1000, }); const popupMenu = dashboard.invalidate().groups.whoseTitle.is("Drop down popup").first; const targetMenuItem = popupMenu.children.find(mi => mi.title.invalidate().value.endsWith(menuPath[0])) targetMenuItem.popupMenuSelect({ menuSelector: items => items.filter(mi => mi.path[0].endsWith(menuPath[0])), onError: "Continue", timeout: 100, }); sf.waitFor({ callback: () => popupButton.title.invalidate().value === menuPath[0] && !dashboard.invalidate().groups.whoseTitle.is("Drop down popup").first.exists, timeout: 1000, }); } const sessionConfigurationPanel = dashboard.buttons.whoseTitle.is("Session Configuration").first const popupButtons = sessionConfigurationPanel.popupButtons; const [fileTypePopupMenu, sampleRatePopup, bitDepthPopup, ioSettingsPopup] = popupButtons.map(pb => pb); selectFromPopupMenu({ popupButton: fileTypePopupMenu, menuPath: ["AIFF"], }); selectFromPopupMenu({ popupButton: sampleRatePopup, menuPath: ["44.1 kHz"], }); selectFromPopupMenu({ popupButton: bitDepthPopup, menuPath: ["24-bit"], }); selectFromPopupMenu({ popupButton: ioSettingsPopup, menuPath: ["Last Used"], }); } main();
Let me know if that works for you.
Thanks again for bringing this to our attention. :-)
UPDATED. In case you are not having success with the SDK command, I've updated this one to wait for the titles to match before moving on to the next menu.
- RRandall Smith @Randall_Smith
Thank you for the help.
I found that while it works, it is very inconsistent. The Pro Tools UI on the popupMenu select it laggy, so I added a wait command for 250 ms between lines 17 and 19. Without this pause, (which the timeout might just do) SF fails to pick the menu item on subsequent popupmenu selections.
Also, if there are too many selections, such as with the templateIO, it will not pick the correct one.
I have this working well enough for me at the moment, but it isn't as stable as other things.
- MMatt Friedman @Matt_Friedman
Just gonna chime in again that you can get consistent results using this much simpler approach:
sf.app.proTools.createSession({ fileType: "AIFF", sampleRate: "SR44100", bitDepth: "Bit24", inputOutputSettings: "IOLast", isCloudProject: false, isInterleaved: true, sessionName: "", parentDirectory: "", })
Or loading from a template:
sf.app.proTools.createSessionFromTemplate({ fileType: "AIFF", sampleRate: "SR44100", bitDepth: "Bit24", inputOutputSettings: "IOLast", isCloudProject: false, isInterleaved: true, sessionName: "", parentDirectory: "", templateGroup: "", templateName: "Starz PTU Template - Clean", })
Kitch Membery @Kitch2025-06-18 16:33:39.615Z
I completely forgot there was a Pro Tools SDK call for this. That is the best approach, for sure.
- RRandall Smith @Randall_Smith
Is there a list of all of the SDK commands?
Kitch Membery @Kitch2025-06-18 20:37:42.102Z
We don't have a list available of all the SDK commands; however, you can use code hinting to discover what SDK commands are available in SoundFlow.
To do this, in a script, type...
sf.app.proTools.
When you type the last period, you will see a list of all the methods available.
I hope that helps. :-)
- In reply toMatt_Friedman⬆:RRandall Smith @Randall_Smith
Thank you so much. I will look into this. I manage a group of multiple users, and as such my pro tools templates are on a shared volume instead of the Documents folder. Can I point directly to the correct template in the 'templateName' field?
z.B.:
/Volumes/audio2a/Library/TEMPLATES/Starz PTU Template ${timeCodeRate}/Starz PTU Template ${timeCodeRate}.ptxt
- MMatt Friedman @Matt_Friedman
The value of the templateName should be the same as it appears in the New Session window's window area for your templates.
- In reply toRandall_Smith⬆:MMatt Friedman @Matt_Friedman
So maybe:
templateGroup: `Starz PTU Template ${timeCodeRate}`, // or whatever your template group usually is named templateName: `Starz PTU Template ${timeCodeRate}`,
- In reply toMatt_Friedman⬆:RRandall Smith @Randall_Smith
@Matt_Friedman, I don't want to derail this. You are correct, in that this seems like a more solid way to go. for the inputOutputSettings, I can change that to be 'IOUserDefined', but how do I define what PTIO I wish to use? The script runs but doesn't prompt for a selection. Adding in the Template IO name into that selection creates an error.
I am assuming there is something that goes below like: IOUserDeinfed: ""-Randall
- MMatt Friedman @Matt_Friedman
That's above my pay grade... @Kitch ?
- In reply toRandall_Smith⬆:RRandall Smith @Randall_Smith
@Kitch ,
Is there a way to get Soundflow to show a list of the accepted args for a given function or method?
Using type hints and the SDK documentation, I have been able to figure some out through trial and error. If I had that, I would probably be able to answer the above question on my own since I could check for the correct arg that proTools.createSesisonFromTemplate was expecting for the user defined IO
Kitch Membery @Kitch2025-06-20 18:33:07.481Z
You certainly can. Here's how.
https://www.loom.com/share/8d62b9b6f8c645109d9a8f334a3e9be3?sid=9675b507-1a5e-4e75-a186-fe7b53eec43c
I hope that helps. :-)
- MMatt Friedman @Matt_Friedman
Randall gets his own personalized video? I'm jealous!!
Kitch Membery @Kitch2025-06-20 21:09:24.493Z
You’re all special to me!!! I’ll be sure to make one for you at some point, @Matt_Friedman :-)
- In reply toRandall_Smith⬆:
Kitch Membery @Kitch2025-06-18 16:39:05.576Z
There are certainly improvements that could be made to this script. However, it may be better to use Matt's suggestion. :-)
- In reply toRandall_Smith⬆:
Kitch Membery @Kitch2025-06-18 20:43:04.831Z
FYI, I'm not sure if you saw it or not, but I updated the original script in case you were unsuccessful using the SDK command. :-)
- SIn reply toRandall_Smith⬆:SoundFlow Bot @soundflowbot
This issue is now tracked internally by SoundFlow as SF-1991