What would be the best way to assign a hot key or button on a deck to flip the phase in FabFilter ProQ?
This plugin ends up everywhere for me so chances are it'll be somewhere on every track and would be the easiest way to flip the polarity on a track if I didn't have to click through to the phase button in the plugin window. . . Any body tried this or similar?
- samuel henriques @samuel_henriques
Hello Gary
This should work to toggle the phase button. Should work on proQ 2 or 3.
Its set for the extra large sizeconst firstFabFilter = sf.ui.proTools.children.whoseRole.is("AXWindow").whoseTitle.startsWith("Plug-in: FabFilter Pro-Q").first const menuPos = { "x": 990, "y": 810 }; const phaseBtnPos = { "x": 990, "y": 787 } if (firstFabFilter.exists) { firstFabFilter.mouseClickElement({ relativePosition: menuPos }); sf.wait({ intervalMs: 200 }); firstFabFilter.mouseClickElement({ relativePosition: phaseBtnPos }); sf.wait({ intervalMs: 200 }); firstFabFilter.mouseClickElement({ relativePosition: menuPos }); };
If you need to adapt the script, here's Kitch explaining the process.
How to use "Mouse Click Relative to UI Element" to simulate mouse clicks in Pro Tools. - In reply toGary_Philips⬆:Gary Philips @Gary_Philips
Thanks Samuel! That's working but it's clicking the AutoGain button just to the right of the ø button. thanks for the link to Kitch's video -- I think I can probably use that to tweak your script for Large window size and the ø button instead of AGC. thanks!
samuel henriques @samuel_henriques
Ahh your right. I made it for the auto gain. Sorry.
Let me know if you need any help fixing it.Gary Philips @Gary_Philips
Thanks -- it'd be good for me to figure out this feature. I'll work on it!
Gary Philips @Gary_Philips
think I got it! the 200ms wait is key. . . thanks for the script!
const firstFabFilter = sf.ui.proTools.children.whoseRole.is("AXWindow").whoseTitle.startsWith("Plug-in: FabFilter Pro-Q").first const menuPos = { "x": 866, "y": 714 }; const phaseBtnPos = { "x": 866, "y": 690 } if (firstFabFilter.exists) { firstFabFilter.mouseClickElement({ relativePosition: menuPos }); sf.wait({ intervalMs: 200 }); firstFabFilter.mouseClickElement({ relativePosition: phaseBtnPos }); sf.wait({ intervalMs: 200 }); firstFabFilter.mouseClickElement({ relativePosition: menuPos }); };