MainStage is becoming a go-to program for live musicians who want to have realtime control over instruments and effects on stage. Recently Thom Kirkpatrick, a keyboardist and electronic musician travelling with The Kooks, asked me if there was a way to sync multiple computers running MainStage together.
When playing live to sold-out crowds, the last thing you want to happen is to have a computer go down during performance. To help keep anything like this from affecting the flow of the show, electronic musicians have started creating redundant systems that kick in when a computer goes down for the count.
In Thom's case, he had two laptop computers running identical MainStage sessions. He had already routed MIDI to both computers from a single controller, but he needed to be sure that backing tracks and effects were following the correct tempo of whatever patch he happened to be in. He needed to be sure that MainStage #2 was playing backing tracks aligned with MainStage #1. To sync the systems, he needed some kind of reference.
MainStage is not like other programs. Usually in other programs you would have a synchronization preference that would allow you to send multiple types of timecode out of a MIDI port. The two major references would be Timecode and Beat Clock.
Timecode is absolute time. It has a time base of Hours, Minutes, Seconds, and Frames. In the film world, there are usually between 24 and 30 frames per second, which relates to how the film is captured and played back. MIDI Timecode is absolute, meaning that a second lasts a second long, an hour is an hour… in other words, time is not flexible in timecode. That's the whole point. In the film world, you want to be sure a synced frame is dead on time.
MIDI Beat Clock is more like snapping your fingers to the beat. It is not as ruthlessly consistent as timecode, and allows for tempo changes in the timeline. MainStage uses MIDI Beat Clock to send the tempo of a patch to external devices and programs. Usually in a MainStage world, we are more concerned with changing tempos rather than absolute time.
Setting up MainStage to send MIDI Beat Clock is a bit tricky, but once you know the drill, you'll have no problem sending Beat Clock to other devices and programs.
Step 1 - Create an external Instrument in your Patch
In Edit Mode, go to the 'Add Channel Strip' button in the upper right corner of the mixer:

From the menu, select 'External Instrument'. Be sure to tell it what port you are sending the Beat Clock to. That would be the 'MIDI Output'.
Step 2 - Adjusting the MIDI Output
Now that the external instrument is in the patch, we have the ability to send beat clock from the patch. Select the channel strip for the External Instrument, and look at its MIDI Output tab. Select the checkbox for 'Send MIDI Beat Clock', 'Send Start Message', and 'Send Stop Message'. These settings seem to work best for me:
Now you are good to go, as far as sending MIDI is concerned. To get the tempo set for the patch, simply select the patch from the left side of the screen, and set your tempo under the attributes tab:
And for good measure, here's Thom Kirkpatrick from the Kooks! Thom is a swell fella, and The Kooks rock. It was fun to see two MainStage sessions on 2 computers completely in sync. Apparently if his first computer goes down, the transition to the other computer is pretty flawless.
Enjoy the possibilities!
Discussion
Mine is for keys and the other is the drummers. I have created a network midi connection. Both setups are connecting to it OK, and I can get my setup to track tempo changes the drummers patches create.
I wish to use the ARP from ms3 and also from Omnisphere, together with some of the rhythmic env mods and have them sync to midi clock from drummers laptop.
On the drummers setup I am using playback to play the click track, which is sync'd to its own midi clock fine.
At its most basic, I can't even get the metronomes to sync.
I'm going to ask the Logic team if there is something I'm missing, but I don't think you can receive clock.
Want to join the discussion?
Create an account or login to get started!