Herw M1 Modular Synth: On-Screen Patch Cords in Reaktor

Here’s a case study for you - the M1 modular synth, built in Reaktor which is arguably a modular synth in itself. So why build a modular synth in a modular synth? Patch cables!

Yes, using Reaktor’s Multi Display, along with a lot of frighteningly clever programming, Herwig Krass has built what looks like a rack of hardware synth modules that you program by clicking connection  points between the modules right on the front panel of the GUI. Granted, they’re not physically modeled cables that flex and sway in a lifelike manner, but they do give you an immediate visual indication of how a patch is structured.

So is this a gimmicky ensemble whose only strong point is the cabled GUI? Not at all. Listen to some of the snapshots, especially the random snaps in bank 3 and the pseudo random snaps in bank 4 (did I mention it comes with 6 banks of snaps?). These are sounds I usually associate with hardware modular systems (cue sound of purists clucking their tongues that nothing can ever replace a hardware modular).

This is not an ensemble for old or underpowered systems. It takes a few extra seconds to load and eats a fair bit of CPU. Two near-effortless things you can do to reduce CPU consumption are to reduce the voice count from the default of 8, and turn off the nice sounding but processor hungry internal reverb module. Reducing the voice count, incidentally, also increases the volume of each voice.

An instrument this complex needs documentation and Herwig has provided it, in English and German PDF flavors. It’s not only a guide to this particular instrument, but an introduction to modular synthesis itself. Additionally, the first bank of snaps is devoted to simpler tutorial snapshots designed to illustrate a particular feature or concept. In the epilogue to the manual, Herwig says:

Dear Modular-infected user, I know that reading the tutorial is one of the most annoying duties of a software user. Some of what I’ve explained in these basic tutorials, might also seem trivial to some hardware users. But my aim was to make modular synthesis accessible for “green” users as well. The modular has reached a high level of complexity through the last years and cannot be grasped by just a quick look at the surface.

There’s certainly a lot going on beneath the surface of this ensemble, and I’ll be digging into it for some time to come.

Roux Step Sequencer’s Guts Explained: Reaktor’s Snap Array Module

Let’s continue learning about the Roux sequencer macro. Last time we looked at the Event Table module in Reaktor and how a clock signal can read values from it. Since the Event Table has no memory associated with snapshots, builders typically use a Snap Value Array to store and recall sequences with snapshots.

Roux Step Sequencer’s Guts Explained: Reaktor’s Event Table Module

Sequencers are, by definition, all about controlling sets of events. Having unlocked the mysteries of time — the clock and timing data you need to keep your sequencer in sync — Peter Dines now tackles how a table can organize a sequence of events or steps. Take it away, Chef! -PK

Here’s the next puzzle piece in our series dissecting the guts of the Roux step sequencer macro - the event table. As you might guess from the name, the event table receives and sends event rather than audio data.

By default, the event table holds values between zero and one, and I know I bang on about this lot, but that’s a super convenient range because it’s so easy to scale. Ed.: It’s what’s called a “normalized” range for this reason - and easy to scale, indeed. Want 0 to 127, for instance? Just multiply by 127.) -PK We dealt with scaling the output in the last post on the Roux sequencer.

Boombox: Reaktor Drum Machine Made with Roux Sequencer

Reaktor user Joshua Kern has built and uploaded the first third-party instrument made with the Roux sequencer macro we’re discussing and dissecting here at Noisepages. It’s an ambitious drum machine project and eats a fair bit of CPU but he’s working on that. As with most programming, the thing to do is get something working, then worry about efficiency later - as the saying goes, premature optimization is the root of all evil.

As well as my Roux macro, Joshua has leveraged work by Rachmiel, Clist, and RC3, and had help from Sowari (Phil Durrant). As such, I think it’s an excellent example of the kind of code reuse and sense of community that makes the Reaktor user library great.

When I assigned “homework” for readers I don’t know someone would create something this elaborate! It makes me wonder what else is lurking out there. If you’ve cooked up something interesting, let us know here or leave a comment below.

Reaktor Inspiration: Visual and Audiovisual Art

From the how not to use Reaktor, some lovely finds:

I love the creative abuse of tools, and the warping of software for expressive ends. sonictwist on the Reaktor forum has posted a wild gallery of images made entirely with Reaktor. Reaktor, of course, isn’t remotely intended for this kind of generative visuals, but the results are gorgeous. The gallery of Reaktor interfaces we got going was simply to be focused on UIs – in this case, apparently partially inspired by that effort, the results are purely aesthetic. sonictwist explains:

After some years playing with multi/poly displays, I decided that it might be interesting to make a gallery with visual stuff made ONLY with R5. Ofcourse its very far from Jitter or vvvv, but we all understand that r5 wasnt designed for such purposes at all, and its even kinda fun when you realise it and try to make some decent pictures.

So, just tell what you think about this idea, post your own stuff etc… Please note that the idea is not a duplicate of Peter Kirn’s gallery, so try to post only artworks made with md/pd and maybe xy modules…

I attached some generative artworks made with multidisplay based on a pseudorandom sets of rules to showcase what I’m talking about.

Reaktor based Visual Art [NI User Forums > REAKTOR]

While these are simply for visual effect, I could imagine them being used in a strange musical interface, too. I’ll be sure to post when sonictwist uploads an ensemble.

Peter Dines adds, No one should be surprised that he’s come up with that given his skill at creating polished GUI interfaces like this:

I also enjoy the glitched-out image at right. It’s actually not intentional – it’s occurs when you import 16-color BMP files into Reaktor – but since I’m always looking for sources for digitally-distorted images, I may even use this trick. (Hmmm… cheap way of making an interface for your glitch effects Ensemble, perhaps?)

Back to using Reaktor as a sound tool, as intended, Suryummy assembled this fantastic, sci-fi cooking motion graphic with a brilliant soundtrack. Suryummy did both visuals and sound. No, that’s not Reaktor generating the visuals; that would be Maya and Particular, lest you thought he got his hands on a very different Reaktor 6. But the wonderful soundscape comes courtesy of Reaktor and Absynth, generating the distinctive timbres you hear in the track. It’s really inspiring to me to see people working across sonic and visual media in this way – and may suggest that your next Reaktor/Absynth track really needs accompanying visuals for the full effect. As seen on our sister site, Create Digital Motion.


Interstellar Sugar - Suryummy from Suryummy on Vimeo.

Roux Step Sequencer’s Guts Explained: Reaktor’s X+ Module

I decided the best way to tackle teaching the guts of the Roux step sequencer is to blog one piece at a time, and work backwards from the business end where the values emerge.

The values that this macro produces are between 0 and 1 by default, which is a convenient range for all sorts of applications, but sometimes you need a different range of values - for example, from 0 to 127 for MIDI note pitches. I’ve included an X+ module just before the output to make it easy to scale values:

The values emerging from the event table are multiplied by one and have zero added to them, which means they pass through unmodified. Here’s a video demonstration of what happens when you multiply and add other numbers:


Multiply / Add module in Reaktor from Create Digital Media on Vimeo.

If you’ve ever worked with electronics, think of the way the X+ is used here as being like those little mini trimpots on a circuit board - handy for adjustments but not something you mess with every day once you’ve got a contraption put together the way you like.

Basic Sequencer for Anything in Reaktor: The Roux, Part 1

In French cooking, there’s a sauce base called a roux (pronounced “roo”) that is the foundation of bechamel and other sauces. This is a sequencer macro that is the equivalent for programming sequenced instruments in Reaktor - you can take it in any direction from here. In its most basic form it can send velocity information to trigger percussion, or modulate instrument parameters like cutoff and resonance. With a few simple changes it becomes a pitch sequencer, suitable for use in something like the Frankenloop device.

rouxscreen.gif

Reaktor/Kore Journal: Sequencing Grains, and Why Macro Recycling is Your Friend

Looking at and changing the guts of an ensemble is great — but sometimes you actually want the mechanics to be hidden, so you can easily reuse important sets of functions. Photo: Grant Hutchinson.

SeqDriver macro in Reaktor I’ve really been enjoying playing with patches based on Peter Dines’ Grain Delay tutorial. If you haven’t yet checked out that tutorial, it’s a terrific way to get started with a built-in Reaktor module that’s essential to all kinds of effects. The ensemble itself doesn’t get too fancy, meaning it’s friendlier to beginners than some of the polished-but-complex ensembles you find in the Reaktor examples and User Library. And that’s part of the point — the way most people are likely to use Reaktor in their own ensembles is to start small and basic, not necessarily with elaborate custom skins and complex features.

Peter’s example works really nicely for navigating an ambient sound. But I started thinking about using this for rhythmic ideas, so I could build a custom grain delay effect set up for easy live performance in Kore. To get beat-synced, sequenced effects, you need to work with clock information. The clock will act as a kind of metronome for your beat-based effects. That means turning to a previous Peter Dines tutorial:

Revving up Reaktor: A Refresher on Clocks and Events

We had a refreshingly frank comment from reader armachian:

“after reading I now realise that Reaktor is not for me!! Compared to something like the Clavia G2 this seems like a lot of steps (and hidden tricks) for a simple sequencer/clock demo. Life is too short!”

Actually, that’s right – life is too short! But I think armachian misunderstood. The whole point of having a modular system is you don’t have to repeat the same steps over and over again. You can simply re-use basic macros, like the SeqDriver macro Peter created, shown top right. You don’t have to even know how it works (though it couldn’t hurt); you can instead focus on what you want to do. In fact, even if you’re using macros you’ve created yourself, this can keep you focused on your musical aims rather than getting hung up on the mechanics underneath.

Show Us Your Reaktor Ensembles, Elegant and Hacked Alike

To me, it’s incredibly liberating to be able to perform live with something you’ve built – even if it’s crudely hacked from other parts. You can build some of your musical and compositional logic right into the ensemble. Likewise, it’s great to see the patches other people have built: even looking at their screen tells you something about the way they think and who they are.

You can see lots of incredible Reaktor ensembles on the User Library on Native Instruments’ site, and we strongly encourage you to upload some of your patching work there. But, of course, that’s just a small selection of the Reaktor patching going on out there. Some ensembles are too personal, or too archaic, or too messy for people to upload.

We want to see it all.

Yeah, you’re a beginner and you have knobs all over the place. Or you’ve got something so beautiful, that you want to show off your gorgeous UI to everyone.

While we’re collecting Live sets over on Create Digital Music, I might as well open the floodgates for the Reaktor community, too. (I know a lot of you use Reaktor with Live, so that makes this make even more sense.)

To share your ensembles – and really, don’t be shy, I enjoy the occasional messy ensemble as a musical artifact – send them to us one of two ways:

1. Email a screen grab to pictures (at) createdigitalmusic.com marked with subject header “Reaktor” OR

2. Add your image to our Reaktor ensembles Flickr group, at http://www.flickr.com/groups/reaktor/

If you do have your ensemble in the User Library, include a link. And yes, even commercial ensembles are welcome – I’d like to see a picture of the whole community. Note that we reserve the right to reproduce these images – but I’ve got some ideas for some visually interesting ways to do that, so I don’t think you’ll regret it. (I suggest using a Creative Commons license on Flickr if you know how.)

If you have hardware you use with your ensemble (especially if it’s custom-built hardware of some kind), include that, too.

Can’t wait to see these!

Updated: Most of the results are now on the Reaktor forum; I’ll be putting together a round-up soon!

How to Control Reaktor Patch Parameters with Kore

If you’ve played with creating Reaktor patches, you know the scenario: you’ve built your insane beat-mangling instrument/effect ensemble in Reaktor, but now you’d like a way to play it without fumbling around on your trackpad. Dropping Reaktor patches in Kore (in plug-in or standalone mode) gives you a nice way to do this:

  • You can consolidate parameters you want to control on user control pages, so you only have to think of eight things at a time
  • You can use Kore’s sound morphing capabilities
  • You get instant hands-on control via the Kore controller
  • The Kore controller will even display proper parameter names, as you specify them in Reaktor

The basic steps, as a review:

assignment