Select Tracks & Arm Not Working
Select Tracks & Arm Not Working
System Information
SoundFlow 5.1.11
OS: darwin 17.7.0
ProductName: Mac OS X
ProductVersion: 10.13.6
BuildVersion: 17G65
Steps to Reproduce
- Name multiple tracks to select - (in my case, Mix Limit, Mix Print and ITB)
- Press Shift + R to arm for record
Expected Result
Select all named tracks
Actual Result
The tracks would be selected, but one-by-one, rather than all at once. This has been working for about a month prior.
Workaround
This is part of a larger macro intended to record my mix and export to the correct folder. I've just turned off these initial steps and ran the macro for it to work as expected.
Other Notes
This has only started happening in the last 2 days.
Links
User UID: x7ljIS1i7USMmiAigrmtZxNHPjw2
Feedback Key: sffeedback:x7ljIS1i7USMmiAigrmtZxNHPjw2:-NG1o1vXUVJR2tL0_9eu
- samuel henriques @samuel_henriques
Hello Andy,
Don't know what code you are using, but using the shortcut to activate the rec means you have to wait for all tracks to be selected. Tis is not super stable because the time to select them all might vary from session to session or other factors.
I have a bit of code that clicks the elements instead, can't guarantee its flawless but should help.
Choose witch button you want to press: (press F2 between the commas to see the options)Add track names or look for track names starting with:
/** * @param {AxPtTrackHeader} trackHeader */ function getBtnElement(trackHeader) { return { "Record": trackHeader.buttons.whoseTitle.is("Track Record Enable").first, "Input Mon": trackHeader.buttons.whoseTitle.is("TrackInput Monitor").first, "Solo": trackHeader.soloButton, "Mute": trackHeader.muteButton, }; }; /** * @param {object} param * @param {'Record'|'Input Mon'|'Solo'|'Mute'} param.clickButton * @param {string} [param.trackNameStartsWith] * @param {string[]} [param.trackNames] */ function clickBtnTracksWith({ clickButton, trackNameStartsWith, trackNames }) { // Get track Headers const trackHeaders = sf.ui.proTools.visibleTrackHeaders //Loop headers trackHeaders.map(th => { const trackBtns = getBtnElement(th) try { // If track starts with or track name & btn exists if ((th.normalizedTrackName.startsWith(trackNameStartsWith) || trackNames.includes(th.normalizedTrackName)) && trackBtns[clickButton].exists) { //Click the btn trackBtns[clickButton].elementClick(); }; } catch (err) { }; }); }; sf.ui.proTools.mainWindow.invalidate(); clickBtnTracksWith({ clickButton: "Record", trackNames: ["Audio 25", "Audio 26", "Audio 27"] });
- AAndy Bell @Andy_Bell
Thanks Samuel, I appreciate the reply. I'll update my code with this - however, the issue is that rather than all the tracks selecting at once, SF is cycling through them, then only arming the one track. It seems to be that the Soundflow macro 'Select Tracks by Name' has stopped working on my end? I know this sounds insane, but I haven't changed anything, and it's been working for over a month.
Thanks for your help anyway!
samuel henriques @samuel_henriques
Hello Andy,
'Select Tracks by Name' as far as I know is working as expected. And it doesn't select all tracks at once.
But in my experience, If you only have 2 3 tracks on a small session, it can look like selecting all tracks at once, just because it's really fast.
If you have a big session or lots of tracks to select, or you system is using a lot of memory or even SF might need a quit restart, in these cases you'll notice the tracks being selected. Also, setting record enable on tracks is not instant to pro tools, so using the shortcut right after asking SF to select tracks is not a stable solution.Hope this makes sense.
- AAndy Bell @Andy_Bell
Thanks Samuel, I might try and re-do the macro from scratch. It's a little confusing to me because previously the three tracks were armed and ready to record, and later in the script they were de-armed, and another channel was primed, ready to record. Weird, but thanks for your help anyway!
samuel henriques @samuel_henriques
Not sure if I understood.
Be aware the script is toggling the buttons, so if you run it twice, or some are already enabled, it will still click them, causing the buttons to change.
But it's possible to write different behaviour.