Live + Logic #2: MIDI Routing

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.

About Virtual MIDI ports

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.

Creating the IAC port

  1. Open Apple's Audio MIDI Setup program (under Applications/Utilities)
  2. Click the MIDI Devices tab
  3. Double click IAC Driver icon, a new window opens.
  4. If needed, click the "More Information" button to display the Ports section.
  5. Click the + button to add a new port.
  6. Double click the text and rename it TO LOGIC
  7. Make sure "Device is online" is checked

Live's MIDI Setup

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.

  1. Open Live's Preferences
  2. Go to the MIDI Sync section
  3. Under MIDI Ports, ensure that the TO LOGIC port's Input is Off for Track, Sync, and Remote.
  4. The TO LOGIC port's Output should be On for Track, Sync, and Remote [1].

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.

  1. In a Live Set, create 4 MIDI tracks
  2. Load an External Instrument Live Instrument into each of those tracks
  3. Set the first track's output to the MIDI port TO LOGIC on channel 1, the second track to the same port on channel 2, 3rd track ⇒ channel 3, 4th track ⇒ channel 4
  4. Audio From will need to be setup when we start routing audio from Logic back into Live, but the exact settings depend on the audio routing tool we use. I'll cover those options in the upcoming articles. In the meantime, keep this set to "No Input".

Logic's MIDI Setup

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.

  1. In a Logic project, create 4 Software Instrument (aka MIDI) tracks
  2. Set the track 1 to MIDI channel 1, track 2 to MIDI channel 2, and so on:
    1. Open the Inspector for each track
    2. Expand the second section (the section labelled with the track name, like "Inst 1")
    3. Change the MIDI channel setting from "All" to the appropriate number
  3. Enable MIDI multitrack recording
    1. Arm all tracks for recording
    2. Go to Settings ⇒ Recording
    3. Under the MIDI section, ensure that the box is checked for "Auto demix by channel if multitrack recording"

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:

  1. Go to Window ⇒ Environment
  2. Select Click & Ports in the upper left
  3. Delete the cable that goes from the Physical Input's SUM port to the keyboard, and replace it by connecting a cable from the TO LOGIC port to the keyboard

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

Notes

[1] Details of the purpose of Live's three different MIDI output types:
  • Track is the only MIDI output type that's actually required to control Logic instruments.
  • Sync is needed for tempo-synced LFOs and effects in Logic, which is definitely nice to have. Unfortunately, we can't use Live's sync directly because it uses MIDI Clock messages, but Logic does not support syncing to an external MIDI Clock. [Dear Apple: this is seriously lame!] All is not lost, I believe it's possible to send the MIDI Clock to a separate application that will convert the messages to something that Logic will understand. However, this is a complex topic that will need to be covered in a future article.
  • Remote is for MIDI mapping parameters in Live to a hardware controller. It may not actually be needed for any of the communication between Live & Logic (I'm honestly not sure yet), but it doesn't hurt to enable it in case we find a use for it later.

Comments

Re: Live + Logic #2: MIDI Routing

hey adam!

first of all, thanks a lot, this is great what you've done here, everything is explained cleary! i've been looking for this...!

so, i got everything working. i can create midi in live and it's playing an instrument from logic.

but i still haven't figured out, how to get from the midi the audio out of it in live as a file to put it back in a audio track. i've seen the first comment and your reply. i've freezed the midi track in live and then tried to export only the as audio, but the only thing i get is an aiff-file with silence...?

what am i doing wrong?

cheers - david

Re: Live + Logic #2: MIDI Routing

So now i got this running... some channels have the logic midi clips in it, but if i want to export the song in ableton it won't export the midi-clips from logic...so how can i export these with the song or convert them to audio?

thx

Re: Live + Logic #2: MIDI Routing

You can freeze the track in Live to get the audio.

To get the midi, in Logic you can go to File -> Export -> Selection as MIDI, save that file on your computer somewhere, and then add it to your Live set. If you select multiple tracks and then do that export, I believe it creates a multi-track midi file, which is probably not what you want. You'll typically want to select a single track (or individual regions within the track) and export them one at a time.

Re: Live + Logic #2: MIDI Routing

Hi...this tutorial help me so much...i would want to say thank you to all everybody that have prepared this awesome tutorial...

The sound of Logic Plug In play out into my Albleton Channel with External Instrument...but i have one problem...

How can do to records audio of the sound of Logic??!? In the Ableton channel the sound comes out...but ther isn' t audio signal to records!??!

Hope to be able to explain me....please i need help!!!

Best

Re: Live + Logic #2: MIDI Routing

brilliant! i've been wondering about how to do this for a minute now!!
just 2 question, to take it further .. 1, is there a way to clock sync Logic to live in this mode, so i can access delays/fx in sync with ableton?

2, though i love live, i feel like being able to mix down my sound in logic would be awesome .. with MIDI control from Live i can easily use most of my plugins in Logic, but not all, and not my Max for Live patches .. how could i port those specific tracks into logic for mixdown?

thanks again! so stoked about this!

Re: Live + Logic #2: MIDI Routing

1. I really want to sync the clocks too but I never got around to figuring out a good system for it. Assuming Live is the master clock, there isn't a direct way to sync Logic's clock, because Live sends MIDI clock for sync and in the Logic manual it says:
"Logic Pro can send MIDI Clock signals to synchronize external devices. It can not receive MIDI Clock synchronization signals."
All is not lost though. I think it's possible to use a third piece of software that converts Live's MIDI clock to something Logic supports. But I'm not sure such software exists. I assumed I would have to build it myself, that's why I never got around to it.

Other options could work, like making Logic the master (Live says it can be a slave to MIDI clock), or using external hardware to serve as the master clock for both programs. I didn't really look into making Logic the master because I want to control the tempo and song position from inside Live, and basically think of Logic like a big plugin. Since you want to mixdown in Logic, making Logic the master clock probably makes sense. Read the section on synchronization in the manuals for both programs and hopefully that will get you started.

2. Once you have Live sending MIDI to Logic, you can just record the track in Logic and then edit and mix from there. Logic doesn't care where the MIDI is coming from, so this isn't really any different from recording notes from a MIDI keyboard. If you have audio clips in Live, that's a little bit more work. You could try using something like Wormhole2 to route the audio over, or just mixdown the clips/tracks in Live and open the files in Logic. Shouldn't be too hard...

Re: Live + Logic #2: MIDI Routing

this is so amazing, just the info I needed... thankyou forever :)

Only thing is...I'm not getting any sound. At first, I was getting the sound from logic, but now that i've re-routed the physical input cable in the environment window to 'TO LOGIC' , it becomes clear that live is not receiving the messages. there is signal showing up in midi channel 2 in Live, but this seems to be due to the fact that my usb midi interface is assigned to that channel (in the preferences). the ext instrument track 1 is armed... it's very confusing.

Can you help...?

Re: Live + Logic #2: MIDI Routing

It sounds like either Live is not sending MIDI out the "TO LOGIC" port (check that it's enabled in the preferences screen and the external instrument is setup correctly) or you connected the wrong cable in Logic's environment (maybe you connected the one just above or below "TO LOGIC").

Also, I have noticed in Logic, if you connect or remove MIDI devices, it can shift around the order of the MIDI ports in Logic. So maybe that's part of your problem. Connect all the hardware you want to use, then make sure Logic's environment is setup correctly.

Re: Live + Logic #2: MIDI Routing

ok, so I re-did the whole set up in new live & logic projects, got sound happening, i can record clips in live and it's playing the logic instruments - but all at the same time! I've assigned each track in live to midi channels 1,2,3 and 4, and each midi track in logic correspondingly... what am I doing wrong? I can't get it to differentiate the instruments to each track.... blergh!

Re: Live + Logic #2: MIDI Routing

sorry for posting my whole fumbling process up here... seems I've sorted it out. all it took was a third attempt at setting the whole thing up again in new projects.... anyway, your tutorial is great and has helped me a lot. thanks :)

Re: Live + Logic #2: MIDI Routing

Aha, this is exactly the information I was looking for! Many many thanks :)

Re: Live + Logic #2: MIDI Routing

This is exactly the information I was looking for.
But after setting up the new IAC Bus in the "audio midi setup"
I still can not see it in Live. I am looking at the same screen under Preferences - midi sync. But It is just not there. I can't figure this step out.
Please let me know what to do.

invisiblenation@gmail.com
-Jeremy

Re: Live + Logic #2: MIDI Routing

A few things to check:
- Make sure "device is online" is checked in the IAC Driver Properties window (compare with the screenshot above)
- You may need to restart Ableton Live to make it aware of the new IAC MIDI port. You could also try restarting your computer but that shouldn't be necessary...

If that still doesn't work, make sure you can see the IAC MIDI port in another application like Logic. If you can't see the MIDI port anywhere, then it must not have been setup properly so double check all the settings under Audio MIDI Setup. If you can see the port in another application and only Live can't see it, then it sounds like something is up with your version of Live. In that case I'd suggest asking on the Ableton forums (http://forum.ableton.com/) because I'm not sure what to try.

Re: Live + Logic #2: MIDI Routing

Yeah - it's all good now. The "Device is online" box was not checked in my case.
I had just reinstalled all software on my Mac Pro. Weird default... but hey... that's how apple likes it.
So if you want to put "Remember to check the 'device is online' box" in the 'Audio Midi Setup' then idiots like me won't
have to worry as much.

-Jeremy

Re: Live + Logic #2: MIDI Routing

Cheers for this tutorial - I've been a bit mystified about internally routing MIDI on my Mac, this explains it nicely.

Hoping to apply the above to send MIDI output from Quartz Composer to Logic Pro (using a Guitar Hero guitar as the Input).

Re: Live + Logic #2: MIDI Routing

This is amazing! This helped me out a lot! I couldn't find any tutorials that actually show how to do this. Thanks a bunch!