The Perpetually Okay Jazz Band: A Practical Application of Random Note Suppression in Logic Pro X
In this post, I will use the randomizer function I posted about previously to create a complete jazz trio—piano, bass, drums—from a single chord sequence, specifically a jazz “walking” groove. The way this works is I use LPX’s MIDI effects to create as many notes as possible based on a simple chord progression, and then use random note suppression to shape the sound. This leads to a reasonably-sounding and loop-able jazz piece that technically could never end.
Here’s the musical caveat to all this: I call this “Jazz” but it’s not like some kind of true jazz purists will appreciate. I’m a mostly fan of jazz, a musician by hobby, and I know enough music theory to get me in trouble but not enough to completely justify my musical choices. This just came out really well to my ears considering the simple random function I created in the last post.
The reason why I am writing this is because the last piece of music came out really “spacey,” and I did some more noodling around and landed on the piece I built here. I caught myself by surprise that such a sample random number function can be used to such great effect. The music is almost secondary to that point. But only almost, because this project needed both the music and the random numbers to work. Whatever.
The Music Theory Section
“If you play the wrong note once, it’s a mistake. If you play the wrong note twice, it’s jazz.”
The melody at the heart of this project will be the venerable Westminster Chimes. This will be done in the key of C Major. Nothing fancy, but it will be illustrative here. I’ve tried other chord sequences, and they still work really well provided they aren’t too jumpy.
From this, I create some basic source material by expanding the melody into different kind of chords.
Using the melody as tonics for chords, the melody became I, IV, V, and vi chords. So, I built a set of those. (As I am reading the final draft, I realize one of the chords is incorrect and that mistake is carried through the whole post. But I’m not going to update this entire post over it.)
At the same time, we’re going for jazz, so I need 7ths and inversions, which will become very import later to help keep the bass line tempered.
The chords are the building blocks of the jazz sound other than the drums. The song tempo is set to 80 bpm, which is important in adding nuance later because so many notes are created.
The Rhythm Section
“If you’re swinging and the drummer isn’t swinging, then you’re not swinging. If you’re not swinging, and the drummer is swinging, then you’re swinging.”
I started off with the most basic of jazz rhythms. Initially, this sounds totally mechanical, like a good computer should. This is where I add the first real randomness.
For the drum patch, I just use the pre-defined Retro Rock kit. LPX doesn’t have any kits that are obviously jazzy. I like the cymbals in this kit and I was too lazy to fiddle with the shells. Besides, it just looks cool.
In the MIDI editor, I randomize the velocity of each note to add some imperfections by going to Functions > MIDI Transform > Random Velocity. Within the selected MIDI regions, it selects the note events and randomly chooses a new velocity for each within a range you specify. The tool defaults to a range of 40–127, which is I consider to be too extreme for almost all of my uses in these projects.
I prefer a range of 80–100 because it sounds good, and gets the velocities within a reasonable range that will make adjusting easier later.
The effect is subtle at this velocity but it’s effective when I lower velocities to give more of that jazz trio feel. To do this, I manually selected all of the notes, and lowered their velocities using the slider in the right. For this piece, I moved everything from ~85 to ~50.
Shaping the Drum Sound
Now that the core rhythm is settled, I made changes to it to allow the MIDI effects to take over. Basically, the way this works is by creating as many notes as possible within the rhythm’s contours, and then randomly dropping notes to mimic a human playing. To do this, certain instruments have to be separated since MIDI effects are all or nothing without some custom coding. By having the individual drum parts in their own tracks, it’s far easier to add nuance.
The first thing I did was get the ride cymbal set up. I took those notes and moved them to their own separate track. I removed the swing note and just placed notes on the eighth beats. I also extended the region out to a full measure to allow for some phrasing, which is at the end with the ride bell.
The swing notes are added in with the Note Repeater. It repeats once at the 8th triplet to get the shuffle.
The randomizer function is added to drop notes, which gives the ride an improvisational feel. I played with the threshold and settled on 128/256 to balance the swing feel without it being a full on shuffle.
Adding that back into the mix makes for something a lot less mechanical, but I’ll get to that later. The kick and hi-hat are left relatively untouched on their track.
Turning to the snare, the same MIDI effects apply as they did on the ride. For the playing itself, I updated the rhythm so that it moved around the snare a bit over the course of the measure. Most of the time is spent on the snare edge, with movement to the center for variation, ultimately hitting a rim shot for some pop at the end of the measure.
With the Note Repeater, it sounds like marching drum.
With the randomizer, it went into more improvisation.
Combine the whole kit together, and it sounds mostly like a person playing this, kind of a “popcorn” feel to it.
I tried lowering the snare’s random threshold a bit to have it be less noisy, but that was kind of splitting hairs for this piece.
For this project, I didn’t do too much with the bass. I wanted the piece to have that “walking” feel to it, so a simple arpeggiation of the non-inverted chords is all that is needed here.
I treated the velocities the same as the drums, randomizing between 80–100, and then bringing down to within the ~50 range. I also pulled the chords down into the C1 range. For the patch, I used the default Upright Bass.
Easy peasy. When combined with the drums, it starts to really take shape and sounds like a couple of musicians just kind of surfing or walking along with each other.
“One chord is fine. Two chords you’re pushing it. Three chords you’re into jazz.”—Lou Reed
The piano was hard to get right, and it was really gave this project the moniker of “Okay.”
I knew up front that I wanted the left and right hands to play differently, so there I created a track for each.
On the right hand track, I moved the dynamic sequence I used for the bass up to C4.
I applied the same MIDI effects as in the last article:
* Note Repeater
Again, the idea here is to create all the notes possible within a listenable range, and then suppress notes to shape the sound. Here, the Arpeggiator creates the initial bunch of different events based on a given chord to play with, and then I randomly suppress those with the randomizer. If I had the suppression on before the Arpeggiator, the music would be immediately repetitive, mechanical, and in all-or-nothing bursts. In another context that would be desirable, like maybe with the bass piano notes, but not here. The Note Repeater comes next to add some rhythm, and the random suppression plays the same role as with the Arpeggiator.
I randomized the velocities as with everything else, with a range of 80–100. Then, I fiddled with the various effects settings for a good hour to get the feel of a keyboardist kind of surfing on top of the chord progression. In the end, I settled on the following settings:
Arpeggiator: Rate 1/16, Note Order Down-Up, Variation 4, Octave Range 2, Swing 99%
Note Repeater: Delay 1/2 triplet, Repeats 2, Velocity Ramp 110%
On it’s own, the right hand track is good enough, but will sound a lot better when mixed with the rest of the tracks.
For the left-hand portion, I tried all of the different sequences, and ultimately settled on the 7th Inverted chord sequence moved down into the C2. This helped to ensure the melody on the right hand is supported while not being overwhelmed by the bass, and not overwhelming the upright bass.
The MIDI Effects settings are a little different than with the right hand, effectively making the left hand less busy than the right hand.
Arpeggiator: Rate 1/8, Note Order Down-Up, Variation 4, Octave Range 1, Swing 50%
Note Repeater: Delay 1/2 triplet, Repeats 2, Velocity Ramp 70%
The piano bass was tough to get right, and I’m still not happy with it. But like all good projects, this, too, shall be abandoned.
On a more technical note specific to LPX, to help with editing and organization, the piano and drum tracks are grouped into their own Summing Track Stack.
Putting It All Together
“Jazz isn’t dead. It just has a funny smell.”—Frank Zappa
Anyway, now that all pieces were completed, I put it all together with a bit of mixing. This is the all five sections of the Westminster Chimes looped twice.
I can add more of a proper arrangement to the whole thing by removing some of the 7ths, going back to some un-inverted chords, fiddling with the MIDI effects, etc. But for now, put together, it’s perfectly okay. And since this is all loop-able due to using effects and functions to create the music on top of any chord sequence, it can be perpetual, too.
Epilogue: Piano Left-Hand Track
Soon after writing this, I reworked the the piano’s left-hand track to mimic more of what I had in mind. It was really supposed to more of the chords being played improvisational to a swing beat. I had a use a very specific combination of MIDI effects to do this, while also introducing the Chord Trigger MIDI effect.
- Note Repeater
- Note Repeater
- Chord Trigger
I started with a shortened-note version of the Westminster Chimes.
Then, I added a Note Repeater with simple settings to build more events. setting creates roughly the same rhythm as the unmodified snare and ride cymbal.
Then I added a Randomizer with a setting of 181/256. It’s an oddly specific setting considering the other settings so far, but I really had to fiddle with the settings for both to get the feel I was looking for.
The second note repeater comes into play to add the swing feel. by repeating once at 1/8 triplets.
The second randomizer is added to help shape it one last time with the now-venerable setting of 128/256.
Finally, the Chord Trigger MIDI Effect is added to create chords that pop. I added a custom patch to the Chord Trigger because I (really, really, really) didn’t like the defaults. I’ll confess a lack of jazz theory, but they just didn’t sound good.
Finally, I did only the range of this piece if only because the effect seems too cryptic to do this work easily across the whole keyboard.
Putting It All Together. Again. For The Very First Time.
Put it all together, and now this sounds more like what I had in mind. So, here is the original piece with the new piano left hand track.