You are here

Construct Your Own Logic Matrix Sequencer

Logic Tips & Techniques By Steve Knee
Published July 2003

Relive the hardware of the early synth pioneers, as we show you how to construct your very own matrix sequencer in the Environment.

Screen 1.Screen 1.Back in the heady days of analogue synthesis, people tried to find ways of playing synths automatically, and various ideas emerged. One early design was the matrix sequencer, which had perhaps eight or 16 steps marked along the bottom, and various outputs up the side. By pressing a key in the matrix a control voltage appeared at the appropriate output when that particular step was activated. A clock signal was used to cycle round the steps, which triggered sounds depending on what buttons had been set.

Whilst being a very simple design, it still has its devotees and has been revisited in various modern software applications, such as Propellerhead's Reason. However, Logic has no dedicated matrix sequencer and, while the Hyper Edit window can be adapted to act in this way, I prefer to use the Environment. So here's how to create a basic eight-step, two-line matrix for yourself.

Doing The Groundwork

First you need a signal to be automatically generated in the Environment during playback, and for this you need to use a MIDI Metronome Click object — with just the Bar field ticked in its Parameters it will mark the start of every bar. To get the matrix to run at a comfortable rate at 120bpm, it is necessary to go through the eight-step sequence twice. In order to create a second trigger halfway through the bar, cable the metronome straight into a Delay Line object — in its Parameters, set Repeat to one and Delay to '8 0', making sure Thru is ticked.

To route the MIDI Note On message to different parts of a matrix, a Channel Switcher object needs to be used — this object is vital to the matrix sequencer design, because it can operate under remote control. First let's concentrate on setting up the automated switching action. A MIDI Continuous Controller number seven message (CC7) with a value of 127 can be used to advance the switch, whilst the same message with a value of zero will reset it back to the start. To convert the MIDI Metronome Click's note messages to the correct Continuous Controller messages, you need to use Transformer objects.

Current Versions
 Mac OS X: Logic Audio Platinum v6.1.0
Mac OS 9: Logic Audio Platinum v6.1.0
PC: Logic Audio Platinum v5.5.1

Create two new Transformers, and cable the output of the Delay Line to them both through a Monitor object. Double-click the first Transformer to open its dialogue box and change all note events with velocity values above zero into CC7 messages with values of 127. A setting for doing this can be seen in Screen 1(above) — note that the Filter Non-matching Events option is selected at the top of the window. The other Transformer should be set up the same, except with the value of the resultant CC7 message at zero.

Screen 2.Screen 2.Having the right signals is one thing, but we also need to duplicate them — we currently have two per bar, yet for an eight-step sequence repeated twice we need 16 separate signals. Cable the output of the 'switch advance' Transformer into seven Delay Line objects, unticking Thru in each one's Parameters and setting the Delays from '1 0' through to '7 0'. Next, cable the 'reset switch' Transformer into another Delay Line with Thru unticked in its Parameters and Delay set to '8 0'. Finally, cable all eight Delay Lines through a Monitor object to merge them, and connect this to a new Cable Switcher. When we have some outputs for this Cable Switcher, it should happily cycle round eight steps. This setup can be seen in Screen 2.

Creating The Notes

That provides the switching control, so now we need to send a signal though the Cable Switcher. Take a second output from the Monitor object to route the eight Delay Lines to a new Transformer object, this time changing all the CC7 messages (both 'advance' and 'reset') back into Note On messages with velocity values of 127 — a setting to do this can be seen in Screen 3. Cable this Transformer to the Cable Switcher — these Note On messages will be used to activate a row of buttons which will form the steps of the matrix.

Screen 3.Screen 3.To deactivate the buttons after the end of each step, however, we need another Note On message, but with a velocity value of zero. Take another feed from the Transformer that converts the CC7 messages into Note On messages, and use yet another Transformer to change the velocity values to zero. Cable the output of this into another Delay Line object, setting the delay to be the length of time you want each matrix step's button to remain on (bearing in mind that this should be shorter than the step duration) and then connect that into the Cable Switcher as well. This setup is illustrated in Screen 4.

It's worth noting here that a strange quirk of the Transformer object means that the zero-velocity Transformer will actually output velocities of one. This is fine for switching our buttons, which will default to sending out notes of a fixed duration. To get a variable duration for the notes requires some complicated routing, which is beyond the scope of this article. However, the note durations can be easily changed in the Event List window once the data has been created.

Screen 4.Screen 4.So, let's recap. We now have a Cable Switcher which sends a Note On message with a velocity value of 127 followed by a Note On message at a velocity of zero via eight different outputs which are switched 16 times a bar. The hard work is now complete, because the signals have been created, much like the control-voltages of old. What we need to do now is decide whether or not to send each one to our instrument.

Building The Selection Matrix

Create a horizontal row of eight buttons by selecting Button from the Fader submenu of the New menu, and set the In field in the Parameters to match the notes being sent by the Cable Switcher. Cable eight outputs of the Cable Switcher into each of these buttons, one per button. With the Range fields in the Parameters set to one and 127, the buttons should switch on and off appropriately, providing a visual representation of which step the matrix sequencer is on. Bear in mind that Logic gets the MIDI data right first and updates the screen second, so the visual switching may lag slightly.

These buttons are what actually creates the data we'll send to the sequencer, so choose what kind of data you want in the Parameters box for the button — for the example here we'll use Note On messages. For each line of the matrix you want to create, just take the output of each button into its own new Cable Switcher. Control the Cable Switcher with another simple selection button — this one will decide if the Note On is sent for that step, just like the switches on an analogue matrix sequencer. Take one output from all the Cable Switchers in the row and cable them to a single Transformer to shift the Note On messages to any note number you like. The buttons will also generate notes with a velocity value of one, so use the Transformer's Filter Non-matching Events option to get rid of these.

Once the second row of buttons is constructed in the same way, all that remains to be done is to send from each row's Transformer output to a single Sequencer Input object, from where it can be routed to instruments and recorded. This last section of the setup is shown in Screen 5 (below).

Screen 5.Screen 5.

Beyond The Matrix

The example created here is just a simple two-line affair. However, this was just to get you started. Using the data created by the main switcher, any number of rows could be created. If you want to make the screen a little tidier, move all of the unwanted objects out of the way to leave just your selection buttons. The screen can be made to look even tidier by turning off Cables in the Environment window's View menu. The parts you'll create with the matrix sequencer are unlikely to resemble anything you might play, just due to the method of programming, and may just take you off in a new musical direction. Now, where did I leave that Jean-Michel Jarre album..?

Logic Tips

  • The button with the chain links icon at the top left of most of Logic's windows has three modes, indicated by the colour of the button: off (gray), Link (pink), and Contents Link (gold). In Link mode, the window's view will change in synchronisation with the top window. In Contents Link mode, its view will change in synchronisation with the selected object in the top window. Link mode is handy for windows that display similar objects, such as two MIDI editors. Contents Link mode is handy for synchronising MIDI editors to the Arrange window. The Sample Editor window is an exception — it only offers Link mode, which causes it to show the contents of the audio region selected in any other window. Len Sasso
  • Some of Logic's plug-ins have so many parameters that the designers have chosen not to show all of them in the plug-in window's main Editor view. However, if you'd like to see them, then click the circular '001 011' button at the top of the window and they'll appear under the main Editor view. Mike Senior
  • Audio playback from both the Audio window and the Sample Editor uses the Track Audio object selected in the Cha numerical field at the left-hand side of the window. It's a good idea to set this to an Audio Track object not used in the Arrange window, so that muting and effects processing won't be applied when auditioning audio files. Note that the setting is not preserved with the song or between sessions with Logic — it is always reset to one. Len Sasso

Buy Related Tutorial Videos