Reaktor primary can be quite hard to get a grasp of, especially when you don't know all the modules which are available. This tutorial is going to show you how to make a basic sequencer which can be incorporated into a more complex synthesizer or drum machine. Everything shown in this tutorial is scalable to larger modules and once the basic template is made, it can be saved in a macro for use and adaptation to suit whatever need you have.
The very first thing you need when building a sequencer is a clock to keep the time with your DAW, this can be done in various ways, the simplest however is by using Reaktor's module under the MIDI In folder.
After adding your clock, you can now add in your sequencer. I normally go for the 16-Step sequencer for extra control, but for the simplicity of this tutorial, we shall go for the 8-Step. This is found under the Sequencer section in Built-in Module.
Now we can wire up the clock with the sequencer, sending the event output of the clock into the clock (Clk) input of the sequencer. By clicking on the Clock module and selecting the function tab, you are able to control the rate at which the clock ticks, it is set by default, to 1/8 notes lasting for a duration of 1/16. This is fine for the purpose of the sequencer.
While the Sync Clock counts the beats that have occurred, it doesn't track the position in the song. By adding a control to the restart input of the sequencer, we can set it to restart the sequence when the DAW is paused/played. This means that when you play from beat 1 again, it will restart the sequence to beat 1 too. The easiest way to do this is to add a Start/Stop module under the MIDI In folder.
Your Start/Stop module should be connected to the sequencer like the image below. You don't need to connect the Gate output to anything so it can be left alone.
The GA input on the Sequencer determines the amplitude of the Gate Output from the sequencer. Since we just want to use 1 as the maximum gate value (most modules accept 1 as the max), we can just create a constant and set it to 1.
The image below shows what we have so far. This is the most basic structure needed for a sequencer, with a clock to tick over each step change, a way to reset it, and an amplitude value for a gate out. We could set each step to a constant, a control, or any value and it would now work.
Let's keep going and get a drum machine style sequencer going. What we want to do is add a button for each step so we can click it if we want the drum to hit on that step. The Button is under the Panel option.
We are using an 8-Step sequencer and so, to have control over each step, we need to add 8 buttons. Instead of going through the process of adding 7 more buttons, just duplicate until you have 8 buttons. Each of these buttons is either on or off (outputting 1 or 0), so they are great for triggering drums and samples because the pitch is expected to remain the same. If we were using the sequencer to play a synth note, then we would instead use a knob, or some other way to insert the options of different note values.
Wire up each of the 8 buttons to each of the 8 step value inputs. This now means that each individual step can be switched on or off independently.
Now we want to be able to see what step the sequencer is currently on, most drum machines, whether real or virtual, use lights above each step, which light up when it is that step's tick in the sequence. To do this, we can add 8 Lamps from the Panel folder, one for each step.
Once you have 8 lamps, give them their own space in the edit view we need to add a few more things to get this to work well so the more space they are in, the more organised the workflow, and the easier it is to understand what's happening.
To get the lights to light up when it is their step, we need to find a way to send the on signal to a different light at each step. The best way of doing this is by using a Distributor/Panner module, found in the Signal Path folder.
The way that this module works, is an input signal has the option of several outputs. It decides which output to send the signal to, depending on the value fed into the Position input. The signal we can feed into this can be taken from the Stp output of the sequencer, which outputs the step number at each tick. This means that each step sends the "light on" signal to the next output, and therefore, the next light.
One issue we face with the distributor is that it is a zero based index. This means that the first output isn't numbered 1, it is instead numbered 0. This poses a problem, because the step output of the sequencer is not zero indexed, the first value is 1. To resolve this, we need to subtract 1 from the value with a subtraction module to align the indexes which we need.
Below, you can see the completed system so far. I have renamed all of the lights and buttons to their numerical step value. You will notice that the output numbers of the distributor are 0 based, while the numbers which title the lights are 1 based, hence why we needed the subtract module.
The signal needed to turn the light on was just a 1 constant. Since we already has a 1 constant used in the subtraction, we could use the output of that to feed the input of the distributor. It can be sometimes easier and tidier to work from the same constant, for several jobs, especially when they are so close.
Below you can see the final product once the buttons and lights were rearranged in the panel mode. You can choose to remove the number labels in the view settings, or keep them if you prefer. Each control in this sequencer can be replaced, for example, instead of a button, you may want an option of several note pitches in a switch menu for each step. You may also want to have a fader for each step which can change the volume level at each step like a trance gate.