Pro Tools v2024.3.1 menus disappear when Soundflow (v5.7.7) is running/paused (OS 14.4.1)
System Information
SoundFlow 5.7.7
OS: darwin 23.4.0
ProductName: macOS
ProductVersion: 14.4.1
BuildVersion: 23E224
Steps to Reproduce
- Launch SoundFlow
- Lauch PT 2024.3.1
- Pro Tools dropdown menus appear then disappear automatically when clicked without a session being open (File, Edit, View, etc).
- All insert/send/IO/right-click clip menus, etc have the same disappearing behavior described above when a session is open. BUT, the aforementioned drop-down menus behave normally with a session open.
Expected Result
I would expect menus not to disappear.
Actual Result
Menus disappear
Workaround
Quitting SoundFlow is the only action that remedies the behavior. If SoundFlow is active or paused the menu error persists.
Other Notes
My colleagues with the same setups are experiencing the same behavior. I am unsure if a specific script is causing the error, or the SoundFlow app in general. Thanks!
Links
User UID: 3an3x0tVk4UwZOlKlesteR4BnOv1
Feedback Key: sffeedback:3an3x0tVk4UwZOlKlesteR4BnOv1:-Nxxa3wDV2rga6wt0DFg
Feedback ZIP: 2+P7zUII6kPmT2hfMYclvgsDOZti0ci43DarJUwQ2jiBjZcjT0n0uiz10NPJOLeDut6JPTEisy3Wm2PTwTj/ps69sgThnoguOP14SMXVHc0Wed8GJCiVYA4ucTZmMvwRPmHgUMMxYBi6ygrXEeq+AZ/vk9pjzTnrlK54Me/rwjgg2a7l4RokU49e/hUk8AcJvw0Z/iZrOearNCy04GUR50HQM5Q5iTTplwme1ZIgJnSuDCYwkDeyguW8uuhaKeQHEhS270XC1lCD2ij1sSBd9WFLnXiu+mVotykFeVq+MHkz1UGW6fC1uxAOPuxxh0IQDB76q9Evx9gcoweAmd+yew==
Linked from:
- In reply toDarren_Vermaas⬆:Curtis Macdonald @Curtis_Macdonald
Update: I believe this behavior is isolated to "Output Window: Follow Selected Track" when this is disabled, Pro Tools menus, GUI behaves normally. When it's active, menus disappear quickly.
- In reply toDarren_Vermaas⬆:Christian Scheuer @chrscheuer2024-05-15 20:06:23.408Z
Hi Darren,
As Curtis mentioned, this appears to happen if you have commands/scripts running in the background - for example the "Output Window: Follow Selected Track", or one of our apps that routinely call Pro Tools in the background.
This unfortunately appears to be a regression in Pro Tools 2024.3, which had a lot of new code about menu handling. It appears that Pro Tools essentially cancels popup menus if SoundFlow asks it anything.
I'll be sure to report this to Avid, as this bug is on the Pro Tools side, so there's nothing SF can do about it. The only workaround would be to avoid using SoundFlow apps that need to communicate with Pro Tools in the background.
- SIn reply toDarren_Vermaas⬆:SoundFlow Bot @soundflowbot
This report was now added to the internal issue tracked by SoundFlow as SF-1189
- DIn reply toDarren_Vermaas⬆:Darren Vermaas @Darren_Vermaas
Thanks for confirming @Curtis_Macdonald and @chrscheuer. Hoping this can be fixed as it's a huge time-saver when mixing! I have a separate case open with Avid and will also pass along the note.
- SIn reply toDarren_Vermaas⬆:SoundFlow Bot @soundflowbot
Linked issue SF-1189 updated: The bug in which Pro Tools context/popup menus could disappear if a SoundFlow script (or any other software) would be sending a message to Pro Tools, has been fixed in Pro Tools 2024.10.
- SIn reply toDarren_Vermaas⬆:SoundFlow Bot @soundflowbot
The linked internal issue SF-1189 has been marked as Done
- In reply toDarren_Vermaas⬆:Curtis Macdonald @Curtis_Macdonald
This issue appears to have resurfaced in another update. Pro Tools 24.10.2.205 and SoundFlow 5.10.1
An alternative Output Window Follow script seems to avoid the disappearing or flickering menus, created by @Owen_Granich_Young:
var lastFocusedTrackName; globalState.runAutoFollowOutputWin = !globalState.runAutoFollowOutputWin function main() { try { var newName = sf.ui.proTools.selectedTrackNames[0]; if (newName === lastFocusedTrackName || newName === undefined) return; lastFocusedTrackName = newName; if (sf.ui.proTools.selectedTrack.outputWindowButton.value.invalidate().value !== 'open') sf.ui.proTools.selectedTrack.trackOutputToggleShow({ onError: 'Continue' }); } catch (err) { } } function runForever(name, action, interval, timeout) { var now = (new Date).valueOf(); if (now - globalState[name] < timeout) throw 0; //Exit if we were invoked again inside the timeout globalState[name] = now; sf.engine.runInBackground(function () { try { while (true && globalState.runAutoFollowOutputWin) { sf.engine.checkForCancellation(); globalState[name] = (new Date).valueOf(); action(); sf.wait({ intervalMs: interval, executionMode: 'Background' }); } } finally { globalState[name] = null; } }); } runForever("isFollowFocusedTrackRunning", main, 500, 5000);
- OOwen Granich-Young @Owen_Granich_Young
Oh this is all @samuel_henriques genius, I just saved it and share it to people a lot as it's one of those 'oh sick!' SF things.
samuel henriques @samuel_henriques
I must say this is all @chrscheuer genius!!
Maybe I added thetrackOutputToggleShow
bit.