It’s been a while since I published the Roux II sequencer macro, which I’d promised to expand on with some further tutorials, so let’s get back on it!
A user emailed me an ensemble where he’d used two Roux II sequencers to create a step sequencer with pitch. However, it wasn’t working as he’d expected. Why not? Let’s take a look at his structure:
This looks fine at first glance. One Roux is driving the gate input on an envelope, another is driving the pitch input on a Sine module. The sequencer driving Pitch has been modified so its values go from 0 to 127 – the standard range of MIDI note values – instead of 0 to 1. Here’s what that looks like in the properties for the mouse area:
And in the table:
But the envelope doesn’t retrigger as expected, and the pitch triggers even when the gate doesn’t. Another problem, both cosmetic and functional, is that the tiny height of the pitch sequencer doesn’t give you much room to accurately enter values with the mouse!
So in my version I’ve made a larger pitch sequencer area.
It’s easy to change the size of the mouse area and table by using the view tab on the properties of these panel elements. If you want even more room, just set the width and height of these modules to a larger number of pixels – but make sure they match, so the mouse area fully overlies the table module on the panel.
As you can see I’ve also added a constrain-to-scale macro borrowed from the factory library Spiral sequencer for a quick way to restrict the notes to a particular scale. Now let’s have a look at the changes in the structure.
What I’ve changed in my version:
- Pitch and Gate macros have been renamed for clarity
- All macros and modules have been set to mono. There are certainly ways to make poly sequencers in Reaktor but polyphony doesn’t make sense for this kind of simple structure.
- The DR envelope is replaced with an ADSR. The DR envelope requires a zero value in between triggers, while the ADSR only requires a positive value to trigger, which makes more sense in a step sequencer where you’ll have one note after another.
- Separator and Value modules send pitch values only when the gate value is on.
- A Start / Stop module to send a zero to the envelope when the sequencer stops
- Triangle wave for some extra harmonics to the sound
- Mixer to control volume
- the aforementioned Pitch Correction macro from Spiral
- Added a synced stereo delay, to make things a little more interesting
Aside from the innards of the constrain-to-scale and delay macros, most of this should be straight-forward, but I want to talk a little more in depth about the use of the separator and value modules. The output of the Gate sequencer, which controls whether there’s a note on a certain step and how loud it is, goes through a separator. That way, only positive non-zero values of the gate trigger a new pitch.
Which brings us to the value module – the pitch is held back at the input of the value module until the “Trig” port receives a gate. If this weren’t in place, every pitch value would go through and you’d hear a glissando effect – notes between your desired notes – when setting high decay and / or release values on the envelope.
You’re probably also wondering about the start / stop and separator modules. What’s up with that?
The Start / Stop sends a 1 from its G output port when the clock is running – either Reaktor’s clock when standalone, or the host’s clock when running as a plugin – and sends a 0 when the clock stops. I’m using a separator module again, but this time we’re taking the value from the “Lo” output port, because we only want the zero. And the reason we want the zero is to send it to the G input on the envelope, to stop hanging notes from droning on forever.
Notice that the Separator module has two input ports – an “In” and a “Thld”. The threshold port determines what values go to the Hi and Lo outputs. When there’s nothing connected to Thld, Reaktor interprets this as a zero threshold. So values greater than zero go to Hi, and values of zero or less go to Lo.
One thing you’ll notice about this contraption is that it can have different sequence length and clock speed settings in the pitch and gate sequencers, one of the features you’ll also find on its big brother the Chroma sequencer. This lets the sequence morph and change in interesting and unpredictable ways over time. My philosophy is, if you already know what your music is going to sound like before you produce it, why bother? Make tools that produce happy accidents.
The next thing you might want to try is adding some better sounding audio generating modules, like a choice of waveforms, a filter or two, a filter envelope, an LFO – and of course, more Roux sequencer macros to control some of these parameters. See my previous post here to download the Roux macro on its own, and find out how to use it in your structures.
The Roux step sequencer is free and you can download it from the Reaktor Tips shop here:
The cost is zero and a link will be delivered to your inbox instantly. Plus, you’ll receive notification and another link when the Roux Stepper is updated with improved audio and sequencing features. Oh, and you’ll also get Ghost Shift, in case you don’t have it already.