Logic Pro X Can I have Logic show me the chords of a MIDI track?



Logic can name my MIDI chords as I play them, how can I have it show me the chords of a MIDI track that I'm playing back?

This is a re-ask of a question which I posted here.

Thanks in advance :)


The chord display reads the midi information before it arrives at the sequencer (actually from the physical input) - what you would need to do is reassign that track (or copy the track ) to an external instrument object (or track) - and route it out the Iac bus. Now when you play the track back. The midi data is sent out the external instrument - through the Iac bus and re- enters logic via the physical input - where the chord display grabs it - interprets it and displays it - during playback.


Thanks for that!

I'd never heard of the IAC driver. For anyone else following along, This video showed how to set it up.

As you suggested, I then created an external MIDI track which outputted to the new IAC MIDI bus, and reassinged my recorded MIDI data to that new track. When I play it back, I now get the chords showing. Very cool! :)

I have a couple of questions... which are going to show my Logic ignorance.
I don't really want to reasign the MIDI data to IAC track, as I still want it to play with the original instrument. So, instead, I created an alias of the region, which seemed to work well. However (and perhaps it's my ignorance of alias's), when I re-record the source region, I have to create a new alias to it on the IAC track.

In Reaper it's possible to just route all the MIDI data from track A to tracks x,y,z. I suppose it's like having the equivalent of multiple reassignments in Logic, but still leaving the MIDI on the original track.

Is there a way to achieve this in Logic?

Thanks again.


1/ Track 1 is a standard software instrument track with a B3 organ
2/ Track 2 is an external instrument track
3/ Both need to be record enabled when recording.....

In the environment you will need to make 3 items ( 2 Multi instruments and a Fader) ( see image below).
A. Multi Instrument "Pre" ( output is connect to input of Fader)
B. Fader ( with filter set to thru ) and wired to input of Multi Instrument "Post"
C. Multi Instrument "Post" - Output set to IAC bus.

The reason for the environment configuration is to disable midi Thru so you don't get a feedback loop ( midi going out the IAC bus, back into log then back out IAC bus then back in, etc, etc).

Set track #2 output object to be the Multi Pre.....
Highlight Track 1
Press record.

This will record the midi on Track 1 ( you will hear it as you play)
when you press stop, It will create an alias on track 2 ( because you have it record enabled)
The display will show the chords as you play them.

Now when you just play back the track from the beginning.... you will hear the audio from Track 1 - but Track 2 will send the Midi ( alias of track 1) out the IAC port ( via the 3 environment objects created) back into logic for chord detection without a feedback loop.

You can even hide the alias track once you get it configured if you prefer.

This is not simple to understand for a newbie as you have to fully understand the signal flow in logic - but persevere as it is the power of logic and its flexibility that allows customizing the system to do what you wanted.

Remember Midi always enters logic on the highlighted track.
Midi regions, on the track during playback and realtime "live" performance... get sent out the assigned object on the track header.

Watch the chords in the display you can see that during recording the chords are being recognized and during playback the chords are being recognized.... How cool is that!!!!!!!

Great question!!! Keep learning - it is amazing stuff.

Greg V

Midi Loopback via IAC NoThru Shows Chords.gif


WOOHOO!! Now we're having fun!

Great solution!

That took me about 45 minutes to get my head around... with lots of lessons on the way. I crashed Logic more than once as I tied it up in feedback loop hell.

I think that, when you hide the second track, it disables recording, so that can only be done I guess after the first track is stable.
Thanks heaps for this Greg! My head is spinning, and I'm left with a dozen new questions now, but I'm on my way.

One thing that has crossed my mind is that this seems very complicated compared to Reaper (where, if I'm correct, it's simply drag from A --> B and the MIDI data will route). Having said that, I'm here playing with Logic, so there must be some appeal. A guy I work with (we write software) often says that, in a well designed app, the simple things are easy and the complicated things are possible.

After the few days using it, I'm thinking that Logic might have hit that sweet spot well. The initial effort in Logic to knock out a track seemes lower than for Reaper. Key contributors to this that I've seen so far are the sounds library (click a patch and the wizard goes and wires up a stack of objects) and the auto drummer. It would seem that all the power and flexibiity is in Logic, but nicely hidden away.

Anwyay - thanks again for that. I think I learned a lot.


Ask questions.... Even obvious or simple ones as helping to answer is how I learn what I don't know. You can know algebra but if you aren't clear on simple math it can make algebra more complicated - once you do - all becomes clear.

To do your track 1 to x,y z reaper thing. Just record enable all tracks in logic keeping track 1 highlighted.... Simple right - when you know simple math...
Ok maybe a bad analogy!

Btw in logic too you can drag a to b



> Btw in logic too you can drag a to b

As in, creating an alias or copy? I was more thinking about creating a pipe / route. Am I missing something?


This is where it is better to describe what the end objective rather than a process based on another program - sometimes the meaning is different.
1/ If you want to route midi to the same track (s).. create multiple tracks and record enable all of them. Aliases are created on the non selected track - if you want real midi - highlight the alias and press control A ( they are converted ).
2/ If you want to modify the route - right click on the track header and choose reassign - here you can select anything you want or have in the environment... if you created a sax track on track 1 and you want the same route on track 2 - reassign it the sax audio channel strip in the mixer....
3/ you can also copy one region of one track to the another track... option drag it to the new track...

Not sure if these are helpful... again ask what the end objective is - not the process you think you need.

Another silly analogy - in my conversion coming from windows to mac.. I might have said - there is no delete option when I click on a file - what I should have said - how do I delete a file ( dragging it to the trash is a different process then pressing delete). The biases of reaper will continually lead to initial confusion with Logic until you start thinking "Logic"al and toss out what you know about other DAWs.... :):blsbrthrs:


> This is where it is better to describe what the end objective rather than a process
Yeah, very good point.
There's some sound wisdom in that post.
You've explained aliases well.

Thanks again for all this. I'm enjoying it!


PS - I cmd-delete in finder. Life's too short for dragging :)


Disappointing that Logic can detect chords this way but won't detect chords when creating a score. That would save a lot of time. Hope that gets added soon. Or am I missing something?


No unfortunetly that feature used to be in logic 9 but was removed in Logic X. Send feedback to Apple.. the more the better.