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
g time-proven operating procedures into your way of working.
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.
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
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.
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.
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
Martin Brinkman Paul
Swennenhuis Tachyon 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.
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 www.native-instruments.com)
or on their own web sites. Here are links to several excellent sources
of new material:
www.martin-brinkmann.de/ens.html
www.midiworld.org/AuReality/index.html
www.din.or.jp/~tachyon/reaktor/reak_index_eng.htm
www.waveinhead.de/index2e.htm
www.swiftkick.com/reaktor.html
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 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
dule with material such as speech clips.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.