Here is the complete article :
http://www.soundonsound.com/sos/Jul03/articles/logicnotes0703.asp?session=8bfa
c6deb8abcdea342bda2909f415d7
Construct your own matrix sequencer
Logic Notes
Published in SOS July 2003
Relive the hardware of the early synth pioneers this month, as we show you
how to construct your very own matrix sequencer in the Environment.
Steve Knee
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.
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 — 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.
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.
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 i
s 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
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.
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, but if you're still
scratching your head about how it all works, you can investigate the final setup for
yourself by downloading the demo Song file. This Logic Song file contains a
Matrix Sequencer Environment Layer in which you can see Steve's complete matrix
sequencer device. The Song is in Logic v4.8 format.
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...
Published in SOS July 2003
[Non-text portions of this message have been removed]