No internet connection
  1. Home
  2. How to

Custom start time in Pro Tools

By Steeve Body @Steeve_Body
    2021-02-04 21:19:09.214Z

    Is there a way to automate customizing my session start time to 00:59:00:00 in ProTools as part of a Post ProTools setup script that I could run at the start of my session?

    • 2 replies
    1. S
      Steeve Body @Steeve_Body
        2021-02-04 21:25:06.239Z2021-02-04 22:32:02.898Z

        I actually answered my own question... just been using screenflow for one day trying to figure it out.
        I just create this script to do my initial prep for my post prod session. This script set my main counter to timecode, set my grid and nudge feet+frames in 1 frame nudge, show comments, inserts, sends, I/O and objects in the edit window and set my session start time to 00:59:00:00
        I'm planning on doing more scripts to setup ProTools and Dolby Atmos renderer to configure sessions and the DAPS really quickly... This is so music fun... I can't believe I'm so late to the party with this...

        sf.ui.proTools.mainWindow.gridNudgeCluster.popupButtons.whoseTitle.is('Grid Value').first.popupMenuSelect({
            menuPath: ['Feet+Frames'],
        });
        
        sf.ui.proTools.mainWindow.gridNudgeCluster.popupButtons.whoseTitle.is('Nudge value').first.popupMenuSelect({
            menuPath: ['Feet+Frames'],
        });
        sf.ui.proTools.nudgeSet({
          value: "0+01.00",
        });
        sf.ui.proTools.mainCounterSetValue({
            targetValue: "Timecode",
        });
        sf.ui.proTools.editModeSet({
          mode: "Grid",
        });
        sf.ui.proTools.appActivateMainWindow();
        
        const checkBoxes = [
            { Title: 'Comments', State: "Enable" },
            { Title: 'Mic Preamps', State: "Disable" },
            { Title: 'Instrument', State: "Disable" },
            { Title: 'Inserts A-E', State: "Enable" },
            { Title: 'Inserts F-J', State: "Enable" },
            { Title: 'Sends A-E', State: "Enable" },
            { Title: 'Sends F-J', State: "Enable" },
            { Title: 'I/O', State: "Enable" },
            { Title: 'Object', State: "Enable" },
            { Title: 'Real-Time Properties', State: "Disable" },
            { Title: 'Track Color', State: "Enable" },
        ];
        
        checkBoxes.forEach(setCheckboxState);
        
        function setCheckboxState(item) {
            sf.ui.proTools.menuClick({
                menuPath: ['View', 'Edit Window Views', item.Title],
                targetValue: item.State,
                onError:"Continue",
            })
        }
        
        sf.ui.proTools.appActivateMainWindow();
        
        sf.ui.proTools.menuClick({
            menuPath: ["Setup","Session"],
        });
        
        sf.ui.proTools.windows.whoseTitle.is('Session Setup').first.groups.whoseTitle.is('Session Format').first.textFields.whoseTitle.is('NumericEntryText').first.elementClick();
        
        sf.keyboard.type({
            text: "00590000",
        });
        
        sf.keyboard.press({
            keys: "return",
        });
        
        sf.ui.proTools.viewCloseFocusedFloatingWindow();
        
        1. Kitch Membery @Kitch2021-02-04 23:01:51.572Z

          Great work @Steeve_Body!

          May I suggest you use the following code for entering the timecode into the Session Start Time field;

          function setSessionStartTimeField(startTimecode) {
              const sessionSetupWin = sf.ui.proTools.windows.whoseTitle.is('Session Setup').first;
              const sessionFormatPanel = sessionSetupWin.groups.whoseTitle.is('Session Format').first;
              const sessionStartTimeField = sessionFormatPanel.textFields.whoseTitle.is('NumericEntryText').first;
          
              sessionSetupWin.elementRaise()
              sessionStartTimeField.elementClick();
          
              sf.keyboard.type({ text: startTimecode });
          
              var i = 0;
          
              while (sessionStartTimeField.value.invalidate().value !== startTimecode) {
                  sf.wait({ intervalMs: 50 });
              };
          
              sf.keyboard.press({ keys: 'return' });
          }
          
          setSessionStartTimeField("00:59:00:00");
          

          This will make sure that the text "00:59:00:00" has been typed into the text field before pressing return.

          Rock on!