Logic Pro X: A Guide to Multitrack MIDI Recording

Logic Pro X has simplifed the process of recording multiple MIDI tracks. That being said, you need to know the correct settings and quirks which is why Joe Albano is on-hand to show you how.  

We all know that Logic Pro X is one of the most powerful and flexible DAWs out there, especially when it comes to MIDI. Along with its large collection of Virtual Instruments, Logic brings sophisticated MIDI editing capabilities, and, for the real tweakheads out there, extensive MIDI processing, courtesy of new features like MIDI Scripting, as well as long-term ones like the (MIDI programming) Environment. That makes it all the more curious when something that’s often simple to set up in other, often less capable workstations, is, to put it politely, a little less “logical”—perhaps a bit more convoluted than it needs to be—in Logic. Recording multitrack MIDI performances can sometimes be one of those tasks.

Now, to be fair, it has gotten much, much easier in Logic X, and certain configurations that used to require a trip to the Environment can now be set up easily in the main Track (Arrange) window. But there are still scenarios that may require a little tweaking. I’m going to lay out the basic approaches in Logic to recording multiple MIDI Instruments at the same time. 

Layering vs Multi-Player modes

There are two ways you might go about recording multitrack MIDI in Logic. One scenario is when you want to layer several Instruments together for a big, rich sound, play the combination live, triggering three or four different Instruments together, and record the results. There are a couple of ways to do this, and, in Logic X, it’s much simpler than ever.

The other scenario is what Logic terms Multiplayer Recording. This is where you have several (i.e. two or three) MIDI musicians performing together live, playing on separate MIDI controllers (like keyboards and MIDI drums), each triggering a different Virtual Instrument in Logic, and you want to record them together, ending up with individual MIDI parts on the individual Instrument tracks when you hit Stop. That’s also much more logical in Logic X, but it’s still not as straightforward, in every situation, as it could be. I’ll come back to that—first, let’s take a look at two ways to record layered Instruments.

Layers of sound

The easiest way to layer up Virtual Instruments is to simply record-enable several MIDI tracks at once. 

Fig 1 Several Logic Instrument tracks record-enabled for a fat, layered sound

Fig 1 Several Logic Instrument tracks record-enabled for a fat, layered sound.

When you play, you’ll hear them all, and when you record, you’ll get a MIDI Region on the selected track, and Alias Regions on the other record-enabled tracks. 

Fig 2 Four layered Instruments, with a recorded MID Region on the top track, and Aliases on the other tracks

Fig 2 Four layered Instruments, with a recorded MID Region on the top track, and Aliases on the other tracks

Audio: The four Instruments, separately, then layered together, as they were played and recorded, as above:


Alias Regions don’t contain any data, they’re just pointers to the main Region, so if you want to make edits to the MIDI data (quantize, pitch changes, etc), you only have to tweak that one Region, and the other Instruments will follow. But you do need to keep the Aliases together with the main Regions to preserve the layering.

Now, this is pretty straightforward, but it is contingent on a particular setting in the Project Settings for that song. Under File > Project Settings > Recording you’ll find an option entitled “Auto demix by channel if multitrack recording”. 

Fig 3 The Project Settings option “Auto demix by channel if multitrack recording”, which must be set Off for layering, and On for multiplayer recording

Fig 3 The Project Settings option “Auto demix by channel if multitrack recording”, which must be set Off for layering, and On for multiplayer recording

This must be un-checked for the layering of Instruments to work as I just described—that is the default, but since it’s a Project Setting, it might be on when you open up an older song, or get a Project from a collaborator. (This option is actually for the other scenario, multiplayer recording, which I’ll come back to in a minute).

An even easier way to play and record multiple Instruments is by combining them into a Track Stack. A Track Stack, as you may know, puts several tracks under the same umbrella, making it easier to treat then as a unit. There are two types—Folder Stacks, and Summing Stacks—you just select the tracks you want to include, right-click, choose “Create Track Stack” (Shift-Command-D), and select the type you want. 

Fig 4 Creating a (Summing) Track Stack

Fig 4 Creating a (Summing) Track Stack

With Folder stacks, recording layered instruments is the same as I just went through, but Summing Stacks take a slightly different approach. A Summing Stack creates an Aux—the Track Stack master—and re-routes the audio outputs of all the tracks you add to it through that Aux. But it has its own Record-Enable button, and routes any incoming MIDI to all the Tracks within it. When you record, you get only one MIDI Region, on that Track Stack master track, but all the Instruments within the Stack will play from that Region—a much more elegant approach. 

Fig 5 A Summing (Track) Stack, with four (layered) Instruments all receiving MIDI data from the MIDI Region on the Track Stack master track

Fig 5 A Summing (Track) Stack, with four (layered) Instruments all receiving MIDI data from the MIDI Region on the Track Stack master track

You can also close the Stack so only the Stack master track is showing (independently for the Arrange and Mix displays), to consolidate space in a busy mix/arrangement—the internal tracks still play normally. Summing Stacks are also great for a multi-Instrument like a big drum kit, with different drums in different Instruments.

The band plays on

The other MIDI multitrack scenario, Multiplayer Recording, is also easy enough to implement now, in Logic X, but it is a bit less elegant. Again, this is when you have a MIDI band, of several players on individual controllers, triggering different Logic Instruments, and you want to record them playing live, ending up with separate MIDI Regions for each Instrument/track. Many DAWs simply let you choose a different MIDI input (from the available MIDI devices) for each Virtual Instrument track, arm them all, and Bob’s Your Uncle. But Logic is a little more restrictive..

Logic forces you to channelize, in order to assign the different MIDI controllers to different Instrument tracks. This means utilizing the old-fashioned MIDI Channel data that’s still part of every MIDI message (which Logic conveniently ignores when recording one Instrument at a time). There are 16 MIDI Channels in the spec, and each Logic Instrument must be set to receive MIDI data on a different Channel number. This is set in the Track Inspector pane, on the left of the Main window. 

Fig 6 Setting the (receiving) MIDI Channel for a Logic Instrument, in the Track Inspector pane

Fig 6 Setting the (receiving) MIDI Channel for a Logic Instrument, in the Track Inspector pane

The MIDI players’ MIDI controllers must then be set to transmit their MIDI data on the correct corresponding Channels, to address the various Instruments separately. And, finally, that Project Setting you saw earlier, “Auto demix by channel if multitrack recording” (Fig 3), must now be enabled (checked) for this to work properly (remember, I mentioned that it was intended for multiplayer recording). 

Demix for Success

When all this is set up, you can once again record-enable several Instrument tracks. The correct player will now be routed to each Instrument (independently, with no layering), and you can record them live, as a group. During recording, you’ll see only one MIDI Region being recorded, but when the recording’s done, and you hit Stop, the MIDI (performance) data will automatically be split up by MIDI Channel, and different Regions will appear correctly on each matching Instrument track. These are independent regions—no Aliases—and the result is the same as if you’d recorded the parts one by one. 

Fig 7 Three MIDI Instrument tracks recorded together live, as described above

Fig 7 Three MIDI Instrument tracks recorded together live, as described above

Even though this is less straightforward, conceptually, than the simpler MIDI-input-per-track method, it does work well. The only wrinkle is if you find yourself with one or more MIDI controllers that don’t transmit on any channel except Channel 1—unlikely nowadays, but still possible, especially with some older gear or certain consumer-oriented MIDI piano controllers. In that case, you may have to pay a visit to the (sometimes scary) MIDI Environment’s Click & Ports layer, where you can grab the individual controllers’ MIDI data streams from the Physical Input object (which represents the actual MIDI hardware devices that Logic sees hooked up to your computer), and re-channelize the incoming MIDI data there, with real-time Transformers, before sending it all on to the Sequencer Input object, which represents (all) the selected, record-armed Instrument tracks. 

Fig 8 MIDI Data from three MIDI controllers, being channelized in Logic’s Enviroment for multiplayer recording, before being sent on the Sequencer Input, which will distribute the data from the different performers to the correct Instrument tracks with the matching MIDI Channels

Fig 8 MIDI Data from three MIDI controllers, being channelized in Logic’s Enviroment for multiplayer recording, before being sent on the Sequencer Input, which will distribute the data from the different performers to the correct Instrument tracks with the matching MIDI Channels

Fortunately, this is not too likely a scenario these days, and, though it’s easy enough to do, it’s even easier if you can just set things up directly in the main window, as described.

So, that’s a quick look into the world of multitrack MIDI recording in Logic. Long-time Logic users have always considered certain aspects of this to be kind of a kludge, but Logic Pro X has taken significant steps to simplify these procedures, so, once you’re familiar with the necessary settings and occasional quirks, it should be easy enough to either dial up big fat layers of sound, or record that slammin’ live MIDI band, with a minimum of fuss.

Joe is a musician, engineer, and producer in NYC. Over the years, as a small studio operator and freelance engineer, he's made recordings of all types from music & album production to v/o & post. He's also taught all aspects of recording and music technology at several NY audio schools, and has been writing articles for Recording magaz... Read More

Discussion

Johnthomas
Dear Joe,
Hi! Thanks for this! All clear. One question though. What if one (or more) of the controllers needs to input midi data to more than one midi channel/virtual instruments? To be more specific, in an example: a jam when one keyboard player plays instrument-1 in part A and instrument-2 in part B. I have been playing around with: making two or more transformers AFTER a monitor object, so actually sending to two or more midi channels ; and some volume automation (which I find more reliable than mute automation, especially when cycling) per track to overcome the disadvantage of the first step. Hope my question is clear.Oh... and the reason why I needed to ask this is because my 'solution' sometimes does the job and sometimes doesn't.
John Thomas
Joe A
Hi John -

Let me see if I've got this.. The scenario is you have multiple MIDI controllers set up to play/record a few instruments at the same time (via different MIDI channels), and one of them needs to alternately play two different VIs..? Hmm.. I might also try to set it up in the Environment, maybe with a MIDI-controlled Cable Switcher that toggles between the two instruments..? The caveat there would be to watch out for notes sounding when you switch, which could become stuck notes unless you build an automatic note-off function into the switcher patch.. Another approach might be to set up the two instruments to receive on two different MIDI channels (obviously not used by any other controllers/VIs), and then change channels on the controller in realtime, if that can be done easily enough there (same caveat, though).

Your approach with the Volume/Muting of each track in turn should avoid any possible stuck note issues—is the Volume/Muting activated by hand (by the player during recording) or Automated after-the-fact? That should work consistently, but then again, this is the Environment ;-).. And some instruments (particularly third-party multitimbral instruments) might handle multipart volume controls differently.. I guess the best approach would depend in part on the particular instruments in use..

There's also probably a way to set something up within the Scripter MIDI plug-in, but I don't know JavaScript enough to advise, unless one of the existing MIDI plug-ins can be adapted..?
Ray S
Dear Joe,

I am glad that I found your great article on using Midi with Logic but I have a few questions I hope you can answer.

I have been struggling with setting up my MIDI controllers and trying to get them to work similar as I was used to in Digital Performer. In DP I was able to select a specific controller by name and when I pointed it to a track, no matter what MIDI channel it was , it worked. Now in Logic it is hard to use any of my controllers (I have 6 MIDI keyboard controllers) and easily point them to a virtual instrument without triggering other channels (I have Demux on) I also tried to fiddle with the environment and almost pulled my hair out....

How can I easily be able to select one or multiple controllers without having to change the controllers MIDI channels and point them at a virtual instrument and have it work or is there no way to do this? For example, I have a Korg M1 virtual instrument and if I have a controller on channel 2 and select the M1 and try to play Combi's, they don't play because they have MIDI channels set at 1. I don't want to have to change all the Combi's to channel 2 and then have to change them back again to use it with another controller on a different channel. I guess I'm getting confused.

I was used to recording "live" and having all my controllers record MIDI and be assigned to virtual instruments or external modules (this was in DP) but in Logic Pro X setting this up is not been easy for me.

I great appreciate any help or links to any solutions.
Joe A
Hi Ray -

Unfortunately, the key to (easily) routing different controllers to different instruments is MIDI channel assignment. It seems like it should be easy enough to simply switch the MIDI channel for the virtual M1 to channel 2 (in the Track Inspector)-- why would you have to "change all the Combi's"?.. Or are you saying that there's some channelizing within a Combi patch that overrides the Logic Track MIDI channel assignment? If that is the case -- if multiple internal sounds within a Combi patch are internally channelized to channel 1 -- then I guess that the Logic MIDI Track channel would have to be set to either channel 1 or "All". In that case, then matching the M1 Combi's channel 1 requirement on whatever controller is used to play it would seem to be the only solution..

Are you in fact playing/recording multiple instruments with multiple controllers simultaneously and the M1 Combi patch is one of them? Maybe avoid channel 1 on all the other tracks/controllers, reserving it for when an M1 Combi is in use, and then simply switch whichever controller you decide to use to play the M1 Combi instrument to channel 1..? Or add a dedicated M1 track to your Logic Template (nee Autoload).. Either way, it looks like if you want to at times use different controllers to play an M1 Combi instrument while also simultaneously recording other channelized MIDI instruments, then you'd have to switch the desired controller itself to channel 1..

But again, this is all based on the assumption I've made (based on your description) about how an M1 Combi patch works vis-a-vis internal MIDI channel assignments.. However, if that's not the the case..

Cheers,
Joe
Chaijen
Hi Joe, thx for the great article. Unfortunately it still does not solve my particular problem. I want to record serveral instruments at the same time: Roland TD-3 (fixed on midi channel 10) triggering Logic Drummer, Roland guitar synth recorded as audio while triggering 2 software synths and a Roland JV 2080 at the same time. Trying the demix all midi will not let me record 2 software synths at the same time and will make the TD-3 trigger JV-2080 sounds.Without the demix option i get the guitar synth and keyboard triggering the drums..Have been scratching my head over this for weeks now..Maybe a custom made Midi Environment?
Joe A
Hi Chaijen -

It seems like your situation is problematic because it's really both scenarios described in the article at the same time -- you need Demix mode to keep the drum and instrument parts separate, but layering mode to layer the two software synths (and the 2080? I'm not sure how that fits in -- is it also being triggered from the guitar synth or is it just another synth being played from another controller as part of the ensemble?).

You said "Trying the demix all midi will not let me record 2 software synths at the same time".. Exactly what happens? Is the MIDi data from the Roland not recorded for one or both, or do one or both not sound during recording or playback? (I'm guessing you only hear on, no layering)

At any rate, it seems that with Demix on, you won't automatically get any layering from the other synths. I don't have a spare controller here at the moment to fully test this, but here's something to try.. With Demix mode ON, set up the following patch in the Environment: Roland guitar synth controller (Physical Input Object) routed to two transformers in parallel, one set to channelize to the channel of the first softsynth to be layered, the other channelized to the channel of the second. Both transformers feed the Sequencer Input Object.

Back in the main window, record enable all the tracks (MIDI & Audio) and record. I tried this with a Drum Kit Designer track (selected during recording) and 2 softsynths (channelized as above ) plus 1 audio track, and it worked. I heard the drums and the 2 layered softsynths during recording, and afterwards independent MIDI sequences were demixed to the separate tracks, as expected. Caveat -- I didn't have a separate controller handy for the drums, so I split my one MIDI keyboard with the same Environment Transformers to keep the drums separate from the layered softsynths, but it did all work, maintaining the correct performances for the different instruments, so it's worth a try with your setup..

Cheers,
Joe
Chaijen
Thank you for quick reply. I am not too familiar with the Midi environment. so I am not quite sure if I can recreate this.You wrote "With Demix mode ON, set up the following patch in the Environment: Roland guitar synth controller (Physical Input Object) routed to two transformers in parallel, one set to channelize to the channel of the first softsynth to be layered, the other channelized to the channel of the second. Both transformers feed the Sequencer Input Object." Would it be possible to see this in a screenshot so I can recreate?Thx
Joe A
AFAIK there's no way to attach images in this forum, but it's easy enough to set up.. You'd go to the Click & Ports layer in the Environment (accessed via the Inspector in an Environment window); then drag a cable from the Roland output in the Physical Input object to two new parallel Transformers (you can split it by creating an Ornament or Monitor object, cabling to that first, and then dragging two cables from that to the two parallel Transformers). Set each Transformer like so: Top row (Conditions) Channel to channel transmitted by Roland, bottom row (Operations) Channel to one of the two channels of the two softsynths to be layered; do the same with the other Transformer. Drag cables from the outputs of the two Transformers to a Monitor object (so you can verify that that each incoming note is being output on the two channels) and then drag a cable from the Monitor object to the "to Sequencer" object. It should look pretty similar to the last screenshot in the article..

Cheers,
Joe

Want to join the discussion?

Create an account or login to get started!