Leviathan
Leviathan
Contents
Welcome 2 Oscillators 20
Launching the Ensemble ............................. 2 Oscillator Waveforms................................ 20
Feature Summary........................................ 2 Global Pitch .............................................. 21
Oscillator Controls .................................... 22
Architecture Overview 3
Vector Mixers 23
Audio Path ................................................... 3
Pitch and Gate Path .................................... 4 Enabling Oscillators .................................. 23
Oscillator Overdrive .................................. 23
Sequencers 5
Dual Filter 24
Shared Table Data ...................................... 6
Clock............................................................ 7 Filter 1....................................................... 24
Sequencer Controls..................................... 8 Feed and Morph ....................................... 25
Pattern Designer.......................................... 8 Filter 2....................................................... 25
Phrase Designer........................................ 10
Tutorial One:
Global Controls 12 The Logic Of Event Logic 28
Power ........................................................ 12 Optimizing Software for Hardware ............ 28
Key Scale .................................................. 12 The Simulation Analogy............................ 29
Scope ........................................................ 12 Getting to the Modules.............................. 32
Modulation 13 Index 33
LFOS ......................................................... 13
Envelopes.................................................. 14
Modulation Routing.................................... 15
Multipliers .................................................. 19
Page 1
Welcome
Page 2
Architecture Overview
Audio Path
Contour Pitch Horiz Vert Freq Res
FM Sync Echo
Pitch
Reverb
Oscillator 4
Out
Page 3
Pitch and Gate Path
Screen Arpeggiator Arpeggiator Global Pitch
Keyboard Transpose
Sequencer 1 Scale Map
MIDI Glide
Sequencer 2
Pitch Track
Sequencer 3 Modulate
Page 4
Sequencers
Pitch Gate Cntrller
Sequencer C
Batch Copy
and Sequencer B
Background
Sequencer A Voice
Sync
Merge
Local Bank of 8 Patterns
Pattern
6 Banks MIDI
0f 8 Pitch
Patterns Velocity
Duration 8 patterns On-Screen Keyboard
each with 16 steps
Phrase Designer
Clock
Pattern Transpose
6 Select
Phrases Note Duration
Pattern
Repeat Tempo
Up to 8 phrases in a sequence
The three sequencers (A, B, and C) are identical in func- may repeat up to eight times. Each phrase can also add
tionality. Although the structure seems complicated at first, its own transposition, note duration, and tempo factors.
it is very easy to use once you understand it. • The phrase settings for each sequencer comprise its
Fundamentally, a sequence is an ordered set if phrases, sequence. The Phrase Designers let you view and
built upon a bank of patterns, as follows: modify the current pattern sequence in each sequencer.
• Each pattern contains 16 steps. Each step has its own • The phrase designer lets you set up to eight phrases in
pitch, velocity, and duration. The Pattern Designers any sequence. Each sequencer can store the phrase set-
lets you view and modify the steps of the currently tings its own local sequence, or apply changes to one of
selected pattern. 6 shared sequences.
• Patterns are contained in banks. Each bank contains 8 The ensemble keeps shared banks and sequences in a single
patterns. Each sequencer can use its own local bank, or shared table. If two sequencers use the same shared bank
one of the 6 shared banks. and/or shared sequence, then changing the table data in one
sequencer causes exactly the same change to appear auto-
• Each sequencer also has up to eight phrases. Each
matically in the other sequencer. This feature is referred to
phrase is based on one pattern from the sequencer’s
as shared table data, as the next sections describe in more
currently selected bank. The pattern in any one phrase
detail.
Page 5
Shared Table Data can edit the other one, then when you got it just right, sim-
ply change the bank of the playing sequencer to the one you
Each sequencer has a local pattern bank (Bank 0) and local just edited. Then the edited bank starts playing on the next
sequence (Sequence 0). Alternatively, any sequencer can step. Changing banks or sequences does not interrupt the
use one of the 6 shared pattern banks (1~6) and/or one of step counters; the next step plays as if there was no change.
the 6 shared sequences (1~6).
To use shared data, simply set a sequencer’s bank and/or Batch Load and Save
sequence to any slot 1 through 6. When two sequencers use
the same slot, then changing the tables in one sequencer
automatically changes the other. Also, the ensemble stores
all shared banks and sequences in one giant table. This
means that you can load and save one single table file that
contains all shared patterns and sequences for all three
sequencers!
To use local data, simply set the sequencers to use Bank 0
and Sequence 0. These slots are not shared or stored in a
unified table, but are still stored in the ensemble. These Shared table data is very useful if you like a set of
local data slots are unique in each of the three sequencers, sequences, and you want to save the sequence data, then
and edits to them are not automatically updated in the other load it at another time. Also you can transfer partial data
sequencers (you can still copy local slots to other sequenc- sets between files.
ers manually). To load or save the shared table data, simply right-click on
the Shared Memory table thumbnail, then select the appro-
Using Shared Data priate item from the File context menu.
While the ensemble is active, it continuously scans the pat- When saving the shared table, the resulting file contains all
tern designers and phrase designers in the background, pitch, velocity, and note duration table data for all the pat-
watching for any changes. Changes to shared data are terns in all shared banks. Also, it contains all the shared
immediately written to the shared data table, and also, any table data for all shared sequences.
other sequencers using the same shared data are updated When loading a data file, any shared data currently loaded
with the change. The best way to understand this is to set in the sequencers will be preserved. All other previous
all the sequencers to the same pattern bank and phrase shared data will be overwritten with the new data from the
sequence. Then if you edit any table, you’ll see the same file. This lets you transfer data sets between files, as fol-
change occur automatically in the same table for all the lows.
other sequencers.
Transferring Data between Saved Files. First set all
There’s a number of good performance uses for shared Bank and Seq knobs to 0, and load one of the files. Now set
data: the Bank and Seq knobs to the slots you wish to keep, and
Playing Chords. Set all three pattern designers to the then load the other file. The shared slots from the first file
same pattern in the same bank. Now transpose each of the will be preserved, but the other slots will contain data from
sequencers by different amounts. This plays a pattern of the second file. You can now save a new shared table file
repeating three-note chords. Then, if you edit a step in any which contains data from both files.
one sequencer, then the same change is applied to all the Loading All Saved Data. If you want to load all the data
other sequencers immediately, so the entire chord changes from a shared table file, then set the bank and sequence
for that step. knobs for all sequencers to bank 0 and Sequence 0. Then
Editing Massively Long Sequences. Set all the when you load the shared data table, all data from the file
sequencers to use the same pattern bank, but display differ- will be loaded.
ent patterns in each sequencer. Then one phrase designer Saving Local Data to a Shared File. Using the Batch
can sequence through the three displayed patterns. This Copy commands (described later), copy the local bank data
would let you edit up to 48 steps in one chained sequence. (bank 0) and/or local sequence data (sequence 0) to one of
Offline Pattern Editing. You can set two sequencers to the shared locations. Then you can load and save the local
use different pattern banks, but only play one of them. You data in the global data file.
Page 6
Cross-Table Edits When loading a snapshot (and when launching Reaktor),
the sequencer simply loads the bank selected by the snap-
The context menus in the Reaktor tables let you copy and shot’s stored setting for the pattern designer’s bank knob.
paste parts of the displayed pattern and phrase table data
When changing snapshots, a sequencer is unaffected if its
between the sequencers. Using the table context menu, first
Bank and Seq settings are the same as for the previous
set the source and target table to Select Mode. Now high-
snapshot. If Bank or Seq are different, then the sequencer
light the desired region in any one table and right-click in
loads new banks and sequences in real time.
the region. Select Copy. Then select the target area in the
target table and select Paste. Snap changes do not affect the clock or current step. The
sequencer remembers the current step across snap changes,
Note the context menus provide other manipulations for
regardless whether the bank and sequence knobs are the
modifying the data in any one table.
same or different. The next step will play just as if there
was no snap change at all! This lets you use snap changes
Batch Copy to modify a sound without changing the sequence patterns,
or alternatively, change sequences without affecting the
sound.
Note that the shared data is not specific per snapshot. For
example, if you change a pattern for one snapshot and
another snapshot uses the same pattern, then the same pat-
tern changes in the other snapshot also. Actually, this is
very useful, because you can make global changes to a pat-
tern for a set of snapshots. If you want to preserve data for a
set of snapshots, then it’s easy to do this using the global
Load and Save.
Page 7
Bpm. Sets the internal clock bpm (assuming 4/4 tempo). If Fine. Sets a small pitch offset of less than +/-1 semitone.
using an external clock, this control has no effect.
Tempo. Sets the base tempo of the sequence. In the tempo
shuf. Symmetric shuffle, applied to individual steps in list, the acronym D (such as 1/1 D) refers to dotted inter-
each sequencer. Setting to 0 results in no shuffle. Negative vals, and the acronym T (such as 1/4T) refers to triplet
values delay odd steps; positive values delay even steps. intervals. Note that the phrase designer may also scale the
For example, setting to 0.25 delays even steps by 25%. tempo for any particular sequence.
Reset. Sends a global reset, which is useful if using an Bank. Sets the current pattern bank (0 is the local bank,
external MIDI source and some stuck notes have occurred banks 1-16 are shared between the sequencers).
(generally reset is not required otherwise).
Pat. Sets the current pattern (there are 8 patterns in each
tick. Displays the number of clock ticks since start. bank). The current pattern shows up in the pattern designer.
The Pat knob is also linked to the phrase designer, and the
beat. Displays the number of beats since start.
knob changes its position automatically when the phrase
designer changes the current pattern.
Sequencer Controls
Pattern Designer
Page 8
Pitch. The top table sets the base pitch for each step, prior pitch and gate controller values drop to zero for the set
to key scaling and transposition. interval, before the next step commences.
Below each step in the pitch table is the note name for that Note that the phrase designer (if enabled) may scale the
step, after key scaling and transposition. When the pattern overall duration settings.
or sequence is transposed or key-scaled, then the note name
below the table changes dynamically, to show the actual Step Record
output note!
Key scale mapping uses Bubu's excellent scale mapper,
with some modifications to improve performance and han-
dling of fine tuning.
Velocity. The middle table controls the velocity for each
step. Output is between 0 and 1. If the column is set to its
bottom-most value, step velocity is zero, in which case, the
sequencer does not send a note-on event to the sequencer In record mode, the pattern designer can step-record pitch
for that step (however a value of zero is still sent as a con- and velocity information from external MIDI, as well as
troller value to the modulation matrix). pitch information from the on-screen keyboard. When
using the on-screen keyboard, velocity for each recorded
Duration. The bottom table controls the note duration for step is hard-wired to 0.5.
each step. Values are between 0 and 1, quantized into 4
steps. By default, step record is Off. To enable step record, set the
toggle button to A, B, or C. This selects sequencer A,
• When set to the middle (default) value of 0.5, the dura- sequencer B, or sequencer C as the target for incoming
tion exactly follows tempo. notes. (If the target is set to use shared memory and another
• When set to 0.25, note duration is half the step interval sequencer is using the same shared memory, then the notes
(as set by tempo). will also appear in the other sequencers).
• When set to 0, note duration is one quarter the step When you enable step record, the record cursor (the purple
interval. cursor) is positioned before the first step for the currently
• When set to 0.75, note duration is 1.5x the step inter- selected pattern. Also, all transposition and key scaling is
val. disabled, so that exactly the recorded note appears in the
sequencer (and is heard when recorded).
• When set to 1.0, note duration is twice the step interval.
The cursor advances automatically after a note is received,
Note duration has different effects on the note output
and the pattern advances automatically to the next pattern
(which are fully polyphonic notes) and controller values
after the last step in the current pattern (as set by the Slen
sent to the synthesizer modulation matrix (which are series
knob). This lets you quickly enter a set of notes into multi-
of monophonic values).
ple patterns.
• For notes, the duration directly sets the period between
note-on and note-off events. If a note is longer than the Key Scale
tempo interval, then the prior note continues to play
after the next note starts, without either note cutting The Key Scale list box is in the lower left corner of the B
each other off (note output is fully polyphonic). panel. All three sequencers use this common setting for
• When using sequencer pitch or gate values as mono- mapping pitch values to key scale.
phonic controller values in the modulation matrix, then When you change the key scale mapping, the displayed
note durations longer than the tempo interval are pitch names in the sequencer Pattern Designer panels auto-
ignored. With duration set to 1.0 or higher, pitch and matically update with the resulting pitch names.
gate controller values directly change to their next step
value upon step advance. With lower durations, the
Page 9
Phrase Designer
Each sequencer contains its own phrase designer. When Phrase Transpose. Sets a transposition (of +/-24 semi-
enabled, the phrase designer controls which pattern is cur- tones) applied to the current phrase. The default middle
rently playing from the sequencer’s pattern bank. The position applies no transposition.
phrase designers also control how many times a pattern
repeats before moving to the next pattern. During each pat- Note Tempo. Scales the sequencer tempo for the current
tern playback, the phrase designers additionally can trans- pattern. With the default middle position, the phrase uses
pose pitch, scale the tempo, and/or scale note duration. exactly the tempo for the sequencer. Higher values speed
up the tempo. Lower values slow down the tempo.
The phrase designer contains the following controls for up
to eight phrases: Note Duration. Scales the duration of notes for the cur-
rent pattern. With the default middle position, the phrase
On. Enables the phrase designer. If the phrase sequencer is uses exactly the note durations as set in the pattern. Higher
turned off, the currently displayed pattern in the pattern values scale the duration to longer periods; lower values
designer loops continuously. When turned on, the phrase scale the duration to shorter periods.
sequencer steps through the phrases.
Values for Note Tempo and Note Duration are between 0
Step. Displays the current step. and 1, with 0.5 being the middle default value. Values are
Repeat. Displays the number of times that the pattern for scaled using the same shaper circuit, as follows:
the current phrase has repeated (between 0 and 7)
Phrase. Displays the current phrase.
Seq. Sets the sequence to use for this sequencer. The
sequence may be the local sequence (seq 0) or one of the
shared sequences (seq 1~32). The settings for all the phrase
tables are stored in each of the sequence locations.
Pattern for this phrase. Selects the pattern to use for
the current phrase. Each phrase can use any of the eight
patterns from the current pattern bank.
Repeats. Sets the number of times that the phrase’s pat-
tern repeats before moving to the next phrase. If set to 0, Thus, when the column in the note duration or phrase table
then the phrase sequencer returns to the first phrase when is set to its highest value, source values are increased by a
the sequencer reaches that step. If the first phrase is set to factor of 4. When set to its lowest value, source values are
zero, then the sequencer uses the currently selected pattern. reduced by a factor of 8.
Page 10
Keyboard and MIDI
Page 11
Global Controls
LFOs tings, LFO frequency is different for each voice. See the
instrument tooltips for more specific information.
Sync. When enabled, the LFO restarts for each voice when
the amplitude envelope restarts for that voice.
LFO2
LFO2 is a monophonic LFO with the following waveforms
available at all modulation destinations:
• Parabolic - Symmetry controlled by shape knob.
• Triangle/saw - Symmetry controlled by shape knob,
with center position providing triangle; left is down
As well as a simple, dedicated LFO for the mod wheel saw; right is up saw. Note that the bimodal modulation
(described for the keyboard panel) there are three complex matrix permits inversion of these waveforms at differ-
LFOs. ent destinations.
• Pulse - Width ratio controlled by shape knob.
LFO1 • Ladder - The triangle/saw waveform is sampled at a
periodic interval and held, generating either an ascend-
LFO1 is a polyphonic LFO with the following waveforms
ing staircase, descending staircase, or ziggurat wave-
available at all modulation destinations:
form.
• Parabolic - Symmetry controlled by shape knob. • Random - A noise source is sampled at various inter-
• Triangle/saw - Symmetry controlled by shape knob, vals. The range or randomness for the noise source can
with center position providing triangle; left is down also be controlled.
saw; right is up saw. Note that the bimodal modulation • Up Ramp - An inverted saw waveform that is unaf-
matrix permits inversion of these waveforms at differ- fected by the position of the shape knob.
ent destinations.
• Down ramp - A saw waveform that is unaffected by
• Pulse - Width ratio controlled by shape knob. the position of the shape knob.
• Sample and hold - The triangle/saw waveform is sam- The LFO1 panel provides the following controls:
pled when the amplitude envelope restarts for each
voice. Freq. The vertical axis of this XY control sets the base fre-
• Down ramp - A saw waveform that is unaffected by quency of the LFO. The XY control also displays the cur-
the position of the shape knob. rent output value as a horizontal line. The horizontal value
for the XY control has no effect.
The LFO1 panel provides the following controls:
Shape. Controls the width ratio of the parabolic, triangle,
Freq. The vertical axis of this XY control sets the base fre- and pulse waveforms. When centered, the output wave-
quency of the LFO. The current level for each voice is dis- forms are symmetric.
played as horizontal lines within the XY control. The
horizontal value for the XY control has no effect. For the staircase waveforms, the shape knob controls
whether the ladder steps up, down, or in both directions.
Shape. Controls the width ratio of the parabolic, triangle, When centered, the output steps up and down at the same
and pulse waveforms. When centered, the output wave- rate. At other values the up/down frequency is distorted.
forms are symmetric. The shape knob has no effect on the
ramp down waveforms. Step. For the ladder waveform, controls the number of
steps within each LFO cycle. For the random waveform,
Spread. Spreads the frequency of the LFO to a different controls the range of randomness.
value for each voice. When fully turned left, the LFO2 for
all voices have exactly the same frequency. At higher set-
Page 13
Sync. When enabled, the monophonic LFO restarts when
the amplitude envelope restarts for any voice.
Envelopes
Tempo LFO
Page 14
Modulation Routing
Source B XY Value
Source A
E1 Amount A
E2 Polyphonic
X
VEL
E1V
E2V Amount B
L1S Polyphonic
X
L1T
L1P Source D
L1H
Source C
+
L1D Amount C
M1 L2S X
O3C L2T Monophonic
O3S L2P
TLI L2L Amount D
TLS L2R
X
TLP L2U Monophonic
L2D
Pitch Track
WHL
BND Center
scale X
AFT
S1P
S1V
S2P
S2V Gain & Scale
M2 Pitch Dest
Range
Clip/Mirror
Range
A switchless modulation matrix permits the selection and • The sliders and associated screen controls constrain
adjustment of many different modulation sources. The and modulate the parameter. There are a standard set of
architecture uses a similar design for all modulation desti- generic controls for each modulation target:
nations. As summarized in the above diagram, modulation • A Range bar
routing is as follows:
• A Clip button
• There is a large XY control to set a base value (prior to
• A Gain knob
modulation) for one parameter horizontally, and
another parameter vertically. • One pitch tracking slider (P)
• The XY control also displays the current values for all • Four modulation sliders (A, B, C, and D)
voices (shown as crosses or rectangles, depending on • Four modulation source list boxes (A, B, C, and D)
the parameter).
• Two Value displays.
The following screenshot labels the above controls for
the vertical parameter of an XY panel.
Page 15
Also, XY values and modulation amounts are scaled by the
Offset Range Source range. For example, if the range is set to between 0.5 and
1.0, then placing the crosshair in the middle of the XY
X Value Y Value Clip
Amount Gain panel sets the base value to half way between 0.5 and 1.0
(which is 0.75).
Restricting the range is useful, for example, when you wish
to stop very high resonance values; simply restrict the reso-
nance range accordingly.
The gain, the modulation amounts, and the base XY values
are all scaled by range settings. This means you can easily
“zoom in” on a particular zone (perhaps particular filter fre-
quency and resonance ranges), and obtain very fine control
of the base value and modulations within that range.
Gain
The gain knob scales the modulations (A, B, C, D, and P).
For example, if the range is 0 to 1, and a modulation’s
amount is 25%, then setting gain to 1 yields a modulation
amount of 25%; setting gain to 2 yields a modulation of
50%; and so on.
The following subsections describe the above generic con- When you change the range settings, the gain is scaled pro-
trols. protionally. However, you can still set gain so that modula-
tions intentionally exceed the range. This lets you
X Value and Y Value intentionally clip or mirror the modulations.
Page 16
Pitch Tracking For all modulation sliders, the center position is neutral
(off). All modulations are bipolar. This means the modula-
For the pitch tracking slider (P), behavior is different tion may be positive or negative, depending which way you
depending on the destination: move the slider.
• For oscillator pitch and filter frequency, the center
position causes pitch to track uniformly with the source Modulation List Boxes
pitch (at unity gain). At higher values, higher pitches
are greater and lower pitches are less. At lower values, These lists select a modulation source for each slider,
the pitch is reversed, so that higher pitches result in a arranged in a stack. The top list box chooses the modula-
lower value, and vice versa. tion source for slider A, the next one chooses the modula-
tion source for slider B, and so on.
• For destinations besides pitch and frequency, there is
no modulation by a note’s pitch value when the P slider Note that these list boxes are, in Reaktor terms, “lists” and
is in its center position. At higher values for the P not “switches.” Changing any modulation source does not
slider, higher note pitches increase the output value. At interrupt the sound. All modulation sources are available
lower values, higher note pitches reduce the output throughout the instrument without using any switches!
value. A and B are polyphonic sources; C and D are monophonic
sources. There are 15 sources for each, described in the fol-
Modulation Sliders lowing tables.
O3C is not available as a modulation source for the Osc3 contour itself, of course.
Page 17
Polyphonic Sources (Continued)
O3S Oscillator 3 sync. Same as for O3C above, but for the sync controls of oscillator 3 instead of the contour controls.
TLS Tempo LFO “sine” waveform. See “Tempo LFO” on page 14.
TLI Tempo LFO Linear waveform. See “Tempo LFO” on page 14.
TLP Tempo LFO Pulse waveform. See “Tempo LFO” on page 14.
OFF Turns off the modulation source. Note: this setting causes the event processing for this modulation source to be
disabled, resulting in a small improvement in CPU utilization.
Monophonic Sources
L2S LFO2 “sine”. The waveform is actually parabolic and may be shaped by the LFO’s SHAPE control
L2T LFO2 “triangle”. The waveform may vary between a triangle and ramp, as set by the LFO’s SHAPE con-
trol
L2P LFO2 pulse. The pulse width ratio may be set by the LFO’s SHAPE control
L2L LFO2 ladder. The modulation source steps between a series of ascending or descending fixed values,
with the number of values and direction determined by the LFO2 settings.
L2R LFO2 random. The modulation source steps between random values, with the number of values and
direction determined by the LFO2 settings.
L2U LFO2 ramp up. The waveform is unaffected by the LFO’s shape control, and is always an up ramp.
L2D LFO2 ramp down. The waveform is unaffected by the LFO’s shape control, and is always a down ramp.
Because all modulations are bipolar, the ramp down provides an inverted waveform of ramp up, within
exactly the same range.
WHL Mod wheel value, between 0 and 1. See “Mod Wheel” on page 11.
BND Bend value, between -1 and +1. This source merges input from external MIDI and the bend slider in the
instrument’s on-screen keyboard.
AFT Channel aftertouch, between 0 and 1.
S1P Sequencer 1 pitch, scaled between 0 and 1, with middle C at a value of 0.5. This monophonic source pro-
vides the most recent pitch from Sequencer A.
S1V Sequencer 1 velocity, between 0 and 1. This monophonic source provides the velocity of the most recent
note from Sequencer A.
S2P Sequencer 2 pitch, scaled between 0 and 1, with middle C at a value of 0.5. This monophonic source pro-
vides the most recent step from Sequencer B.
S2V Sequencer 2 velocity, between 0 and 1. This monophonic source provides the velocity of the most recent
step from Sequencer B.
M2 Multiplier 2. See “Multipliers” on page 19.
OFF Turns off the modulation source. Note: this setting causes the event processing for this modulation source
to be disabled, resulting in a very small improvement in CPU utilization.
Page 18
Multipliers B
Selects the source B, same as for source A.
Exp
Each source may be exponentiated by turning on its respec-
tive exp button. An exponentiated source is simply the
source value multiplied by itself (squared). Exponentiation
is performed after scaling (by the scale factor) but before
The matrix multipliers provide selection of two sources. the the two sources are multiplied together. If you just wish to
sources are multiplied together and available throughout exponentiate one source and not multiply it by another
the instrument as a single modulation source. source value, then turn on exp for one source and select FIX
for the other source.
Multiplier 1 can multiply together any two modulation
sources, whether they are polyphonic or monophonic. Mul-
tiplier 2 can multiply together any two monophonic
Scale
sources. For example, the M2 unit can multiply pitch bend Source A and source B may each be scaled by any factor.
by an LFO. Then the M2 source provides an LFO modula- (Of course if neither A nor B is exponentiated, then the out-
tion source whose amount of modulation may be controlled put is simply A*B*Ascale*Bscale).
by pitch bend.
Note: Be careful if using the matrix multiplier with the
Each multiplier panel has the following controls: Osc3 contour or osc3 sync sources, because it is possible to
set up an infinite loop that will crash Reaktor. For example,
A if a multiplier source is set as O3C, and one of the osc3
contour modulation sources is the matrix multiplier itself,
Selects the source A, which may be any polyphonic or then the events loop infinitely between the multiplier and
monophonic source listed in the above tables. In addition, O3C. (If you’re concerned about this, you can delete the
pitch tracking is available as a source; pitch tracking has a connection to O3C and O3S from the matrix multiplier’s
value between 0 and 1, with center pitch taken from the source connections, but sometimes this routing may be use-
global pitch control panel. ful, so the connection is left in the current instrument struc-
To reduce CPU usage slightly, select the FIX source. ture).
Page 19
Oscillators
Waveform Effect of Contour Modulation
saw Contour of 0 is triangle.
bisaw Contour of -1 is down ramp.
Contour of +1 is up ramp.
pulse Contour sets the pulse width ratio.
bipulse
parabolic Contour sets the parabolic shape.
sine mirror Contour sets level at which
parabolic mirror mirroring occurs.
triangle mirror
saw mirror
bipulse mirror
up ramp Contour modulates slope.
down ramp
biramp
spike
ziggurat Contour modulates shelf height
staircase
fishtail Contour modulates shape.
The oscillator panel provides control of up to four poly- Noise Contour adjusts noise color.
phonic oscillators, a suboscillator, and global pitch, as LP filtering below middle C;
described below. HP filtering above middle C
Pink Contour adjusts noise color.
Staircase Oscillator
At contour of zero, the staircase is simple rising step wave-
form from -1 to +1. Contour modulates the height of inter-
mediate steps to distort the staircase into random steps.
The global pitch controls provide for pitch offset and pitch
modulation for the entire synthesizer. Pitch tracking can be
scaled around a settable center pitch (with the center pitch
value displayed under the center knob). Middle C is dis-
played as C5. If set to middle C, pitch tracking is uniform
across the entire pitch range. Higher and lower settings
skew pitch above and below the center pitch accordingly.
Ziggurat Oscillator
This is a rising and falling staircase. The contour modulates Tempo Glide
the height of intermediate steps to make complex wave-
forms.
Page 21
Oscillator Controls isn’t required). If osc1 sync is enabled, then there is no
CPU overhead for enabling the suboscillator.
For all oscillator XY panels, the vertical axis controls and
displays oscillator contour. Values are displayed as rectan- Osc3
gles. One corner of the rectangle shows values before mod-
ulation; the opposite corner shows values after modulation. The XY panel for Osc1 controls the contour vertically, and
soft sync horizontally. Osc3 also has its own pitch modula-
For oscillator 1 and 3, the horizontal axis controls and dis-
tion controls.
plays soft sync. For oscillator 2, the horizontal axis controls
the suboscillator volume. Pitch. Oscillator 3 has its own pitch modulation controls.
They operate the same as for oscillator 2.
Osc1 Soft Sync. The soft sync switch, list box, and modulation
The XY panel for Osc1 controls the contour vertically, and controls have the same effect as for osc1. If soft sync is dis-
soft sync horizontally. abled, then the sync modulation panel is still available as a
complex modulation source throughout the instrument.
Pitch. Oscillator 1 simply uses the global pitch, and
doesn’t have its own pitch modulation controls. FM. Same as for Osc1 FM.
Soft Sync. On Osc1 and osc3, soft sync is available for all Osc4
waveforms. Soft sync is provided by inverting osc1/3 when
the sync source crosses a threshold. The base threshold is
set by the X value of the respective oscillator’s XY panel.
• A switch next to the Osc1 sync modulation controls can
turn off soft sync, to reduce CPU utilization. If the
switch is on, then the sync list box selects the oscillator
from which soft sync is derived.
• The level of the sync source at which inversion occurs
can be set and modulated independently for osc1 and
osc3. Although it has no XY panel (to save screen real estate), a
separate waveform can be selected for oscillator 4.
FM. If the oscillator is an FM oscillator, this selects the
audio source used for FM modulation. For all the oscilla- Pitch. The Psrc knob sets whence Osc4 derives its base
tors, any of the other oscillators or the suboscillator is pitch. If Psrc is 1, then pitch is derived from the global
available as an FM source. For Osc1 and Osc3, additional pitch. If Psrc is 2 or 3, then pitch derives from oscillator 2
FM sources are the morph mixers, the filters, and the enve- or 3, respectively. You can also set Psrc to fractional values
lopes (with high gate level fixed at 1.0). up to 4.0, in which case base pitch is a mix of other pitches.
for example, if Psrc is 2.5, then the base pitch of osc4 base
Osc2 is half way between the pitches of osc2 and osc3. If Psrc is
half way between 3 and 4, then pitch is half way between
The XY panel for Osc1 controls the contour vertically, and the pitch of oscillator 3 and global pitch.
the level of a suboscillator horizontally. Osc2 also has its The oct and P knobs add an offset to the base pitch deter-
own pitch modulation controls. mined from the setting of Psrc.
Pitch. Oscillator 2 has its own pitch modulation controls, The scale button, when enabled, causes the derived pitch to
which generate a pitch offset from the global pitch for each be forced to the key scale.
voice. After applying the pitch offset, the oscillator pitch
can optionally be forced to the same key scale as for global Contour. The CntrlSrc knob sets whereosc4 derives con-
pitch, by enabling the oscillator’s dedicated track button. tour and modulation, in the same way as the Psrc knob
works for Osc4 pitch. The offset knob adds a fixed offset to
Suboscillator. A switch next to the contour controls for the contour value derived from the CntrlSrc knob. The gain
osc2 enables or disables the suboscillator. The suboscillator knob scales the result of adding the value from the contour
is derived from audio processing circuits for the Osc1 sync. source and the offset knob. The range and clip is applied to
(Typically, osc2 would be used for osc1 sync, although this the result of the gain calculation.
FM. Same as for Osc1 FM.
Page 22
Vector Mixers
Enabling Oscillators
Overdrive
The buttons around each corner of the XY panel enable the
the respective oscillator; if a button is off, then the morph
Enable mixer produces no sound for that voice when that voice’s
mix point is in the corresponding corner. The enable button
overrides all other mixer settings.
The button is fully debounced and does not cause any
clicks when changed.
Enable
Oscillator Overdrive
There are four knobs for each vector mixer, one knob for
each oscillator. The knobs are arranged in a square, with
The vector mixer provides modulated mixing for each of
each oscillator in the same corner as for the XY panel.
four audio sources. The upper mixer feeds filter 1 input.
The lower feeds filter 2 input. The vector mixer outputs are Each knob controls the overall maximum drive of the
also available as FM sources elsewhere in the instrument. respective oscillator (if the oscillator is enabled, as
described above).
The design is similar to the joystick control on the Korg
Wavestation. The XY panel and modulations effect a four- When the crosshair for any voice is in the corresponding
way crossfade between the oscillators, with one oscillator corner of the XY panel (and the oscillator is enabled for
in each corner, as follows: that corner), then the output amplitude of that oscillator
will be exactly as set by the oscillator’s overdrive knob.
Moving away from that corer, the amplitude gradually
Osc1 Osc3 decreases for that oscillator; when the crosshair is on the
other side of the panel, the oscillator is inaudible.
The instrument includes automatic gain compensation on
outputs, so that changing an oscillator’s overdrive setting
changes the overdrive fed into the filter, but does not gener-
Osc2 Osc4 ally change the overall output volume. However, more
extreme filter settings may still cause some variation in vol-
For example, if all oscillators are enabled:
ume, in which case the polyphonic limiter for that filter
• When the mix is in the top left corner, output may be engaged.
only oscillator 1 is output.
• Moving right: Oscillator Level Display
oscillators 1 and 2 decrease;
oscillators 3 and 4 increase. The XY panels also display the current morph point for
each voice with a rectangle. One corner of the rectangle
• Moving down:
shows the oscillator mix before modulation; the opposite
oscillators 1 and 3 decrease;
corner shows the oscillator mix point after modulation.
oscillators 2 and 4 increase.
The value meters for the vector mixers are slightly different
When the mix is in the center of the XY panel, and there is
from the other XY panels. For each vector mixer, there are
no overdrive being applied, then there is an equal mix of all
four value displays, two above and two below the XY
four oscillators.
panel. By default each value meter shows the current level
As well as a complete set of standard modulation controls, of the oscillator for the corresponding corner (after over-
each mixer has one enable button for each oscillator, and an drive). Otherwise, the value meters behave the same as for
overdrive sub-panel. other XY panels.
Page 23
Dual Filter
Page 24
F2 Group. Switch to select the group of filters which are • When on the left edge, only the left filter type is output.
available for filter 2 morph. The groups are Low Pass (L2b, Moving right, the output level of the left filter type
L4, B2, BL4, B4, H2, and bypass), High Pass (B2, BH4, gradually decreases, and output of the center filter type
B4, H2, H4, and bypass) and Ladder (Ld1, Ld2, Ld3, Ld4, increases.
and bypass). • When in the center of the XY panel, only the center fil-
Sat2. Switch to enable post-filter saturation for filter 2. ter type can be heard. Moving from center to right, the
center filter type decreases and the right filter type
increases.
Feed and Morph • On the right edge, on the right filter type can be heard.
Filter Morph Types. The left, cntrl, and right knobs pro-
vide switchless selection of the left, center, and right filter
types. When you rotate the knobs, the name of the selected
type is shown below. Note the F2 Group switch, described
earlier, lets you select between groups of available filter
types.
Filter Overdrive. Each of the three filter types may be
overdriven independently of the others, so you can morph
The middle XY control in the filter panel controls F1>F2 between any levels of filter drive. The instrument automati-
feed (vertically) and filter morph (horizontally). Feed and cally compensates for changes in gain internally, so that
morph have standard modulation controls, with the follow- changes in drive level effect tone, but not output volume.
ing additional features and characteristics.
Filter 2 Morph
The horizontal axis of the Morph subpanel sets the base
morph point for filter 2. the XY panel displays the current
morph point for each active voice.
As well as standard modulation controls, the sub-panel for
The filter 2 output is a mix of two out or three filter types,
Filter 2 contains the following additional features:
controlled by a subpanel in the lower right quadrant of the
feed/morph panel. • Frequency modulation (F), same as for filter 1.
Here there are sets of three controls labelled Left, Center, • Independent pitch track centering, same as for filter 1.
and Right. These controls the filter type and drive across • Logarithmic resonance, same as for filter 1.
the horizontal axis of the XY control.
Page 25
Output and Effects
Output Panel The vertical position has no effect. The XY strip addition-
ally displays the current pan position for each voice.
Clp. When enabled, modulations exceeding far left/right
are clipped; otherwise, they are mirrored.
Limit
There is independent polyphonic limiting of filter 1 and fil-
ter 2, after level setting by the F1 and F2 sliders. With poly-
phonic limiting, one voice may be limited (due to high
resonance values) without affecting the gain of other voices
(for which the ADSR envelopes may be at lower levels).
L1 and L2. Enable limiting for filter 1 and filter 2, inde-
pendently of each other.
Level Thrsh. Sets the threshold (in dB) for both limiters.
To conserve screen real estate, the level sliders and mute Relse. Sets the release (in milliseconds) for both limiters.
buttons control the filter outputs (prior to pan and effects).
The metering and peak indicators are for final output of the
left and right channels (after pan and effects). Effects
F1 and F2. The F1 and F2 sliders set the output level of The effect chain is:
each filter before they are fed into pan and the effects chain. pan> flange > chorus > echo > reverb.
Output Metering. A special low-CPU design displays Each effect has power switches. This lets each effects be
final output levels of Left and Right channels. individually disabled, to reduce CPU usage, but enabling or
Peak. The box at the top of the metering segments illumi- disabling the effects interrupts the sound. If you want a
nates red for half a second when the final output signal snap to enable an effect without clicks, use the Mix knobs
exceeds 0db within the prior half-second period. Also, the in each effect.
actual value of the highest signal level, in any half-second
period, is displayed below the meter segments. Tempo Delay
Mute. These buttons mute filter 1 and filter 2, respec-
tively. Mute is fully debounced and doesn’t cause any
clicks.
Pan
There is stereo., polyphonic pan with independent modula-
tion for each filter output.
Pan Slider. The pan slider sets the base pan position for
both filter outputs.
The instrument includes low-CPU dual delay lines with
Pan Modulation Source. The list box permits selection cross feedback, delay time modulation, and panpot. Input
of 32 different modulation sources. to the delay lines are the mixed filter 1 and filter 2 outputs,
after pan and pan modulation.
Pan Modulation Amount. Moving the crosshair in the
XY strip horizontally controls the pan modulation amount. There are switches to enable and disable the two effect
lines separately.
Page 26
Tempo L and Tempo R. Sets the tempo for each delay Chorus
line, with time derived from the global clock.
FbL and FbR. Sets the feedback for each delay line.
Pan. Sets the pan position for the stereo output. In its cen-
ter position, the left delay line is fully left and the right
delay line is fully right. Moving the pan position left or
right causes one of the delay outputs to be moved towards
the center of the stereo field.
The chorus is a CPU-reduced version of the quad chorus
Mix. Sets the mix of dry and wet signals. When centered, from the REaktor 3 library.
the mix is equal. When fully left, only the dry signal is
heard. When fully right, only the echo output is heard. rate. Sets the rate of delay modulation.
sprd. Sets the mount that delay modulation is different
Flange across the four delay lines.
deep. Sets the amount that delay modulation affects the
delay.
dlay. Sets the base delay amount across the four delay
lines, prior to modulation.
Mix. Sets the mix of dry and wet signals. When centered,
The stereo flange is a CPU-reduced version of the Reaktor the mix is equal. When fully left, only the dry signal is
3 stereo flange instrument. heard. When fully right, only the echo output is heard.
Rate. Sets the rate of delay modulation.
Reverb
Deep. Sets the depth of delay modulation.
Fbk. Sets the amount of feedback.
Dlay. Sets the base delay prior to modulation.
Mix. Sets the mix of dry and wet signals. When centered, The reverb is a low-CPU, mono reverb with room size,
the mix is equal. When fully left, only the dry signal is softness, and diffusion control.
heard. When fully right, only the echo output is heard.
size. Sets the diffusion delay.
diff. Sets the amount of diffusion.
soft. Sets the amount of diffusion modulation.
mix. Sets the mix of dry and wet signals. When centered,
the mix is equal. When fully left, only the dry signal is
heard. When fully right, only the echo output is heard.
hall. Enables an additional diffusion module with a long
diffusion delay, increasing CPUY usage but improving per-
ceived reverb depth.
Page 27
Tutorial One:
The Logic Of Event Logic
This tutorial addresses some advanced topics in the design use a larger number of voices and have more respon-
of event logic. It assumes prior experience with basic sive user interface, even if the CPU is exactly the
instrument design, as well as familiarity with the descrip- same.
tions of event logic in the Reaktor manuals. • Modern CPU architectures (especially RISC architec-
Before reading this article, you may wish to obtain the tures like in the PowerPC) achieve higher clock rates
most recent version of the Leviathan Macro Library by breaking up each instruction into smaller and
from the User Library's "Macros" section. Examples in smaller pieces, and then performing each little piece of
this tutorials are mostly taken from the Polyphonic the instruction in a separate hardware unit--a technique
Glide macro in the Leviathan Macro Library. called "increasing pipeline depth." This shortens the
required clock cycle, and through increased parallel-
To exploit Reaktor to its fullest advantage, it's useful to
ism, also increases the speed of overall throughput.
understand exactly how Reaktor really works. The first part
Even so, a single instruction actually goes through
in this tutorial therefore explores the theory of operation
more and more pipeline stages, and some types of
behind Reaktor. There's some design hints here, but there's
instructions can block the pipeline.
many more in later sections. If you're just looking for
design hints, you may want to skim over this part, and per- A branch instruction, for example, is the kind of
haps come back to it later. instruction which a SEPARATOR or COMPARE mod-
ule invokes. Here, instruction execution can go in more
than one direction, and the direction of execution isn't
Optimizing Software for known until the branch instruction is completely pro-
cessed. As a result, the following element can't be pro-
Hardware cessed until the branch direction has been determined.
As pipelines deepen, the effects of such blockages are
Reaktor provides many of the features in front-end hard-
to stall the CPU for longer and longer periods.
ware design software for integrated circuits and printed cir-
cuit boards. Only 30 years ago, such capabilities were only Software can alleviate pipeline blockages problem by
available in dedicated hardware workstations, such as the shuffling instructions around, behind the scenes, so that
Daisy MegaLogician, costing upwards of $50,000. In those dependencies between immediately consecutive
days, a design house would often dedicate a full-time Sys- instructions occur as infrequently as possible. For
tems Engineer to administration tasks, such as managing example, instructions for each voice on a polyphonic
complex batch files. Reaktor now performs many of those instrument can be interleaved, which can reduce inter-
tasks automatically, each time you connect up a single wire. dependencies between consecutive operations for each
voice. Reaktor does this for you automatically, when
How can Reaktor can do more than a $50,000 workstation
you increase the number of voices, this behind-the-
could, just 30 years ago? Partly through better hardware,
scenes optimization is partly why CPU usage increases
partly through software. These days, people tend to overes-
less for some designs than for others.
timate the importance of hardware, and underestimate the
importance of software. Can a design take advantage of these types of optimiza-
tions? Generally, if modules have more wires fanning out
In particular, there is the widespread adoption of CPU
from each module, the potential for such optimizations
clock rate as a measure of performance. Before getting into
increases. So, if you have a choice, it's always better to
the details, here are the general rules of thumb for CPUs:
design "wide” over “long and thin” module sequences.
• For audio processing, it’s usually much better to have a
Other instructions take longer to execute, no matter what
slower CPU with good hardware acceleration of float-
the type of CPU:
ing-point operations (such as a Pentium) than a faster
integer-based CPU (such as a Celeron). • Log and transcendental operations (such as by LOG
and SINE modules) always take the longest, and should
• If processing many audio streams, then bandwidth also
be absolutely avoided on processors like the Celeron,
becomes a bottleneck; on computers with higher mem-
ory bandwidth, for example, you will usually be able to
Page 28
which have to perform complicated floating-point capture systems support the specification of bus connec-
emulation operations in integer-oriented hardware. tions (such as for parallel data wires) which are similar to
• Divisions (such as by DIVIDE and QUANTIZE) are polyphonic connections in Reaktor.
the second slowest. Whenever possible, instruments Some common features of modern schematic capture sys-
should avoid using these modules. One way to reduce tems are not available in Reaktor currently, and so it's quite
these types of module is to use table lookup instead of possible future releases will add these features:
direct mathematical computation (using the EVENT
• Automatic rendering of vertical and horizontal wires
TABLE module). Of course, you have to populate the
on a rectilinear grid, to assist with legibility. Reaktor
lookup value with data, so this is a measure to consider
simplifies matters by drawing wires point-to-point
when such operations are very frequent.
without corners. If you want to arrange wires other-
• If a design needs a number of processing steps, its usu- wise, the best technique is to use 1-in, 1-out MERGE
ally better to put CPU-intensive modules as close to the modules and position the MERGE modules appropri-
end of the sequence as possible. Generally, SEPARA- ately. This is because MERGE modules would be
TOR and COMPARE operations only impact CPU removed in netlist generation and thus not affect pro-
usage significantly if they are at the beginning of a long cessing speed, as described below.
train of modules.
• Integration with declarative languages for text-based
• The next most important design optimization is to specification of component interconnections. In the
reduce the number of MULTIPLY operations; after music synthesis world, a close equivalent of this inte-
that, it’s really just a matter of reducing the total num- gration is the public-domain program KEYKIT (which
ber of event-based operations. Experience shows that is well worth a look if you haven't seen it before). Cur-
even event-based logic can consume a great deal of rently, Reaktor can interface with external text-based
CPU, if the number of operations are numerous. FIL- design systems through its OSC interface, as well as
TER, ROUTER, and SEPARATOR modules can partly through MIDI and audio streams.
reduce CPU usage; these and other techniques are dis-
• Object-oriented macro design. Within schematic
cussed in the next part of the article.
design, object oriented macros are useful if you use the
same macro in many places. In that case, changes to
The Simulation Analogy one macro instance can automatically change all other
instances of the same macro. In music sequencers, this
So far we’ve just considered implications for instruction- is similar to "ghost segments" where for example,
level optimization at a very low level. Alot more is possible changing the MIDI in one ghost segment can cause all
if you understand the fundamental concepts behind Reaktor repetitions of that segment to change also. There's no
operation. Reaktor is in fact an extension of hardware way to do this in Reaktor currently, and it's difficult to
design paradigms which matured in the early 1990s, and so know whether this feature will be supported in future
the underlying principals are now fairly well understood. Reaktor releases; for complex designs it would be very
Historically, the paradigm for hardware design has fol- useful, but it somewhat depends on how Native Instru-
lowed a series of distinct steps, from design entry, through ments plans to structure and maintain its code going
simulation, to hardware layout. Reaktor uses a similar para- forward.
digm up to the layout stage, as described in the following
sections. Note however, these are conceptual comparisons, Netlist Generation
and may not correspond directly to the way Reaktor code is
physically written. This step translates the abstract drawing which was created
during design entry into some sort of functional model.
Design Entry Typically the resulting representation is thought of as a set
of nodes connected by arcs, where nodes are the simplest
In the hardware design arena, the equivalent to Reaktor's possible functional blocks, and arcs are equivalent to wires.
design entry system is known as "Schematic Capture." In hardware design, the purpose of this netlist is to provide
Schematic capture by itself simply lets you graphically the sequence of processing steps which should occur during
define component interconnections between predefined simulation; in Reaktor, the netlist controls the sequence of
library components in a hierarchical manner. processing steps that result in audio and MIDI output.
To make schematics more readable, hardware design sys- Netlist generation explodes the design hierarchy into a flat-
tems also provide wire stubs, which are similar to SEND tened representation. The process removes redundant nodes
and RECEIVE modules in Reaktor. In addition, schematic along each arc; in Reaktor 4 this appears to include termi-
Page 29
nal connections across hierarchy levels, as well as MERGE paths where only one input is connected, as well as Bool-
modules. ean optimization of interconnected logical operators. Also
In hardware design systems, netlists are often very large, so it's possible to rearrange consecutive mathematical opera-
typically they are generated in a manually triggered batch tions for optimal performance on the target hardware. In the
process. Reaktor instead generates netlists automatically, hardware design arena, such optimizations are called "logic
each time you connect a wire. To improve speed, Reaktor synthesis." It appears Reaktor currently does not perform
appears to optimize the netlist thoroughly on first loading such optimizations currently. If you're interested, you could
an instrument, then perform fast, incremental updates to the experiment with logic optimization tools externally: there
previously generated netlist. As a result, rewiring can is a freeware tool called espresso of which there are a num-
sometimes make netlists rather complex. After alot of edit- ber of variants, for example http://cse.bellarmine.edu/
ing in one session, you can quit Reaktor and restart it, and espresso/. In general, however, such optimizations are not
find that CPU load decreases significantly. complicated within the scope of musical instrument design;
see Part 2 for a discussion of Boolean optimization.
Reaktor also optimizes netlists by removing inactive signal
paths from the netlist. Inactive paths include:
Netlist Verification
• Circuits connected to an unselected input on a down-
stream SWITCH module. Note that changing the Some interconnections in a schematic can cause a simulator
SWITCH module setting causes the instrument design to fail (some can even cause hardware to blow up!) and so
to be reloaded, that is, the netlist is regenerated. hardware design systems verify the netlist at this stage, as
another batch process after netlist generation.
• Groups of components with no connected output.
Reaktor goes one better and performs some limited checks
In the realm of music synthesis design, there are usually
interactively, as follows:
large numbers of nodes and arcs which converge on a lim-
ited number of audio and/or MIDI outputs. To find inactive • When adding a module, Reaktor verifies that compo-
signal paths, Reaktor therefore starts at the ensemble out- nent limits have not been exceeded. These limits
puts and scans the signal path backwards. Any components include:
which aren't connected to the active signal path are • The maximum number of input ports (40) and out-
removed from the netlist. put ports (40) in any one design page. This is a
While doing so, Reaktor also orders nets which converge hard (fixed) limit. However, you can increase the
on the same event outputs, with the theoretical result that number of connections across design pages by
nets connecting the earlier inserted modules occur earlier in using SEND and RECEIVE modules.
the netlist. However the nature of the netlist can affect net • The maximum number of SEND modules (128)
order also, especially when modifying an existing design, and RECEIVE modules (128) in an instrument.
as the netlist is incrementally updated; as a result, the exact
• The maximum number of modules in a macro
order of components in the netlist can in fact change when
(128), or first-level+second level macros in an
you quit Reaktor and re-open the ensemble. This effects
instrument (appears to be 128 currently) not
simulation behavior, as discussed later. Particularly for this
including MERGE modules and terminals. In some
latter reason, it's best always to specify order explicitly
cases it's possible to exceed these limits by nesting
using an ORDER module, when order matters. (A side ben-
macros, but the rules for these limits appear to
efit of always using an ORDER module is that the structure
change depending on design characteristics which
view does not otherwise show the order in which signals
are currently indeterminate.
move between modules.)
• There used to a limited fanout of 18 wires for any
Incidentally, Reaktor also orders audio modules in netlists. module output port, spanning across macro bound-
In the past it's been discussed in the user forums that audio aries. This limit has been increased; however, it is
components inserted out of order into a design actually still a good idea to split up large fanouts across
introduce "parasitic delays" along the signal path, and the MERGE modules, as this often facilitates re-use of
delays were once calculated to be about 25msec. Currently the same wiring for future designs.
it seems such delays may manifest as overall instrument
latency, but it's not known for sure (this article focuses on • Exact limits also appear to vary slightly across
event logic design, so we won't descend into that topic Reaktor updates.
here). • When connecting a wire, Reaktor verifies that the con-
Other automated netlist optimizations are possible, such as nection is legal:
for example, removal of ADD modules along active signal
Page 30
• Audio signals cannot directly feed an event input. changes in voltage as floating-point values, and the values
You can always insert an intermediate AtoE mod- could change very rapidly. In fact, the audio circuits in
ule, but note that AtoE modules do increase CPU Reaktor use a kind of analog simulator, although values are
usage somewhat. Try to use as few as possible. calculated at millisecond rather than microsecond or nano-
• Polyphonic outputs cannot be connected to mono- second intervals.
phonic inputs. Insert a voice combiner of some Digital circuits then started to appear which contained so
sort. Event voice combiners consume insignificant many transistors that analog simulation was just impossi-
CPU, but audio voice combiners are more expen- ble. First off, digital circuits don't need floating-point reso-
sive. Try to use as few audio voice combiners as lution, so it's possible to model them as integer values. The
possible. early digital simulators just modeled Boolean (0/1)
• Polyphonic signals cannot be routed between changes. However the computers were still too slow even
instruments. SEND/RECEIVE connections are a then.
workaround, but are thought to introduce a 30msec To further reduce processing, digital designers started using
delay in the signal path. MIDI connections are unit-delay simulators. The early versions of unit-delay sim-
thought to be faster. However generally it's better ulators just calculated all the component outputs at a much
to partition the design so polyphonic signals longer time interval. The netlist generator would create a
between instruments aren't required. netlist of low-level "logic gates," which was a group of
Reaktor indicates illegal connections with red crosses. In transistors performing the simplest possible Boolean opera-
some cases, there may be an illegal connection inside a tions, such as AND and NOT. It was assumed the signals
macro, and then you won't see the red cross when connect- took exactly one "unit delay period" for the signal to pass
ing its outer ports. This often stumps novices and experts through these logic gates. The simulator would then calcu-
alike at least once in a while. late the Boolean value on each wire at this unit delay
period.
Perhaps to improve underactivity, Reaktor limits netlist
verification to the above kinds of checks. Hopefully Reak- Still the processing load was too large. Moreover, the unit
tor will also identify "race conditions" in the future, as dis- delay model was often inaccurate, because signals took
cussed in Part 4 of this tutorial. longer to propagate through some gates than others. To
overcome this problem, simulators stopped calculating the
When Reaktor has verified a netlist change, it lights up the
values at every output on every cycle. Instead, they only
yellow and red lamps on the modules--always a moment of
calculated changes in a component's output value when one
pleasure. At that time, it immediately activates event pro-
of its input values change. This was called "event driven
cessing (and audio processing, if audio output is enabled)
simulation." The event-driven simulator is the basis of the
for the design change, as described in the next step.
Reaktor's event modeling. Instead of calculating the value
on every wire in the netlist in every cycle, event-driven
Simulation simulators are literally driven by events, as follows:
In hardware design, simulation is the process of generating • The netlist generator sorts through the netlist and flags
a description of signal output from a model. The equivalent those nets which should be calculated first. These are
in Reaktor is actually generating audio and MIDI output. said to be in the first "timeslot."
Reaktor is especially interesting in that this "simulation" • The simulator processes the inputs on the first module
actually occurs in real time, and usually, when you change in the timeslot.
a design, you can hear and/or see the result immediately.
• The simulator looks up the time which it should take
OK, so actually, it's the audio and MIDI output you actually
for the signal to pass through that module.
want from Reaktor; but really, it works exactly the same as
a hardware simulator. • The simulator looks to see what other modules are con-
nected to the current module.
Reaktor is also interesting in that it actually contains two
linked simulators: one for audio, and one for events. The • The simulator places the calculation result, as well as
theory of operation for both these simulators, as well as the the name of the module which receives this result, in
interaction between them, arises from a long history of sim- the appropriate timeslot of a temporary storage buffer,
ulation development. In the very early days of circuit called a "timewheel".
design, simulators modeled the behavior of each and every • The simulator calculates the outputs of all other mod-
hardware component at the lowest level (such as transistors ules in the current timeslot in the same manner.
and resistors). These "analog" simulators calculated
Page 31
• The simulator advances its timebase by one step. (In tution of the VAL input’s value for the triggering event’s
Reaktor, the timebase is set as the event frequency, value. This allows faster
which is 400Hz by default.) In hardware design, the equivalent of a VALUE module in
• The simulator looks to see what modules have received hardware is a bus latch; in analog synthesizers, the VALUE
events in that corresponding timeslot. The process module is akin to a sample&hold circuit.
repeats for that timeslot. And so on.
You'll be relieved to hear, the event-based simulation meth- Event DELAY and HOLD modules
odology is by far the most complicated concept in this tuto-
rial. Unfortunately, though, we're not quite done yet. By the If you understand the event-based model, it should now be
time integrated circuits could contain more than 20,000 easy to understand the difference between an event delay
transistors, even event-based simulation was too slow. Hap- and an audio delay.
pily, some simple additions are enough to complete the pic- • The output of an audio delay module is always calcu-
ture, at least as far as Reaktor is concerned. lated every cycle, with the cycle period determined by
So far, simulators have only looked at analog or Boolean the application's audio clock rate.
values. A further level of abstraction is the behavioral sim- • On the other hand, the output of an event DELAY mod-
ulator, which support any integer value, or even floating- ule is only scheduled on the Reaktor timewheel when
point values, instead of just zeroes and ones. Behavioral the event delay module receives an event.
simulators allow modeling of higher-level constructs, such • HOLD modules are similar to event DELAY modules,
as counters and frequency dividers, as standalone compo- except that HOLD modules simply schedule a later
nents. Most behavioral simulators further improve perfor- event on the timewheel with a 0 value.
mance by using a unit-delay model, instead of using an
event-based timewheel. Event DELAY and event HOLD modules in fact are very
efficient uses of the timewheel paradigm.
Reaktor is an ingenious hybrid of all the above types of
simulator:
Introducing Event Sources
• Most notably, values in event circuits can be any float-
ing-point value, instead of just Booleans, and so in that A more complex issue for Reaktor is when it should sched-
respect Reaktor is like a behavioral simulator. ule events on the timewheel in the very first place. Until at
least something is on the timewheel, no events occur at all.
• However, Reaktor only calculates an event module's
output when one of its inputs change, and in that Over the last few years, Reaktor has started generating
respect is like an event-based simulator. some initial event for a subset of modules called event
sources. Event sources include:
• As one final wrinkle, events within any timeslot are
themselves sequentially ordered. The remaining parts • MIDI inputs
of this tutorial will explain the practical implications of • Constants
this sequential ordering within any one timeslot.
• Panel control outputs
• Outputs on some of the auxiliary modules (such as the
Getting to the Modules System Info module for example).
Some basic descriptions of how some modules use the For these select modules, one event occurs when the load-
Reaktor event engine follow. Subsequent parts of this tuto- ing an ensemble. In this context, “loading an ensemble”
rial look at these and other modules in more detail. includes changing a preset, changing a SWITCH setting,
and changing a system configuration parameter (such as the
number of voices, sample rate, event rate, etc.). All these
The Ineffable VALUE module type of events cause the entire netlist to be regenerated
The VALUE module is one of the most useful modules for from scratch, although it appears the netlist is not always
any type of complex event processing. When any event optimized as much as when Reaktor is closed down and
arrives on its IN port, Reaktor simply changes the value of restarted (probably to reduce latency).
that event in place, so to speak. The current value on the However, router and scanner modules are not event
VAL input is passed to downstream modules in the same sources; these are modules which control the flow of events
timeslot. For the VALUE module, there is no scheduling of between modules, and do not generate events themselves.
a new event in a later timeslot; it is a straightforward substi- And that's where Part One of this tutorial--the theory--
finally concludes, and Part Two--the fun part--picks up!
Page 32
Index
1 * 2 .................................................................... 20 Design Entry ........................................................29
1 * 3 .................................................................... 20 Diff ......................................................................27
1 * 4 .................................................................... 20 Dlay .....................................................................27
1! * 2! .................................................................. 20 Down ramp ..........................................................20
1! * 3! .................................................................. 20 Dual Filter ...........................................................24
1! * 4! .................................................................. 20 Duration .................................................................9
2 * 3 .................................................................... 20 E1 ........................................................................17
2 * 4 .................................................................... 20 E1V .....................................................................17
2! * 3! .................................................................. 20 E2 ........................................................................17
2! * 4! .................................................................. 20 E2V .....................................................................17
A .................................................................... 14, 19 Editing Massively Long Sequences ......................6
AFT ..................................................................... 18 Effect of Contour Modulation .............................20
Architecture Overview .......................................... 3 Effects .................................................................26
Arpeggiator ......................................................... 11 Enable ..................................................................21
Attack .................................................................. 14 Enabling Oscillators ............................................23
Audio Overview .................................................... 3 Envelopes ............................................................14
Audio Path ............................................................ 3 EQ .......................................................................24
Auditioning the Snaps ........................................... 2 Event DELAY and HOLD modules ...................32
Auto ...................................................................... 7 Exp ......................................................................19
B .......................................................................... 19 F1 and F2 .............................................................26
B2a ...................................................................... 24 F1>F2 Feed .........................................................24
B2b ...................................................................... 24 F2 Group .............................................................25
B4 ........................................................................ 24 Fbk .......................................................................27
Bang oscillators ................................................... 20 FbL and FbR .......................................................27
Bank ...................................................................... 8 Feature Summary ..................................................2
Batch Copy ........................................................... 7 Feed and Morph ..................................................25
Batch Load and Save ............................................ 6 Filter 1 .................................................................24
Beat ....................................................................... 8 Filter 2 .................................................................25
BH4 ..................................................................... 24 Filter 2 Feed ........................................................25
Bipulse ................................................................ 20 Filter 2 Morph .....................................................25
Bipulse mirror ..................................................... 20 Filter Morph Types .............................................25
Biramp ................................................................ 20 Filter Overdrive ...................................................25
Bisaw .................................................................. 20 Filter Type ...........................................................24
BL4 ..................................................................... 24 Filter Type Selection ...........................................24
BND .................................................................... 18 Fine ........................................................................8
Bpm ....................................................................... 8 Fishtail .................................................................20
Bypass ................................................................. 24 Fishtail Oscillator ................................................21
Chorus ................................................................. 27 Fix .......................................................................21
Clip/Mirror .......................................................... 16 Flange ..................................................................27
Clock ..................................................................... 7 FM .......................................................................22
Clp ....................................................................... 26 Freq ...............................................................13, 14
Cntl ........................................................................ 8 Frequency Modulation ........................................24
Comb - ................................................................ 24 Gain .....................................................................16
Comb + ............................................................... 24 Getting to the Modules ........................................32
Contour ............................................................... 22 Global Controls ...................................................12
Cross patching ..................................................... 21 Global Pitch .........................................................21
Cross-Table Edits .................................................. 7 H2a ......................................................................24
D .......................................................................... 14 H2b ......................................................................24
Deep .................................................................... 27 H4 ........................................................................24
Page 33
Hall ...................................................................... 27 O3C .....................................................................17
Hold .................................................................... 11 O3S ......................................................................18
int/ext .................................................................... 7 OFF ...............................................................18, 24
Introducing Event Sources .................................. 32 Offline Pattern Editing ..........................................6
Key Scale ........................................................ 12, 9 On ........................................................................10
Keyboard ............................................................. 11 Optimizing Software for Hardware .....................28
L1 and L2 ............................................................ 26 Osc1 .....................................................................22
L1D ..................................................................... 17 Osc2 .....................................................................22
L1H ..................................................................... 17 Osc3 .....................................................................22
L1P ...................................................................... 17 Osc4 .....................................................................22
L1S ...................................................................... 17 Oscillator Controls ..............................................22
L1T ...................................................................... 17 Oscillator Level Display .....................................23
L2a ...................................................................... 24 Oscillator Overdrive ............................................23
L2b ...................................................................... 24 Oscillator Waveforms .........................................20
L2D ..................................................................... 18 Oscillators ...........................................................20
L2L ...................................................................... 18 Output and Effects ...............................................26
L2P ...................................................................... 18 Output Metering ..................................................26
L2R ..................................................................... 18 Output Panel ........................................................26
L2S ...................................................................... 18 p>e .......................................................................14
L2T ...................................................................... 18 Pan .................................................................26, 27
L2U ..................................................................... 18 Pan Modulation Amount .....................................26
L4 ........................................................................ 24 Pan Modulation Source .......................................26
Launching the Ensemble ....................................... 2 Pan Slider ............................................................26
Ld1 ...................................................................... 24 parabolic ..............................................................20
Ld2 ...................................................................... 24 parabolic mirror ...................................................20
Ld3 ...................................................................... 24 Pat ..........................................................................8
Ld4 ...................................................................... 24 Pattern Designer ....................................................8
Level ................................................................... 26 Pattern for this phrase. .........................................10
LFO1 .................................................................. 13 Peak .....................................................................26
LFO2 ................................................................... 13 Phrase ..................................................................10
LFOs ................................................................... 13 Phrase Designer ...................................................10
Limit .................................................................... 26 Phrase Transpose .................................................10
Loading All Saved Data ........................................ 6 Pink .....................................................................20
Logarithmic Resonance ...................................... 24 Pitch .................................................................22, 9
M1 ....................................................................... 17 Pitch and Gate Path ...............................................4
M2 ....................................................................... 18 Pitch Bend ...........................................................11
MIDI Input .......................................................... 11 Pitch Track Center ...............................................24
Mirror Oscillators ............................................... 21 Pitch Tracking .....................................................17
Mix ...................................................................... 27 Play ........................................................................8
Mod Wheel ......................................................... 11 Playing Chords ......................................................6
Modulation .......................................................... 13 Power ...................................................................12
Modulation List Boxes ........................................ 17 Pro52 ...................................................................24
Modulation Routing ............................................ 15 pulse ....................................................................20
Modulation Sliders .............................................. 17 Pulse FM .............................................................20
Multipliers ........................................................... 19 R ..........................................................................14
Mute .................................................................... 26 Range ...................................................................16
Name ................................................................... 24 Rate .....................................................................27
Netlist Generation ............................................... 29 rate .......................................................................27
Netlist Verification ............................................. 30 Reduced ...............................................................12
Noise ................................................................... 20 Release ................................................................14
Normal ................................................................ 12 Relse ....................................................................26
Notch ................................................................... 24 Repeat ..................................................................10
Note Duration ..................................................... 10 Reset ......................................................................8
Note Tempo ........................................................ 10 Reverb .................................................................27
Page 34
Ring Modulation ................................................. 20 Staircase ........................................................20, 21
Run ........................................................................ 7 Step ................................................................10, 13
S .......................................................................... 14 Step Record ...........................................................9
S1P ...................................................................... 18 Suboscillator ........................................................22
S1V ..................................................................... 18 Switchless Matrix ..................................................3
S2P ...................................................................... 18 Sync ...............................................................13, 14
S2V ..................................................................... 18 Synthesizer Routing ..............................................4
Sat ....................................................................... 24 Tempo .......................................................14, 21, 8
Sat2 ..................................................................... 25 Tempo Delay .......................................................26
Saving Local Data to a Shared File ...................... 6 Tempo Glide ........................................................21
saw ...................................................................... 20 Tempo L and Tempo R .......................................27
Saw FM ............................................................... 20 Tempo LFO ........................................................14
saw mirror ........................................................... 20 The Ineffable VALUE module ............................32
Scale .................................................................... 19 The Simulation Analogy .....................................29
Scope ................................................................... 12 Thrsh ...................................................................26
Seq ...................................................................... 10 tick .........................................................................8
Sequencer Controls ............................................... 8 Tiny .....................................................................12
Sequencer Routing ................................................ 4 TLI .......................................................................18
Sequencers ............................................................ 5 TLP ......................................................................18
Shape ............................................................. 13, 14 TLS ......................................................................18
Shared Table Data ................................................. 6 Transferring Data between Saved Files ................6
shuf ........................................................................ 8 triangle mirror .....................................................20
Simulation ........................................................... 31 Up ramp ...............................................................20
Sine FM ............................................................... 20 Using Shared Data .................................................6
sine mirror ........................................................... 20 v>a .......................................................................14
size ...................................................................... 27 Vector Mixers ......................................................23
Slen ....................................................................... 8 vel ........................................................................14
Small ................................................................... 12 VEL .....................................................................17
Snap Changes ........................................................ 7 Velocity .................................................................9
soft ...................................................................... 27 Waveform ............................................................20
Soft Sync ............................................................. 22 Welcome ...............................................................2
Soft Sync ............................................................. 22 WHL ....................................................................18
spike .................................................................... 20 X Value and Y Value ..........................................16
sprd ...................................................................... 27 Xpos ......................................................................8
Spread ................................................................. 13 Ziggurat .........................................................20, 21
Square FM ........................................................... 20
Page 35