DAW MTC/MMC Setup
DAW MTC/MMC Setup
Learn what you need to do in order to provide the timing information needed to Video Slave or ADR Master. This article will cover the steps for a number of DAWs.
To be able to control Video Slave/ADR Master remotely, you need to setup two things:
- Choose the correct MTC/MMC source in Video Slave/ADR Master through the application preferences
(if you want to know how to use network MIDI with Video Slave or ADR Master, 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:
If your DAW is not listed here, please drop us a message: firstname.lastname@example.org. Thank you!
It is important to mention that MIDI Timecode (MTC) is typically used to control Video Slave's or ADR Master's playback only. To be able to scrub/shuttle a movie that is opened in Video Slave/ADR Master remotely, MIDI Machine Control (MMC) is used.
The following explanation corresponds to Pro Tools 2019 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. If using Video Slave's/ADR Master's default virtual MIDI inputs, use the virtual MMC input here. When using network MIDI, you can 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/ADR Master, 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/ADR Master 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/ADR Master as a HUI controller in Pro Tools as the timecodes sent to the HUI controllers also correctly reflect looped playback. For that to work, Pro Tools' main counters need to be set to timecode and the preroll must be turned off. We will describe the setup steps needed in the following.
As for MTC and MMC, Video Slave/ADR Master will offer virtual HUI ports you can connect to when Video Slave/ADR Master 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/ADR Master 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 ("ADR Master HUI In/Out" respectively).
If the Video Slave/ADR Master 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/ADR Master 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 10 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, "Network PT MTC/MMC Send" and "Network PT MTC/MMC Receive" are network MIDI connections set up with Audio-MIDI Setup)
Select the outputs for "MIDI Timecode Destinations" in the "Destinations" tab and for "Machine Control Output Destination" in the "Machine Control" tab to send MIDI data to Video Slave/ADR Master. In the "MIDI Timecode Preferences" section, make sure the "MIDI Timecode Follows Project Time" box is checked.
As Timecode Source in the "Sources" tab, select "Internal Timecode". Click OK to close the window.
For Cubase/Nuendo to transmit timecode, you must also make sure that external sync is disabled:
In newer versions, there's a checkbox in the Sources tab of the Project Synchronization Setup window shown above.
For earlier versions of Cubase/Nuendo, this could be set from the transport panel (the sync must read "INT." as shown in the screenshot):
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.
In Logic X version 10.4.5 Apple changed the user interface of the project sychronization settings to what's shown in the window below:
If you're using Video Slave's virtual ports, make sure to do the setup as shown in the screenshot. For network MIDI or ipMIDI, you can use the same port for both MTC and MMC so just check both boxes in the same line.
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/ADR Master, 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 (or ADR Master). 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/ADR Master. Also, as soon as the device is created as discussed above, Video Slave/ADR Master 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 developers. There is also a pretty neat tutorial video directly on their 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/ADR Master. If you're using the virtual ports within Video Slave/ADR Master and starting Video Slave or ADR Master 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/ADR Master 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!
The developers of Bitwig Studio have also added support for MTC recently. Thus, synchronized playback of Video Slave/ADR Master and Bitwig is now also possible. Bitwig doesn't support sending MMC messages but it sends the same kind of special MTC messages Cubase/Nuendo does which makes both playback and scrubbing possible.
To setup MTC output in Bitwig, open the Settings by clicking the Bitwig icon. Then select the Synchronization tab on the left.
You now see all MIDI output destinations. As you can see in the screenshot it also displays Video Slave's virtual inputs. To have Bitwig send MTC messages to Video Slave, just click the "MTC" button next to "Video Slave MTC In (virtual)" (or whatever MTC output you're using). Also make sure to check if the MTC frame rate below the MIDI destinations is identical to your timeline's frame rate in Video Slave/ADR Master.
There is currently no way to set the start timecode of the session in Bitwig so the first bar will always correspond to 00:00:00:00. Please make sure that your timeline in Video Slave/ADR Master also starts at 00:00:00:00 for the playback to be in sync.
As mentioned previously, Video Slave/ADR Master uses MIDI Timecode (MTC) for synchronized playback and MIDI Machine Control (MMC) for locate commands when not playing. The setup for sending MTC from Digital Performer is easy and we'll explain it in the following. Synchronized playback with Video Slave/ADR Master is hence not a problem. However sending MMC with Digital Performer isnot easily possible for an undetermined reason. There is an MMC send mechanism implemented within Digital Performer but it seems to not be possible to use this to send MMC messages to Video Slave/ADR Master at the moment.
We've been in touch with MOTU repeatedly throughout the last years to see if the situation changed when new versions of Digital Performer were released. The current status is that sending MMC to Video Slave/ADR Master (ideally using a virtual or network MIDI port) does not work at the moment. There's unfortunately nothing we can do on our end and we can only hope that MOTU implements MMC messages in the near future.
To setup MTC transmission from Digital Performer, open the preferences and go to Transmit Sync. From there, select the virtual Video Slave/ADR Master MTC In if you're using Video Slave/ADR Master on the same machine running the DAW or network or hardware MIDI port if that's what you're using.
To change the timecode frame rate you can either use the dropdown menu in the main control bar of Digital Performer or go to Setup -> Frame Rate. To change the start timecode of your sequence, go to Project -> Sequences -> Set Chunk Start Time...