Pro Tools Autotune Plugin - How can copy Autotune AAX settings to Autotune Audiosuite and Render?
Hello,
I'm new to Soundflow. I'm hoping someone can help me with a custom macro (specifically for Pro Tools and Autotune). Here's what I would like to do:
Use AAX Autotune in graphic mode to tune a selected region of a vocal track. Once it has been tuned... I would trigger the macro using a Stream Deck button.
----------------------- Desired Commands for Macro--------------------------
- Copy AAX Autotune settings.
- Make AAX Autotune plugin Inactive. (not just bypassed, but inactive)
- Open Audiosuite Autotune plugin.
- Paste settings in Audiosuite Autotune.
- Render settings in Audiosuite Autotune.
- Close Audiosuite Autotune plugin.
- Play selected region in Pro Tools (to check my work).
Done.
Then I would like to create a separate macro (with a separate trigger) to do the following:
- Make AAX Autotune plugin active again (and open that window).
- Clear ALL DATA (graphic mode) inside that AAX Autotune plugin.
- Click on PITCH button in AAX Autotune plugin.
That's it. That's what I'm hoping to do.
I would appreciate any help. Thank you!
Michael
- Christian Scheuer @chrscheuer2022-07-18 06:45:28.979Z
Hi Michael.
Be sure to start by checking the following videos from the Learning SoundFlow playlist to learn how to do basic UI scripting / how to build basic UI macros in SF:
- MIn reply toMichael_A⬆:Michael A @Michael_A
Thank you Christian. I'll definitely check out those videos.
In the meantime, if anyone else can please chime in, I would appreciate it. I basically would like to know (before I get too deep into learning Soundflow), whether it is even possible to create macros using 3rd party plugins (like in my specific case, Antares Autotune Pro), as opposed to just Pro Tools itself. In other words, can I add actions that pertain to Autotune (inside the Autotune plugin window)?
Thanks guys!
Christian Scheuer @chrscheuer2022-07-19 16:17:24.154Z
As a general rule, most current plugins don't have UI automation supported, but you can add mouse click events based on the relative coordinate within the plugin window. So, if the button you want to press inside Autotune is always at the same coordinate relative to the plugin window, then yes, you'd be able to create a stable macro for that.
See this video for how it works:
In the future, as JUCE 6.1 gets adapted by more plugin companies, we expect UI automation to begin working more generally, which would give you full control of more plugins.
We may also be able to work with specific plugin manufacturers to add SF support, if there's enough interest.
- MIn reply toMichael_A⬆:Michael A @Michael_A
Hi Christian,
Thank you for your reply. I watched the video you suggested and it was helpful (in terms of understanding the general concept of UI). But unfortunately, I still seem to be stuck.
I tried to create a macro and when I try to run it (just from the Editor page), it seems to run the first 1 or 2 actions in Pro Tools, and then I get an error message saying that my Macro has failed. And the error says "System.NullReferenceException: Object no at"
The only visible action that seems to be working, is that my AAX Autotune Pro window gets bypassed and minimized (I'm not sure if the "Copy Settings" step is being done). After that, I get the error message.
Here below is a script copy of my attempt at my macro. Thank you again for any help you can offer. I appreciate it.
sf.ui.proTools.windows.whoseTitle.is("Plug-in: Auto-Tune Pro").first.popupButtons.first.mouseClickElement();
sf.keyboard.press({
keys: "cmd+shift+c",
});sf.wait({
intervalMs: 2000,
});sf.ui.proTools.windows.whoseTitle.is("Plug-in: Auto-Tune Pro").first.buttons.whoseTitle.is("Effect Bypass").first.mouseClickElement();
sf.ui.proTools.windows.whoseTitle.is("Plug-in: Auto-Tune Pro").first.getElement("AXMinimizeButton").mouseClickElement();
sf.wait({
intervalMs: 2000,
});sf.ui.proTools.audioSuiteOpenPlugin({
name: "Auto-Tune Pro",
});sf.ui.proTools.firstAudioSuiteWindow.popupButtons.allItems[1].mouseClickElement();
sf.wait({
intervalMs: 2000,
});sf.ui.proTools.firstAudioSuiteWindow.mouseClickElement({
relativePosition: {"x":817,"y":93},
});sf.wait({
intervalMs: 2000,
});sf.ui.proTools.firstAudioSuiteWindow.mouseClickElement({
relativePosition: {"x":879,"y":150},
});sf.wait({
intervalMs: 2000,
});sf.ui.proTools.firstAudioSuiteWindow.mouseClickElement({
relativePosition: {"x":1562,"y":882},
});sf.wait({
intervalMs: 2000,
});sf.ui.proTools.firstAudioSuiteWindow.mouseClickElement({
relativePosition: {"x":410,"y":73},
});Christian Scheuer @chrscheuer2022-07-20 14:31:36.840Z
Hi Michael,
Please see this video for how to quote code in the SF forum so it gets formatted properly :)
https://www.youtube.com/watch?v=FRLCp6Sf9AIPlease also be sure to check this article for how to get help on scripts/macros in the future (after you've already started developing them), as that will enable us to both see your log files and the complete source:
bit.ly/sfscripthelpDid you watch the first two videos I shared? There's some important concepts that you're missing in the above code.
-
You're using "mouseClickElement" instead of "elementClick" in various places here where it's not necessary. You should use "Click UI Element" (elementClick) instead of "Mouse Click Relative to UI Element".
-
You're adding a manual wait. This should never be done (I cover this in the videos I shared).
-
You're clicking a popup button without acting on the menu that it opens. I can't tell from your code which popup button you're trying to click, but please be sure to check the video on how to handle popup buttons (shared in my first reply).
You also seem to be using the popup buttons based on their index instead of their name - this is generally not a good idea to do unless there's no other way.
I don't own Autotune myself so I can't help with the details but these are some general pointers to get you started.
- MMichael A @Michael_A
Hi Christian,
I wanted to say thanks again for your reply. I took a few days to watch a good amount of video tutorials on the Soundflow YouTube channel, before sending this reply.
I'm still trying to create this macro... and still hitting stumbling blocks which seem to stop me in my tracks. I went ahead and clicked on the NEED HELP button (and followed the required steps). So I hope someone is able to help me make some progress with this macro.
Thanks again!
-