Regular readers of this blog will no doubt know that I’m a big fan of networking, connectivity and remote control. I like it when I can get computers to do the boring stuff so I get to do the fun stuff. This post is another installment in that series. Today, we’re talking about how to send MIDI commands over your network. We’ll leave the what and why for the next post, and today focus on the how.
Here’s the basic idea: I have a digital audio console that can send MIDI commands with snapshots (or macros, but that’s another post). Also in the tech booth are other various pieces of gear—lighting consoles, audio playback applications, ProPresenter—that can receive and act on MIDI commands. And while I could set up an elaborate MIDI distribution network with 5-pin MIDI cable, interfaces and MIDI DAs, that’s so, well, ordinary. And it’s a pain. Not to mention expensive. Besides, there’s a much simpler way if you’re using Macs. It goes like this:
Sitting on my DiGiCo SD8 is a 17”MacBook Pro. In between the MBP and SD8 is a MOTU FastLane MIDI interface. I go out of the SD8, in to the FastLane, which is connected via USB. The MBP becomes the “master sender” (that’s a technical term I made up) for the rest of the network.
The MBP is connected to my Sound network via Ethernet. We have a Mac Mini at FOH that does a bunch of stuff, but for this exercise, it runs a DJ app called Mixxx. What’s cool about Mixxx is that it can be controlled by MIDI. Also in the tech booth is another Mini that is Bootcamped into Windows 7, and runs the Hog 4PC lighting controller. That Mini also connected to my Sound network (via wireless for reasons that are beyond the scope of this article). Further down the the booth sits our Mac Pro running ProPresenter with the MIDI module. That Mac is connected to our regular in-house network. However, because the Sound network is NAT’ed out to the house network, we can still get MIDI signals out there.
So that’s the basic layout, here’s how it works.
Built-In MIDI Networking
Every Mac running OSX (starting with Leopard I believe) as a network module for MIDI. You’ve probably seen it but didn’t know how it worked. Start by opening Audio MIDI Setup. Once there, select Show MIDI Window from the Window menu. Sitting there, innocuously enough is a “Network” icon. Double-clicking on it opens this dialog box:
To start, click the + under the My Sessions window. You can name it whatever you like, but I suggest naming it something useful, like the computer name or a nickname you’ll remember. You can also specify the Bonjour name, which just makes it easier to make sure everything is connected. Once everything is named, click on “Enable” to make it active.
Now go around to the other computers you want to connect and do the same thing. Keep the names discreet so you don’t loose track of what you’re doing. Once you have everything active, you can simply start connecting the “nodes” to the “master.” From the node, select your master computer from the Directory, and hit connect.
I’ve made my 17” MBP the “master,” and everything connects to it. You can actually send MIDI notes bi-directionally, but in my case, I want to send commands from the SD8 to all the computers in the booth. Hence, everything else is a node. When you’re done, the dialog looks like this:
What About Windows?
Sadly, not all of our production gear runs on Mac OS. Sometimes, we need to suffer in Windows. But all is not lost. Some enterprising young man wrote a little program called RTPMIDI that basically does exactly what the Mac OS MIDI network stack does. He even copied the dialog box exactly so set up is exactly the same. I loaded this up on the Mini that we use for the Hog and it locked right up to the MBP master.
Because it uses Bonjour, connecting is usually as easy as waiting for the node to show up in the dialog box and hitting connect. If Bonjour gives you trouble, you can also enter an IP address to connect directly. Generally, the connections will re-establish themselves after a power cycle, but sometimes they don’t. It’s become part of my normal workflow to go around and make sure everything is connected after we power up all the computers each weekend.
Oddly, the RTPMIDI Windows computer connects the most reliably. I can usually connect the ProPresenter Mac from the MBP, but the FOH Mini fails to connect when I do that way, so I have to go to the Mini itself and connect back to the MBP. I’m not sure why. Once it’s all connected, it works quite well, however.
Once you do all this (and it actually only takes a couple of minutes to configure and a few seconds to connect everything), what is going on? Well, basically, any MIDI notes that originate on any computer will be sent over the network to every other node on the network. So I can now send MIDI commands and notes from the SD8 to any computer in the booth. But there is a catch.
You Need a Translator
Or more correctly, something to generate the MIDI notes. Or perhaps even more correctly, something to get the MIDI notes coming in from the SD8 via the FastLane to go out to the network. I have to try it, but I think MIDIPipe would do this, but I ended running a small, free program called VMPK (Virtual Midi Piano Keyboard). Basically, I tell it to listen to MIDI commands coming in from the FastLane and send out MIDI to the network. It doesn’t do anything else but pass notes through.
I have this set to launch automatically and hide, so we don’t even know it’s running. It just sits there in the background and sends notes along to the network.
It’s Easier Than It Sounds
Yes, it took me over 1,000 words to describe the process, and I spent a few hours getting it all figured out. But now that I’ve done the hard work, it won’t take you more than a few minutes to get it all working. And once it is, what can you do with it? If you’re like me, your mind is already racing with possibilities. If not, stay tuned for the next post and I’ll tell you what we’re doing with it.