Tag Archives: macro

The Roux Sequencer Macro

Back in the day when I was blogging at the now-defunct kore.noisepages.com, I did a series on the inner structure of a basic sequencer macro, one that could be easily adapted for many uses. Those posts have vanished into the bit-ether, so I’m rebooting the topic with a revised macro and an ensemble that shows how to use it. And here it is! download link

All controls are tool tipped – there’s sequence length and clock speed controls, an IC send menu and value range controls – see below for details.

Last time around, I posted the macro and dived right into the inner structure, explaining it bit by bit from the inside out. I think this was useful but lacked a degree of… instant gratification. So this time around I’m going to start with a simple demo ensemble that shows how you can use it right off the bat.

This demo instrument is a rhythmic FM noisemaker that has three sequencer macros mapped to the volume, carrier pitch and modulation amount. The modulation oscillator pitch isn’t sequenced – it’s fun to map it to a MIDI or OSC controller and manipulate in real-time. You can get some fine Clicks and Cuts style sounds and sequences out of it. I’ve run it through the standard factory library Dual Sync Delay to wet the sound a bit. Here it is with a little ParamDrum beat behind it:

The Roux macro can be slapped into any Reaktor instrument, and doesn’t even require wiring stuff together. Using the IC send module, the signal can be routed to any target in an ensemble – such as knobs and faders in an existing instrument. It’s designed, therefore, for quick and dirty hot-wiring. Plop one into Carbon 2, for example, and add some sequencing to oscillator pitches and cutoff values.

One nice thing about the IC send module is that it displays a menu right on the front panel of the instrument that lets you direct the signal without mucking around in module properties. Another great thing is that it adapts the signal range to the target you’re aiming at – doesn’t matter whether the target has values from -12 to +12 or 0 to 127. As an added tweak, I’ve included min and max controls that will restrict the range, in case you want a target control’s travel limited to, say, the middle range – just set min to 0.4 and max to 0.6.

Now, why is this macro called the Roux? A roux is the basis for sauces in french cooking – it’s little more than flour fried in fat, and you can make gravies, cheese sauces, any kind of sauce where you want a little body and thickness. And just like the sauce base, this sequencer macro can be used in a lot of different ways, as the basis for different instrument designs.

In upcoming posts I’ll talk about other ways to use the macro, like triggering envelopes, build some new instruments with it, and we’ll take a peek under the hood at what makes it tick. Bon appetit!

I was raised to be a saucier. A great saucier.

Sending Random Notes from Reaktor part 2: Turning Off Notes

Last time we looked at sending random notes from Reaktor, everything was hunky dory except the ensemble didn’t send note-off signals to its destination.

Note-offs are required because otherwise you end up with stuck and hanging notes. If you’re sending to a synth patch you could inadvertently create drones. If you’re sending to a drum synth or other percussion instrument, you might not hear a drone when the note fades but it might still be active, consuming CPU. This has happened to me when I’ve tried to trigger Drumspillage from Reaktor.

The fix is very simple and uses part of the same structure we used to send MIDI out from Krypt – a note-off macro.

There’s also a NoteLen control, unlike the earlier version in Krypt. This control determines the length of the triggered note, so it doesn’t require a new note to turn off the previous one.

Now let’s have a look inside the NoteOff macro:

It’s a bit complex, but the gist of it is – the Value modules on the right, just before the merge modules and P and G terminals, hold the value of the previous note and a zero. The Order module is wired up so that when a new note is received, the macro first sends out the pitch of the previous note with a zero velocity. That’s one way to send a note-off. The macro then sends out the new note with whatever velocity came in through the G terminal.

The Hold module holds the note on for however many milliseconds you’ve set as the length of the note, then drops the value to zero, which again sends out a note-off.

You can download the updated ensemble here and experiment with it yourself.

Update: here is a version of the note off macro that is more suitable for popping into other sequencer ensembles, which often have trouble with stuck notes when sending to external synths and hardware.

14 Bit MIDI Receive Macro for Reaktor – Free Download

Someone asked about 14 bit MIDI on Twitter, then implemented their own solution while I was snoozing – different time zone? Red Bull? Who knows – so I thought I’d upload my own version for comparison.

It receives two MIDI controllers, one of which represents the most significant bit, the other of which represents the least significant bit. It uses a bit shift module in Core, which is always fun. Whee! The upshot is, you get extremely high resolution for controlling things that you don’t want to be overly steppy, like filter cutoff and sample playback position.

I’m not using it any more because Reaktor now has OSC in the plugin version, so I use OSC tools like Konkreet Performer, TouchOSC and Lemur for my hi-res controller needs. But for those of you who have hardware that supports 14 bit MIDI, this is going to be useful, as Reaktor has no native 14 bit controller support.

All you have to do is decide which controllers you’re using, set them in the controller properties, then use the NRML output for a normalized 0 to 1 control range.

Here’s the macro. Happy controlling!

Update: Thanks to the ever sharp eyed and vigilant lazyfish, I’ve been informed of a bug in the macro. It will work but it looks weird because there were two modules on top of each other in the core cell. Here they are separated:

You can either multiply the incoming MSB by 128 or bit-shift it by 7 bits. I had tried both, got the same basic results, and left both modules in the core cell but with only one connected of course.  Sorry for the confusion! I’ve uploaded a corrected macro.

Update 2: lazyfish asked the important question, why am I converting twice? I think I was programming Lemur-ese in Reaktor based on input from a template I was using on iPad at the time. Here is another iteration of the macro:

In this one, the value range of the controllers can be left at 0 to 1 which is the default in Reaktor, and the values, math and scaling happen in the core cell where everything’s explicit – I like to avoid having magic numbers hidden in properties whenever possible.

Source of Uncertainty

It’s funny how ideas travel and transform. David Lilja shared a Nord Modular G2 patch here which was based on a Buchla module, then asked me what it’d look like in Reaktor. Having no real experience with either the Buchla or the Nord – ok, I did fiddle with the software Nord demo at one point – I looked at his screen capture and translated it into Reaktor structure. It’s probably not a close emulation of either, but it’s useful and works, and I’ll take practical over authentic any day. šŸ˜‰

Here’s what the innards look like:

As you can see, it uses an audio rate slew limiter towards the end, so I’ve added an audio to event module to give it both event and audio outputs. It produces some interesting semi random events – neither completely random nor predictable, which I think is what we’re aiming for here. Could be fun to modulate the delay time of a tape delay emulation with it, or something as humble as filter frequency.

Here is a link to the download.

If you do something neat with it, let me know!

A Working Clock

Recently I’ve been working on some new sequenced ensembles and found to my horror that the clock macro I’d been relying on no longer worked properly. Bit rot? Slow change in behavior from version to version? I’m not sure. The problem was the old zero reset bug – old hands at Reaktor are nodding sagely right now – where the first beat or note would not fire off after resetting the song position to zero.

So I went through some frantic experiments and experienced a genuine Dark Night of the Soul until I put something together based on my old clock macros, hints from forums, and ideas from the Reaktor user library.

Unfortunately in the process I upgraded to the current version of Reaktor, 5.7.1, because there seemed to be some subtle differences in behavior between 5.6.2 and 5.7.1 and there’s a limit to how much time and effort I can dedicate to old versions.

Here’s what the new, fixed, stable, working macro looks like on the inside:

As you can see it’s fairly simple. If you’re still sticking with 5.6.2 you should be able to throw one together from this schematic in a few minutes.

Special thanks to Owen Vallis who came up with the idea of using the mod output of the Modulo module to gate the Div output. So much better than using a silly old step filter. Owen posted his fix in this thread on the Reaktor forums so go thank him there.

I’ve stuck the macro in this demo ensemble:

Click here to download the new clock macro.

Grab the macro labeled “SeqDriver 571” and use it in your own creations. Of course, nobody’s perfect and no fix lasts forever so let me know if you find a bug, a sequencer where it doesn’t work or works erratically, or if you need help wiring it into your own creations.