This is a follow up to the first article "Live + Logic #1: Overview". Please note: when working with Live and Logic, it is very important to always start Live first, and once Live has finished loading, then start Logic. Otherwise Live will automatically run as a ReWire slave to Logic, which prevents the use of plugins in Live.
OS X makes it easy for us to create virtual MIDI ports that can be used by any MIDI-aware application. These ports, called IAC (Inter-Application Communication) ports, allow us to route MIDI between applications.
One issue with these IAC ports is they can be used as both input and output in any application, and it's easy to accidentally create feedback loops. Although feedback is incredibly useful for processing audio signals, it's something to be completely avoided when working with MIDI. When you press a note on your keyboard, you don't want an infinite number of note-on events triggered!
With that in mind, I highly recommend adopting a naming convention for IAC ports which clearly indicate the purpose of the port as either an input or output for a particular application. Since we are trying to send MIDI from Live to Logic, I'm going to name the port "TO LOGIC". Feel free to name it something else, but keep in mind I'm going to refer to the port as the TO LOGIC port in these articles.
First we need to make sure we don't create any MIDI feedback loops with that TO LOGIC port we just created. We don't want any MIDI entering Live on this port, it is solely for sending MIDI out of Live to Logic.
I'm going to setup 4 tracks for controlling 4 separate Logic instruments (one track in Live will control exactly one track in Logic). You can of course setup more or less tracks depending on your needs.
Let's create a multi-track MIDI session, where the channel of incoming MIDI messages determines the track that the message is routed to. In this way we will link the first external instrument track in Live (outputting to channel 1) to the first track in Logic, link the second external instrument track in Live to the second track in Logic, and so on.
Now, if you add an instrument to one of the Logic tracks, arm the corresponding track for recording in Live, and play some notes on a MIDI keyboard, you should notice you are getting two notes for every key press! That's because both Live and Logic are listening to the MIDI input. Logic immediately plays the note it receives. At the same time, Live passes the MIDI messages through its External Instrument, Logic receives a duplicate note message, and proceeds to play the same note a second time. Obviously this is not desirable. Luckily we can reconfigure Logic to only listen to MIDI on the TO LOGIC port coming from Live:
Ok! Finally, we have all the MIDI communications between these two programs setup. Try adding some instruments to the different Logic tracks, and you should be able to play each instrument by arming the appropriate track in Live. You can record some MIDI clips in Live and play them back and it should all work as expected. If it isn't working, double check all your settings since there were a lot of steps and it's easy to make a mistake.
Once things are working, I recommend you save your Live Session and Logic Project as templates that you can load up any time you want to use these two programs together. The last thing we want to be doing during a creative spurt is setting this up all over again.
In the next few articles, I'll be discussing various options for routing Logic's audio back into Live, which really completes this solution by allowing you to mix the track levels inside Live, route Logic's output into Live's effects, and bounce to audio clips in Live.
First up is Live + Logic #3A: Audio Routing with Wormhole