To be able to control Video Slave remotely, you need to setup two things:
- Choose the correct MTC/MMC source in Video Slave through the application preferences
(if you want to know how to use network MIDI with Video Slave, see here)
- Set up your DAW to transmit MIDI Timecode and optionally MIDI Machine Control messages
The latter will be discussed in detail in this article.
Jump to your DAW directly here:
It is important to mention that MIDI Timecode (MTC) is typically used to control Video Slave's playback only. To be able to scrub/shuttle a movie that is opened in Video Slave remotely, MIDI Machine Control (MMC) is used.
The following explanation corresponds to Pro Tools 10 but the steps will be similar for other versions.
Go to Setup -> Peripherals to open the window shown below. Switch to the Synchronization tab.
Choose the desired MIDI output (network or MIDI IF) in the MTC Generator Port dropdown menu.
When using network MIDI, don't forget to establish a connection via Audio-MIDI Setup. (For details, click here.)
Click OK to close the window.
Hit the Gen MTC button as shown below. If you don't see the button, hit the triangle button on the right and choose "All" to show all control elements.
To enable MMC in Pro Tools, open the Peripherals window once again and switch over to the Machine Control tab.
Select the MIDI port you want to use to send MMC from the drop-down menu. You have to use the same one as for MTC.
Set the Enable checkbox and enter 127 in the ID field.
Close the window.
Open up the Preferences window by choosing Pro Tools -> Preferences.
Switch over to the Synchronization tab.
When Machine Chases Memory Location is enabled, Pro Tools will send an MMC Locate command whenever you navigate to a specific memory location. With the Machine Follows Edit Insertion/Scrub checkbox checked, Pro Tools will send MMC Locate commands every time the position of the edit insertion is changed.
While sending MIDI Timecode and MIDI Machine Control will enable playback as well as scrubbing, it is unfortunately not enough to support looping in Pro Tools. Please understand that this is not a problem of Video Slave, but rather a long-known Pro Tools issue. The timecode sent by Pro Tools doesn't reflect the loop (meaning that it doesn't jump back when the loop jumps back in Pro Tools) but rather sends continuously increasing timecode addresses. There is just no way for Video Slave to recognize looped playback at all using only MIDI Timecode and MIDI Machine Control. The only way to overcome this dilemma is to add Video Slave as a HUI controller in Pro Tools as the timecodes sent to the HUI controllers also correctly reflect looped playback. We will describe the setup steps needed in the following.
As for MTC and MMC, Video Slave will offer virtual HUI ports you can connect to when Video Slave is used on the same machine running Pro Tools. To learn more about setting up a HUI controller over the network, please see this article.
To attach Video Slave as a HUI controller, go to Pro Tools, open Setup -> Peripherals and switch to the "MIDI Controllers" tab. Now, create a new controller by selecting "HUI" in the type column of the first bank. Then, select "Video Slave HUI Out 1"/"Video Slave HUI In 1" respectively in both the "Receive From" and the "Send To" dropdown menus. If the Video Slave HUI Outs don't show up in the dropdown menu as seen in the screenshot below, please open Setup->MIDI->MIDI Input Devices in Pro Tools and make sure they are checked here.
Note: Although Video Slave can follow loops in Pro Tools, it is possible that the playback gets out of sync after a few iterations of the loop. Please make sure to not do tasks during HUI aided loop where sync is a high priority!
The following explanation and screenshots are related to Cubase 8 but the steps will be similar for other versions. The settings in Nuendo should also be similar (if not identical).
Go to Transport -> Project Synchronisation Setup... to open the window shown below. (In the screenshot below, "Network Mini MTC Send" and "Network Mini MTC Receive" are network MIDI connections set up with Audio-MIDI Setup)
Select the outputs for "Machine Control Output Destination" and "MIDI Timecode Destinations" to send MIDI data to Video Slave. In the "MIDI Timecode Destinations" box, check the "MIDI Timecode Follows Project Time" checkbox.
As Timecode Source in the top left box, select "Internal Timecode". Click OK to close the window.
When the Sync is set to internal (as shown in the Transport panel above), MTC will be transmitted when playback is started.
With your project opened, go to File->Project Settings -> Synchronization...
Go to the MIDI tab. You should see the window shown below.
Check the "Transmit MTC" checkbox and select your desired MTC output in the dropdown menu underneath. When using network MIDI, don't forget to establish a connection via Audio-MIDI Setup. (For details, click here.) To also transmit MIDI Machine Control, also check the "Transmit MMC" checkbox.
Before enabling MTC and MMC output from Studio One, we first need to setup the timecode rate and the timecode start position of the song. With a song opened, go to Song->Song Setup. You will be presented the window shown below:
Choose your desired timecode frame rate(this should be identical to the frame rate of your video for best performance) and your desired timecode session start. Unfortunately, there's no option to display timecode in the project timeline, so the closest you get is the timebase setting Seconds. Close the window when you're done.
To have Studio One send MTC and MMC to Video Slave, we need to create a new MIDI device. To do that, go to Preferences and select the External Devices panel.
Click the Add button. In the window, select a New Instrument on the left and call it Video Slave. You can also fill in something for the manufacturer but you don't have to. In the Send To dropdown box, select your output MIDI connection you created in Audio-MIDI Setup (or your MIDI output interface in case you're using a wired MIDI connection). Finally, make sure to hit the Send MIDI Timecode checkbox at the bottom.
Lastly, go to the Advanced preferences panel, go to the MIDI tab and hit the checkbox Timecode follows loop if it isn't checked already.
Studio One seems to always send MMC commands to all attached devices which is fine for the operation of Video Slave. Also, as soon as the device is created as discussed above, Video Slave will receive MIDI commands and should playback in sync just fine.
Ableton Live does not natively support MIDI Timecode and MIDI Machine Control. We have been in touch with Ableton and they told us that they are aware of the necessity of MTC/MMC in Live and that it may be added in a future version. For now, we need to use a little workaround to get it going. This workaround relies on the Max 4 Live interface.
We will be using a tool called LiveMTC. You can find more information about and download it directly from the developer. There is also a pretty neat tutorial video directly on the site.
All you need to do is toggle the Session View on the right or through the menu. Then, drag the downloaded file "MTC.amxd" onto the Master track (make sure to have Max installed).
Then, open the Live MTC Bridge application contained in the LiveMTC download folder.
Now, set the Destination MIDI port in the dropdown to the port you use in Video Slave. If you're using the virtual ports within Video Slave and starting Video Slave after the Live MTC Bridge app, you might need to restart Live MTC Bridge as it only scans for the available MIDI ports when starting up. All you need to do now is set the timecode offset to match the Video Slave movie timecode settings and you're good to go.
As a side note: Live MTC Bridge also sends positioning information using a special kind of MIDI Timecode message so there is no need to connect a separate MIDI Machine Control port to support scrubbing in Live.
Thanks to the developer of Live MTC for creating the bridge application!