Last time, we talked about how to set up a MIDI network in your tech booth (or anywhere else for that matter). Today, we’ll talk about what we can do with it. Or, more correctly, I’ll tell you what I’m doing with it. Before we go any further, we should first talk about the structure of MIDI commands.
Channels, Notes, Values, Oh My!
The basic structure of a MIDI command is a Channel, a Note and a Value. There are 16 possible channels, 128 possible notes, and 128 values for each notes. Oddly, channels run from 1-16, while the notes and note values from from 0-127. Go figure.
In addition to Note-On, you can also specify Note-Off, Control Changes, Program Changes and a few other things that don’t concern us. For the most part, I use Note-On and Control Change. To send commands to Reaper, my DAW for recording, I use CC’s, which are nice because they don’t require a value. I can send a Channel 1, CC 1 for example and Reaper drops a marker at the current location (handy for marking the start of the message—yes it’s sent from the Message snapshot). That’s not a default, I assigned CC 1 in the Reaper shortcut menu. Most of the other apps respond to Note-On commands.
Auto-Start the Walk Out Music
I’ve long had a dream that I could fire the walk out snapshot and music would automatically start playing from Mixxx (our DJ app that plays walk in/out music). That dream is now a reality. I spent a few minutes configuring Mixx to listen for commands on MIDI channel 5. Because I can start the playback “Decks” with a MIDI command, I send one command that brings the crossfader over to Deck A, and another that starts Deck A. All I have to do beforehand is load the song that I want to start into Deck A. I typically do that near the beginning of the message so I don’t forget. I mentioned MIDI channel 5; we’ll talk about that in a little bit. Setting up those commands in Mixxx took a little effort, but I discovered the MIDI Learning Wizard in Mixxx that made it easy. What else can we do?
Fire Lighting Cues
It’s summertime, and the living is easy. And the volunteers are scarce. Between camps, vacations and the usual attrition, we’re short on lighting guys right now. But that’s no problem because I can fire lighting commands from audio snapshots. I configured the Hog to listen to MIDI commands on channel 2, and can easily hit the “Go” button with a simple MIDI 2, 50, 1 command. Sometimes, we’ll have several lighting cues per song, and I typically only do one audio snapshot per song. In those cases, I’ll create “dummy” snapshots that do nothing but fire lighting cues (no recall of any audio parameters). I label them exactly the same as my lighting cues so I can keep track of where I am. This takes a little setting up, but it’s actually quite easy now that I’ve done it once or twice. You can also do a whole lot more with MIDI on your Hog. Here’s an excerpt from the manual on how to set it all up. Not comfortable with that? Well how about this:
Start the Message Timer
With the MIDI module in ProPresenter, you can assign MIDI commands to all sorts of things. We use Timer 1 to give our pastor a timer for his message. Problem is, the ProPresenter operators occasionally forget to start it. But the audio guy has to hit the message snapshot. So why not start the timer from the audio snapshot. With this system, it’s as easy as pie. With a simple Note-On 1, 32, 1 command, the timer starts right when our pastor starts. Beautiful.
One caveat to this, however. And I learned this the hard way so you don’t have to. ProPresenter listens to every MIDI channel and responds to notes from every channel (to my friends at Renewed Vision—this would be a great thing to address at some point...). My idea had been to give each computer it’s own channel so we wouldn’t be triggering commands on the lighting desk that were intended for the audio playback. It’s easy to do on the Hog and in Mixxx. But ProPresenter takes commands from all channels. At least out of the box.
A cool little program called MIDIPipe lets me filter MIDI messages by channel. I built a “pipe”that takes MIDI commands in from my network connection, filters them to allow only channel 1 messages through, then spits it out to ProPresenter. Like VMPK, I have it set to launch this pipe at log in and hide, so we don't even see it.
[UPDATE 5-8-14] I've been informed by my email list provider that MIDIPipe's website contains active malware and we should not be sending them traffic. I'm not sure what the deal is with that; I've had no issues, but I've removed the link nonetheless. If you want to use MIDIPipe, please do so carefully and at your own risk. [END UPDATE]
If you don’t want to bother with this level of segregation, you could just block out your notes to different roles. For example, designate the block of notes 0-40 to ProPresenter, 41-80 to lighting, 81-120 to audio, or whatever. That would work, but depending on what you’re controlling might be tricky. So I like my method better.
So, this is getting long and I suspect we’re closing in on overload, so I’m going to split this up and finish our discussion of the MIDI command structure next time.