Power-user Tips: Part 2

part 1

Len Sasso

In the first part of this series, I emphasised the operational side of Reaktor. This time, we'll take a closer look at building and modifying Reaktor Ensembles. In addition to Native Instruments' extensive user library, there is a number of sources for Reaktor Ensembles on the web (see 'Reaktor On The Web' box). While that may relieve you of the necessity of ever building an Ensemble from scratch, you will inevitably want to make some structural modifications, so this month I'll be helping to make this process as painless as possible.

Instrumental Decisions

If you've nosed around in Reaktor at all, you're undoubtedly aware that there are four levels of organisation: Ensembles, Instruments, Macros, and Modules. There are no decisions to be made regarding Ensembles (there is always one and only one open at a time) and Modules, which are Reaktor's basic building blocks and cannot be modified. Instruments and Macros, on the other hand, can get confusing. If you find that it all gets a bit muddled, you might consider incorporating some of the followin
  Less Is More: Streamlining Your Ensembles  
  With a box of tools as versatile as Reaktor, it's hard to resist packing every feature you could imagine into every Ensemble you build. A quick tour of the Ensembles on the Reaktor CD-ROM confirms this. There's nothing wrong with that approach, and a fully featured (and well-annotated) Ensemble will present you with many creative paths to new music. But, when you're after a specific result and you're building it yourself, less is definitely more. For example, if you need a screaming lead from your collection of favourite Casio WAV files, you can wire up a simple sampler with basic filtering and enveloping in a matter of minutes. Starting there, and only adding things that move you directly toward the sound you're after, will produce the fastest results.  
g time-proven operating procedures into your way of working.

It's a good idea to organise an Ensemble into one or more Instruments, and you'll find most Ensembles have been set up in that way. Instruments have their own presets (called Snapshots) and polyphony settings. When you're building a single-purpose Ensemble -- a synth or sampler, for example -- you should generally opt for the simplicity of a single Instrument. That avoids the issues of Snapshot dependency, covered last month. For Ensembles with differentiated functions -- a synth with a sequencer and effects, for example -- you may want to use separate Instruments for the individual components. For one thing, that allows you separate Snapshots for separate functions (so that you can use the same sequence with different synth Snapshots, say). Having separate Instruments with different p

  Voices, Channels, & Sounds  
  Managing polyphonic voices, MIDI Channels, and multitimbral functionality can at first be confusing in Reaktor, because everything takes place within a single Ensemble. The key is to remember that each is a property of the individual Instrument. As long as you keep your Instruments on the Ensemble level, you can use each Instrument's Properties window to set its MIDI Channel and number of voices. For Instruments within Instruments, the parent Instrument's settings are what count. To create multitimbral Ensembles, use separate Instruments on different MIDI Channels.

Depending on your audio card and Reaktor audio settings, you may have separate outputs available for several Instruments. If not, then you'll need to build or import a mixer to mix everything down to a single, stereo output. You'll find a wide variety of mixer Macros on the Reaktor CD-ROM.

olyphonies can also save CPU cycles. For example, you might create a polyphonic synth with monophonic effects or mix a polyphonic pad synth with mono bass and lead synths.

The decision to use Macros is generally simpler -- you'll almost always want to turn a self-contained process into a Macro. It saves space, makes the structure easier to understand, and allows you to replicate the process quickly, especially in other Ensembles. This applies not only within Instruments, but also within Macros, because you can freely nest Macros.

You can use Instruments inside other Instruments and Macros, but that is not usually a good idea, because it creates Snapshot dependencies and aborts polyphony calculations. Within an Instrument, separate calculations are maintained for each voice, but all signals entering or leaving an Instrument must be 'voice combined' into a single audio signal. For example, if you want a polyphonic synth with a velocity-dependent delay line, the delay circuitry should not be contained in a separate Instrument. (That limitation does not apply to Macros.)

Those considerations aside, Instruments within
  Reaktor On The Web  
  Over the six years of its existence, Reaktor has developed a large community of dedicated and talented users. Many of them freely share their creations either through Native Instruments' user library (in the Support downloads area provided at or on their own web sites. Here are links to several excellent sources of new material:

Martin Brinkman

Paul Swennenhuis



Wave In Head

Len Sasso

Instruments can be useful for Panel organisation. Since each Instrument has its own Panel layout, you can make infrequently used controls invisible in the parent Instrument's Panel, but accessible in the Instrument's own Panel, which the user can choose to display as needed.

Turning The Tables

One of the more interesting new oscillators in Reaktor 3 is the Audio Table, which opens the door to wavetable synthesis. The Audio Table Module is simply a table of numbers that can be scanned at audio frequencies. The standard approach is to think of each row of the table as samples of a waveform. Then the scanning frequency (the number of times per second the row is scanned) determines the pitch of the sound and the table's numeric values determine the timbre.

The Audio Table Module has inputs for the read (RX & RY) and write (WX & WY) positions in two dimensions, X and Y. Think of Y as selecting the waveform and X as selecting the sample number within the waveform. For playback, you'd normally use a Panel control to set RY (to select the waveform), and use a ramp-up oscillator wired to RX to play the waveform (to scan row X). The ramp oscillator frequency then controls pitch. It's a small step from there to vector synthesis, which simply amounts to varying RY during playback either slowly, using an LFO or envelope, or at audio rates using an oscillator.

You can draw your own waveforms graphically with the mouse in the Audio Table Mo
Reaktor's new Scanner Module can be
used for a variety of effects including
creating sampler velocity zones. Here incoming
MIDI Velocity is used to choose the Scanner
position, which in turn selects the crossfade
position between three samplers containing
different sample maps.
dule's display, but you can also scan in waveforms from other sources such as oscillators and samplers. To do that, simply use the WX and WY inputs instead of RX and RY. The trick here is to ensure that the frequency of the source matches the scanning rate, so that you get a complete wave at each pass. You also need to wire the source to the Audio Table's In input and to wire a button to its W input to toggle writing on and off. The sets of waveforms that come on the Reaktor CD-ROM make good sources of raw material.

Reaktor's Beat Loop sampler Module has been around for a while, but its unique features are often overlooked. As its name implies, it is intended to be used with drum loops and, what's more, it's looking for a loop with a number of beats equal to a power of 2 (ie. 2, 4, 8, 16, 32, and so on). Under those conditions, it automatically slices the loop into beats by assuming that the tempo is between 87 and 174, automatically calculating the number of beats that will fit within the loop's length -- there can only be one solution.

By slicing the sample into sections, the Beat Loop Module allows you to control the pitch of each section independent of the rate at which the sections are triggered, so you can think of it as a kind of real-time Recycle process. Beat Loop has a clock input, but if no source is connected there, it will sync to Reaktor's master clock. You can also get very interesting effects from the Beat Loop Mo
One set of delay-time controls is used to set
eight equally-spaced tap delay times for the
Multitap Delay Module (not shown).
Each successive tap time is the result of
adding the Coarse and Fine settings to the
previous tap time.
dule with material such as speech clips.

Applications For The Scanner Module

Reaktor's Scanner Module stands out as one of the more useful new effects in Reaktor 3. The Scanner has eight inputs for audio signals and a Pos input to select any position between any pair of adjacent audio inputs. When the position value is an integer, only one input is heard, and when the value is between two integers, a mix of the two adjacent inputs is heard. (Note that the standard Crossfade Module can be used for fading between just two sources.)

One use for the Scanner Module is to create velocity zones. The idea is to use a separate Reaktor sampler Module (they only offer key zones) for each velocity zone. Wire the sampler Modules into separate Scanner Module inputs and use MIDI Velocity to set the Scanner Module position.

MIDI Velocity is accessed via Reaktor's On Vel Module, which has Range settings for scaling the MIDI Velocity. By default the range is zero to one, but for this application, you should set the range maximum to th
Using an LFO or audio-rate
oscillator to control the position
of the Scanner Module can
produce unusual effects in
conjunction with the Multitap
Delay. The Mod Osc is
switchable between LFO
and audio rates and the
horizontal slider adds an
offset to Scanner position.
e highest Scanner input used. For example, with three velocity zones using inputs In0, In1, and In2, set the range maximum to two. This approach to velocity zoning is not perfect, because the velocity zones are global rather than separate for each key zone, but it is better than nothing. If you use velocity to directly control the Scanner position, the effect is velocity crossfading. If you want velocity switching, pass the velocity through a Quantiser Module first.

The Scanner is a natural match for another new Reaktor Module, the Multitap Delay. That is an eight-tap delay line with independent delay times for each tap. Wiring the eight tap outputs into the Scanner's eight inputs allows you to crossfade between taps. Although you can have separate controls for each tap delay, in this context, spreading the taps evenly is simpler and still produces plenty of action. To do that, create a control (or a coarse/fine pair of controls) for the first tap, then for each new delay input, add the control value to the previous tap's delay.

There are several interesting alternatives for controlling the Scanner position. The most straightforward is manual control via a slider or knob. You can produce more unusual effects by using an LFO or envelope generator. If you combine either of those with a manual control, the manual control will act as an offset, in which case you'll want to turn the Scanner Module's Wrap property on so that scanning wraps from the last to first input. It's also a good idea to add a modulation amount control to scale the position input.

Still more unusual effects result from audio-rate control of the Scanner position. That introduces new harmonic and inharmonic side-bands similar to those resulting from other forms of audio-rate modulation such as amplitude, frequency, and phase modulation. As with other forms of audio-rate modulation, the simpler the modulating source, the more intelligible the results. A sine-wave oscillator is a good place to start. As for an audio source (ie. input to the Multitap Delay Module) any sampled or synthesized source works well.

  Wily Wiring: Hints For Cabling In Reaktor  
  Here are some wiring tricks which are as handy as they are poorly documented. Firstly, when you need a Panel element for an unfamiliar Module input, right-click (or hold Ctrl while you click on the Mac) on the input and select Create Control from the menu that appears. That will create a knob or button with what Reaktor considers the appropriate value range. You can change the control's appearance and range in its Properties window if need be.

When you want to be able to control a Module parameter from several different sources (for example, a gate via an on-screen button or MIDI), simply wire both sources into the Module's control input. The most recent control signal will take precedence. But be aware that this does not apply to audio inputs -- you can't connect multiple wires to audio inputs, even if the wires carry control signals.

There are two ways to mute an audio signal: multiply it by zero (using the output of a button) or use an Audio Switch Module to block the signal. The latter method has the advantage and disadvantage of forcing Reaktor to 'recalculate' the Ensemble, taking everything that precedes the switch out of action. That saves CPU, but can cause audible glitches. Let the context be your guide...

Since every Module has to be on a path to Reaktor's final audio output to be active, you can use a similar trick to activate Modules that are not an intended part of the audio signal. Wire the Module into one input of a Mult 2 Module and mix the Mult 2 output into the audio signal. Since the other Mult 2 input is zero by default, the audio signal will not be affected.

When you want to use the output of a variable control signal to simply toggle some process on and off, pass the signal through a Logic OR module. Then all values above zero will be converted to 1 and all values zero or below will be converted to zero. Also take some time to familiarise yourself with the other Logic modules -- they're useful for similar tricks. For example, if you want a process toggled when two values turn positive, use a Logic AND module.


Grain Delay Effects

Reaktor's Grain Delay Module is another of my favourite effects. It chops a mono audio signal into grains and sends the grains, delayed and pitch-shifted, to stereo outputs. The grain size, delay, pitch-shift, output amplitude, and pan position can all be varied in real time. Furthermore, all the control inputs accept audio-rate signals. Unique effects can be produced with almost any type of audio input from pure tones to noise to speech to drum loops.

For rhythmic material, adjusting the grain size and delay in beat-related increments is most effective. Modules which provide low-frequency contours, such as envelope generators, step sequencers, and hand-drawn event tables, also make good pitch and delay controls.

Keep in mind when choosing the Grain Delay Module that its main advantage is in processing audio in real time, such as external audio input or the output of another Instrument. For granular processing of samples, consider the Grain Cloud, Sample Resynth, and Sample Pitch Former Modules instead.

  Choosing A Sampler Module  
  Reaktor comes with eight sampler modules, and it's not always obvious which one is right for the job. For straight sample playback, the nominees are: Sampler, Sampler FM, and Sampler Loop. The first two are the simplest, and they allow you to trigger samples from a sample map. The sample is selected by pitch (relative to its key zone) and either plays once through or loops continuously, depending on the sampler's Loop On/Off setting. Both samplers provide amplitude control, and Sampler FM also offers a linear-frequency input for modulation -- note that this input does not affect sample selection from the map.

Sampler Loop gives you separate control of looping via start, loop start, and loop length inputs. It also allows you to select samples independently of pitch, and provides for FM. Sampler Loop is gated rather than triggered, which means that the sample loops only for as long as the gate signal is present. That can be overridden by turning its Loop In Release property on. Also, it is the only choice for basic stereo sample playback as Sampler and Sampler FM are both mono.

The Sample Resynth, Beat Loop, and Grain Cloud Modules all work by slicing the sample into segments and handling the segments separately. In addition, the Sample Pitch Former creates a similar effect without actually slicing the sample up. Sampler Resynth is designed for independent control of pitch and time. Sample Pitch Former is best for formant shifting and is good for sets of single waveforms. As discussed in the main text, Beat Loop is specially designed for resyncing beat loops. Reaktor 3's new Grain Cloud Module gives you complete control of all granular synthesis parameters.

Finally, there's the 'odd man out', the Sample Lookup Module. It does not hold sample maps (as all the others do) and it is not really a sample player. You use it by loading in a single sample and manually controlling the position (in milliseconds) within the sample. Its output is the sample value at the chosen position. Before you dismiss that as useless, consider that you can use any audio signal for the position input (eg. an oscillator or audio table) to generate a playback path through the sample -- forward, backward, sinusoidal, or whatever.


A Final Word

In this two-part series I've covered various operational and structural features of Reaktor in the hope of indicating some roads you may not yet have travelled. With a product as vast as Reaktor, it is, of course, only possible to cover a small part of the landscape, and this is a program that really repays time spent experimenting. But remember that, even though it's easy to lose yourself amongst the Modules for hours on end, Reaktor is actually meant to be a tool for making music, and the music you produce with it is the most important thing.

part 1