Network MIDI setup
Network MIDI Setup
The easiest way to provide Video Slave with incoming MTC/MMC data is to setup a network MIDI connection and transmit all data necessary over that connection. There's no need to buy a separate MIDI interface and cables to connect MTC master and slave machine, although you can of course use a cabled connection if you prefer. Since MIDI was developed in the 80s, its data rate is really low. Thus, it should also not be a problem to use network MIDI in a WiFi environment without problems. A cabled network connection still is the preferred way though.
The following instructions assume that you have a Mac as Video Slave host and a Mac as MTC/MMC master machine. In case your TC master is a PC, please refer to the instructions on the website of Tobias Erichsen, who wrote a PC equivalent to Apple's network MIDI implementation called rtpMIDI. It can be found here: http://www.tobias-erichsen.de/software/rtpmidi.html
It is also possible to use Video Slave and the MTC/MMC master on the same machine. Although it might seem a bit odd, network MIDI also works flawlessly if sender and receiver are the same machine.See the last section of this article.
Step 1: Set up the MTC/MMC master to send MIDI over network
Go to your MTC/MMC master machine (the machine running your DAW). Setting up network MIDI is done in Apple's utility application Audio-MIDI-Setup, which can be found in Applications->Utilities (or Cmd+U in the Finder). Once opened, you might see a window like this:
If you don't, select "Window->Show MIDI Window" and double click the "Network" icon.
What you want to do is to add is a so-called "session". So click the "+" sign in the upper box on the left side to create one.
A virtual bus (or session) can be used as MIDI input OR output, but not simultaneously. Although one session can be used in both directions, I recommend naming the session something like "Send" or "Out" to avoid confusions.
It will look like this:
Hit the checkbox to enable the session (already done in the screenshot) and give it a name. The "Local Name" is the name that will appear on your local machine, so if you call it "MTC Out" for example, you will have a MIDI In-/Output called "MTC Out" in whatever DAW application you're using. Here we are calling it "MTC/MMC Send". The "Bonjour name" is the name that is displayed on the other network computers. It's logical to name it the same as the "Local name". To make sure the machines are seeing one another, choose "Anyone" in the "Who may connect to me:" dropbox on the bottom left of the window. Close Audio-MIDI-Setup. That's it. Configuration done for the first machine. Now go over to the Video Slave host machine.
Step 2: Setting up the Video Slave host to be able to receive MTC/MMC over network
Open up the Audio-MIDI-Setup (Applications->Utilities). You should see a window like the one below. If you don't, select "Window->Show MIDI Window" and double click the "Network" icon.
As you can see in the "Directory" box, this machine is already seeing the other computer. Not much to do to finish!
Create a session again by clicking the "+" sign. It will look like this:
Enable the session and enter a name for "Local name" and "Bonjour name". In the example we are using "MTC/MMC Receive" for both.
As in the box above, also set the value of the "Who may connect to me:" dropbox to "Anyone".
Step 3: Connecting the devices
Now we have created the two endpoints. The only thing left to be done is to connect the machines. With the "MTC/MMC Receive" session selected in the "My Sessions" box, select "MTC/MMC Send" in the "Directory box and hit the "Connect" button. You should now see "MTC/MMC Send" in the "Participants" box on the right.
You don't need to also connect the other machine, it's sufficient to connect from one of the two machines. You should now see this machine being in the "Participants" window of the other one. If the other computer does not show up in the "Directory" list, just re-launch the Audio-MIDI-Setup.
(Every once in a while, the connection gets disrupted when you quit either Video Slave or the DAW. I found out that this can be avoided by leaving the Audio-MIDI-Setup opened and minimized.)
Steps 1 and 2 don't need to be done more often in the future.
You just need to connect the devices using Step 3 once in the morning and you should not need to change anything for the rest of the day.
To be able to receive the network MIDI data in Video Slave, select the corresponding interface in the "Preferences" panel
Video Slave features virtual MIDI ports. This means that you don't need to create network MIDI sessions in order to connect your DAW of choice with Video Slave on the same machine. When Video Slave is launched, it will create virtual MIDI ports named "Video Slave MTC In", "Video Slave MMC In", "Video Slave Trigger In" and four HUI input and output ports named "Video Slave HUI In/Out x" where x is 1, 2, 3 or 4 respectively. These ports will be visible in your DAW automatically. Here's an example from Logic Pro X (it will look similar in other DAWs):
By selecting them in the dropdown menu, a MIDI connection will be established and Video Slave will be able to receive MIDI information immediately.
Connecting Video Slave as a HUI controller across the network (Pro Tools only)
While sending MIDI Timecode and MIDI Machine Control across the network 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.
To start, open Audio-MIDI Setup on the Video Slave machine (if you haven't already). We will be using a MacBook Pro as Video Slave host (abbreviated 'MBP') and a Mac Pro as the Pro Tools host machine. Create one new network session for the HUI. HUI controllers need a two-way connection meaning that they send information but also receive information. One network session in Audio-MIDI Setup can send and transmit information at the same time though so there's no need to create a separate port for send and receive HUI messages.
Once you've done so, open the Video Slave preferences and select the newly created port as HUI send and receive port. We will also use MIDI Timecode and MIDI Machine Control using other network MIDI ports so you will also see them there.
Ok, we're all set on the Video Slave side of things, so let's switch to the Mac Pro (our Pro Tools machine) now. Open Audio-MIDI Setup and also create a HUI network session on this machine. Now, select the newly created session, search for the HUI session of the other machine (in our case "MBP HUI") and click the "Connect" button at the bottom.
Now, go to Pro Tools, open Setup -> Peripherals. From here, you will set your MIDI Timecode and MIDI Machine Control connections as well as the HUI. Select the Mac Pro's own network MIDI ports for MTC and MMC (MTC and MMC can share the same connection) from the dropdown menus in the Synchronization and Machine Control tab.
Now, switch to the MIDI Controllers tab and create a new controller by selecting "HUI" in the type column of the first bank. Then, select the Mac Pro HUI port in both the "Receive From" and the "Send To" dropdown menus.
Once you hit the "OK" button at the bottom, Pro Tools will start sending HUI messages to Video Slave periodically to check if the HUI controller is still connected. Video Slave will reply to these messages by sending a MIDI message back. So when you now open your Audio-MIDI Setup's network settings panel again, you should see MIDI traffic (depicted by tiny red lines) when you select the HUI port on either machine.
If you see those lines, everything is fine and Video Slave is successfully connected as HUI controller to Pro Tools. Video Slave will now be able to follow your loops in Pro Tools properly.