In this post, I will take an arbitrary melody of notes and turn that into The Perpetually Okay Jazz Trio. I will be doing the following things in this project:
- Use the MIDI Environment to do two things:
- Push MIDI data to multiple tracks at once
- Use the MIDI Transformation object in the MIDI Environment to help with creating human-like playing
- Create a passable (albiet barely) drum solo with the Randomizer
- Work in the key of A Major, which requires using the Transposer MIDI Effect
The aim is largely to show how automation in the MIDI Environment in Logic Pro X can be used to great effect. But this is also about just having some fun exploring a part of LPX I don’t normally see in the gazillion YouTube tutorials.
Fair warning, this is going to get very technical very quickly, but totally worth it in the end.
The Music Theory Section
The source melody for this project comes from a long-time personal favorite: “Iceblink Luck” by Cocteau Twins from their album Heaven or Las Vegas (released 1990, 4AD).
The chord progression is a typical pop “I-IV-V-vi” centered progression, but it resolves a lot on the IV; the overall song structure is a nice variation of typical pop; and it’s just a really great song all around. Easily one of my “desert island discs.”
Here’s the original progression:
…which then gets boiled down to the tonics…
In the last project, I took the Westminster Chimes melodies and used them to manually create the chord progressions, that we were then used to make the music. Which is fine except for when I wanted to make an edit to the melody, that edit had to have been made in multiple tracks. This is somewhat mitigated by separating notes into regions, but that still means having to copy-paste regions in multiple tracks, and then making further adjustments to get the notes in the appropriate octave.
The melody was in the C3 octave, but the individual parts were spread out to ensure musically everything sounded right:
- Piano Right Hand: C4 octave
- Piano Left Hand: C2 octave
- Upright Bass: C1 octave
The Note Editor has easy functions for shifting up and down semitones, but it can still be easier when I know I will have several tracks working from the same source material. Knowing LPX, there’s a couple different ways to get the same MIDI data into different tracks at the same time, but I view the MIDI Environment as the way to go to position the project for real power over the long term.
Splitting the MIDI Data in the MIDI Environment
The MIDI Environment is how to view the actual connections between objects in LPX’s UI. I think of it as the difference between looking and playing a piano versus opening the top and seeing how things actually connect and work to make sound, and then being able to fiddle with things inside. It is an immensely powerful tool, and this project only scratches the surface. But that power is balanced by being a fiddly and sometimes unforgiving environment. There is Undo, but sometimes it’s non-obvious or something. So, the caveat to this post is that while it makes automation in the MIDI environment look easy, it takes a bit of work to get the connections to work as desired.
The main idea here is to take the melody and feed that to the individual instrument tracks. Then, those tracks then use MIDI effects to create the actual music played, chords and all. As noted earlier, the the Perpetually Okay Jazz Band has discrete tracks for all of the parts, mirrored in both the Track editor and MIDI Environment.
The object I used to send MIDI data to multiple tracks is the MIDI Monitor object. It’s a simple pass-through object that allows you to see the MIDI data as it is sent to instruments.
This monitor needs to be added to the Track Editor to contain the source melody (MIDI Data).
Just click and drag the MIDI Monitor object into the Track Editor, and click Create in the dialog that pops up.
To get the data into the MIDI Monitor Track, the MIDI needs to be copy and pasted into the track (dragging doesn’t seem to work the same way as with instrument tracks? I could have messed that up, but I don’t think so).
The MIDI Monitor track cannot have an instrument of its own—it is literally just a monitor; the Inspector is completely empty—so now the connections have to be made to the discrete part tracks. This is where things get fiddly.
In the top right corner of the MIDI Monitor object, there is a little triangle (pixelated) which is effectively a patch cable connection.
Clicking and dragging from there creates a virtual patch cable that can be connected to pretty anything else with the same connection.
By connecting the MIDI monitor to the instrument track, I am overriding the connection to the tracks original MIDI source and replacing it with the MIDI Monitor. So, whatever is in the MIDI Monitor track is pushed through the instrument track.
One of the fiddly things about the MIDI environment is that the UI makes it look like the MIDI Monitor is connected to the track on the left when it’s really not.
Moving the track on the left reveals the actual virtual connection.
I duplicated this connection to this connection to the other tracks. Every time a connection is made with the object, a new empty connection appears. These are small UI targets, so just be mindful of what you have grabbed before making connections.
With all three connections made, and the MIDI data in the MIDI Monitor track, press play and here the music played across all of the discrete parts. In the MIDI Environment, the MIDI data can be seen within the MIDI Monitor object.
Of course, this no longer sounds right because the MIDI Monitor just passes through the raw data, which is the single line of melody. This is where the MIDI Effects come in again.
In the previous version of the Perpetually Okay Jazz Band, the chords needed for the music was in the MIDI regions for each of the tracks. Also, they were already transposed to the correct octave. But in this project, the MIDI Data is a single line melody of notes in the C3 octave.
Here is what the Upright Bass plays using the original channel strip, which is just a simple arpeggio.
To create the music, I added three more MIDI Effects.
- Chord Trigger
- Transposer to get the produced chord in key
- Transposer to push the notes down to the correct octave
I need to spend some moe time with the Chord Trigger to understand the theory driving it, but it appears to default to the key of C, so the notes need to be transposed to the key of A to align with the project. The Chord Trigger MIDI Effect doesn’t appear to respect the Project’s key setting.
Also, I could probably do both the C-to-A transposition and the push down to the C1 octave in the same Transposition instance, but I was thinking I might need more discrete control at some point.
Adding the Chord Trigger, I get the “walk.”
Add the first Transposer to get in key.
Add the second Transposer to get in the correct octave.
Piano Left Hand
The Left Hand Piano doesn’t change much from the last version of this project. The MIDI Effect stack is still largely the same.
- Note Rep
- Delay 1/8
- Note Rep
- Delay 1/8t
- Chord Trigger
- Jazz Standard Left Hand Single
All that’s needed are the two Transposers as the Upright Bass
- Transposer set to -12 semitones
- Transposer set to A Major
Piano Right Hand
The right hand for the piano also requires minimal work. On its own, it’s just repeating the same notes in different octaves.
The Chord Trigger is added to give the material needed for the rest of the effects.
Finally, use the same transpotions as before, except going up an octave, and that creates the right had part.
Put the piano and bass together, and two-thirds of the Perpetually Okay Jazz Band is back to where it was, all stemming from the same melody of single notes in the MIDI Monitor track.
What’s important to note here is in the Track Editor, there are no regions because nothing is recorded. In order to record, then another track needs to be made, and the IAC Driver Bus 1 has to be used. (I have instructions to exactly that on my webpage.)
However, because the tracks are all sharing the same MIDI events, they all share the same velocities, which means everything is too consistent. To add some randomness back into the music, the MIDI Environment has the tools to do that.
Random Events in MIDI Environment
Back to the MIDI Environment with the three melodic tracks sharing what’s coming out of the MIDI Monitor. (The screenshots are a bit different from the earlier part because I experienced technical difficulties with how one of the tracks was playing another track’s MIDI events. I’m still not sure what happened, but I just created a new track and that altered the environment. Like I wrote before, the MIDI Environment makes things fiddly.)
I want to add randomness to the velocities like I did with the previous version. But since this happens live while playing, a Transformer object is placed inline between the MIDI Monitor and the Track.
The Transformer has the same dialog as the MIDI Transform in the main UI.
In the dialog, I changed the settings to the following:
- Top box: Status = Note
- Middle box: Velocity Random, and a range of 60 through 40.
The operation graph shows the same distribution as in the main UI. When I play the track, I can go back into the Environment to see how the Note MIDI events are being transformed in real time. I duplicated the same transformation for the other tracks. With the Monitors, the events can be seen as having their own randomness applied.
As before, the effect is subtle, but still valuable in making it less robotic.
The Benefit of MIDI Event Splitting
Now that I have this single source of MIDI data for all of the melodic tracks, if I want to make an edit, I only need to do it one place. So, let’s say I want to do something totally goofy and make an upside down mirror image of the melody. I can apply the Reverse Position and Reverse Pitch MIDI Transforms, apply a couple quick transpositions to get into key, and then voila!
The Perpetually Okay Jazz Band is playing the “new” music just same way as before. In the previous project, I would have to do those transformations and transpositions in every track that had data.
The Drum “Solo”
At the 2:33 mark of the song, there is an instrumental part. Chords change to iv-V-IV-I, and the drums follow along on the toms. For this portion, I updated the drums to hit more toms in a similar cadence as the rest of the song.
In the original Westminster Chimes piece, the drums were separated out into three discrete tracks: Ride, Snare, and Hi-hat+Kick.
In this piece, I separated out the Snare into two discrete tracks, with the simple logic of one drummer has two hands with a single stick in each, which means they can only hit one drum at a time with each hand.
The Snare Swing Track is still the snare drum and remains unchanged from before. It still has the Note Repeater and Randomizer MIDI Effects. The MIDI events are still moving around the different snare sounds, with some phrasing by measure with rimshots.
The Snare Solo Accomp. Track uses the same MIDI Effects, but shifts the Snare pattern up to the Mid and Hi Toms.
To make the switch to the instrumental portion, automation is used to make three things happen. Before the instrumental, the Randomizer is applied to three tracks:
- Ride: 128/256
- Snare Swing: 80/256
- Snare Solo Accomp: 0/256, effectively shutting this off because 2 sticks only.
In the instrumental, automation on the Randomizers changes them to the following:
- Ride: 0/256, effectively shutting this off because 2 sticks only.
- Snare Swing: 126/256
- Snare Solo Accomp: 129/256
I won’t get into the details of how I landed on the settings for the snare and times, except to say that’s what ended up sounding good to my drummer’s ears.
One additional change I made to the drums was to the Ride track, where I added in some cymbal hits. I felt the phrasing between different song parts, like verse and chorus, were hard to distinguish, so I added the cymbal hits as clues that the music was entering into a new part.
The following sample is 8 measures of the main groove, then the 8 measures of the instrumental portion, then the last 8 measures of the piece.
Like so much else, it’s…(say it with me)…okay. There’s clearly some work to be done, but I think it’s a good start.
Putting It All together
At the end of the project, the only tracks with MIDI Data are the Drums (though I think some signal splitting is possible given the patterns), and the MIDI Monitor. Everything else is handled in the MIDI Environment and the MIDI Effects.
Even if the music isn’t great, it’s still a useful setup to understand for future uses. I think the next challenge is to do some synthwave with the Randomizer, automation, and MIDI Environment, and see if I can craft some decent pop(-ish) music with this.
And that’s that. If you have any questions, please feel free to reach out via the email address casually buried in my About page, and you can also find me on LinkedIn. In the meantime, I hope you enjoy reading these as much as I enjoy making them, and never, ever stop making music.