Video Synch Offset
I am currently on a couple of projects where I have to work in a stereo (non-renderer) template (because I need to deliver mono prints) and a template through the renderer. As I bounce back and forth between these two I constantly have to change my Video Sync offsets. I've calculated them so I know what they are for each template but it would be nice to have a SF button for each. There was a post in the past that asked about this but no one chimed in. I haven't seen and scripts for it. I'd image it must be pretty simple. Can anyone help with this? Thank you.
 Kitch Membery @Kitch2024-12-30 23:40:08.496Z Kitch Membery @Kitch2024-12-30 23:40:08.496Z- Hi @Chris_Testa, - Can you explain the manual steps you would take to change the offset? - Thanks in advance. 
- CIn reply toChris_Testa⬆:Chris Testa @Chris_TestaHey Kitch, I actually use the app Catchin' Synch to figure out the delays between the audio in protools and the video on my tv. If I did all of my work via the renderer I most likely could have one offset and never have to change it, but since I have one particular show that I have to deliver mono prints for I just bypass the renderer so it's basically a delay that is renderer or no renderer. The No renderer is 70ms. The renderer offset is 190ms. So ideally I have a button that says 70ms and one that says 190ms. I hope that helps.  Kitch Membery @Kitch2024-12-31 00:25:33.874Z Kitch Membery @Kitch2024-12-31 00:25:33.874Z- Hi @Chris_Testa, - Something like this should do the trick... - const offsetInMilliseconds = 70; sf.ui.proTools.appActivate(); sf.ui.proTools.menuClick({ menuPath: ["Setup", "Video Sync Offset..."] }); const videoSyncOffsetWindow = sf.ui.proTools.windows.whoseTitle.is("Video Sync Offset").first; videoSyncOffsetWindow.elementWaitFor(); const msTextField = videoSyncOffsetWindow.textFields[0]; const okButton = videoSyncOffsetWindow.buttons.whoseTitle.is("OK").first; msTextField.elementSetTextFieldWithAreaValue({ value: offsetInMilliseconds.toString(), useMouseKeyboard: true }); sf.waitFor({ callback: () => msTextField.invalidate().value.value === offsetInMilliseconds.toString(), timeout: 1000, }, `Could not set the Video Sync to ${offsetInMilliseconds.toString()}`); okButton.elementClick(); okButton.elementWaitFor({ waitForNoElement: true });- You could then make a command template out of it. For information on how to do that see here... - https://soundflow.org/docs/how-to/custom-commands/command-templates 
 
- CIn reply toChris_Testa⬆:Chris Testa @Chris_Testaoh wow. thanks. I'm grabbing now and trying. I'll let you know. thank you! 
- CIn reply toChris_Testa⬆:Chris Testa @Chris_TestaWorks perfectly. Thank you!!