Kaivo Manual
Kaivo Manual
A Quick Overview
• The header section, where the title of the plug-in sits, next to the
patch menu and some UI behavior settings.
• The shapes section, where control data (and more) flows from the
KEY, SEQUENCER, LFO 2D, NOISE, and ENVELOPE modules.
• Physi-who? Granu-what? – A bit of background on the tech that For a full rundown on these, turn to
makes Kaivo tick. Chapter 3, “Kaivo: Module by Module.”
4
• Getting to Know Kaivo – Info on how Kaivo fits into your system,
and how to use the various dials and doodads that you’ll find.
5
1 Physi-who? Granu-what?
This chapter is a brief primer on physical modeling, granular synthesis, For a more detailed look at physical mod-
eling and granular synthesis with Kaivo,
and the basics of signals and sound.
see the RESONATOR, BODY, and GRAN-
ULATOR sections of Chapter 3, Kaivo:
Module by Module.
What is Physical Modeling?
It’s a digital signal processing (DSP) technique that lets you process
and generate signals according to mathematical models of real-world
physics. Pioneered in 1960s academia, the high processing and tech-
nical demands of physical modeling kept the technique out of wider
musical use until the 1990s, when it made waves in instruments such
as Yamaha’s VL series and Korg’s Prophecy.
The technique found early use in the realistic simulation of acoustic
instruments—a tough task for the more static synthesis and sampling
techniques of the time. That same earthbound tendency makes phys-
ical modeling uniquely able to create wild, dynamic, unprecedented
sounds, but in a manner that remains familiar to our ear. As our com-
puters grow faster and our models more refined, more and more of the
language of the physical world is laid open for us to explore. And exploit.
A Rose is a Rose is an Equation
The goings-on of the physical world can seem impossibly detailed and
organic; more the realm of poetry than math. However, the efforts
of physicists and mathematicians have shown us that much of nature
can be described quite realistically in equations—most often differen- Nobody really knows why the world is
quantifiable in this fashion, but it sure
tial equations. In our case, creating such an equation lets us use the
comes in handy when we want to design
things we know about the physical properties of an object as rules to bridges that don’t collapse, bouncy castles
predict the outcome of exciting that object with a given sound (as we with the perfect rebound, or drones that
can deliver a pizza.
do in Kaivo’s RESONATOR and BODY modules).
Getting the results we want is just half the fun. Once we have a phys-
ical model that satisfies our initial goals, it’s open season. We can adapt “Why yes, I’d like my violin’s body to change
the model to change its properties, its behavior, and that of our interac- size and shape as I play it. You can do that?
Wow. Can the strings randomly oscillate
tions with it. In Kaivo, we can modulate these properties in real time, between gut and steel, too? Great!”
opening a whole vault of fresh new timbral and expressive abilities.
I Want My FDTD
8
This cuts processing expense considerably, albeit with compromises
in accuracy and flexibility. In goes your signal, out comes the result,
and it may not be just what you’re looking for.
Today’s computers have plenty of power, so it seems natural that we
should move toward techniques that give us more accurate, more flex-
ible models. That is why we chose Finite-Difference Time-Domain (or
FDTD) as our modeling method for Kaivo. Without getting too techy,
FDTD lets us make more natural-sounding, accurate models to play
with. It also gives us the ability to feed signals in and out of the model
at any point, and make localized behavioral changes, to boot. In this
way, tonal variations abound, and the degree of control available is a
beautiful thing.
The most basic FDTD equation used in Kaivo is the 1D wave equa-
tion. The motion of a string model, or the air pressure gradient in
a modeled tube can be expressed as a single value distributed across
space; so for those models, we use a one-dimensional equation.
When we move on to 2D wave equations, we’re able to model the be-
havior of objects that require two dimensions to describe (such as drum
heads or cymbals). We can finely control resonant properties across
the model to simulate phenomena such as the localized damping effect
on a cymbal’s vibration when it’s mounted on a stand. When we want
to model shapes that move in three dimensions (such as a box), Kaivo
uses some FDTD magic to fold a 2D model into the desired shape.
9
A Little Something Extra
Both RESONATOR and BODY feature nonlin (short for nonlinear) di-
als. So what does nonlinear mean? Any sound can be described as a
sum of sine waves at different frequencies. We call these sine waves the
sound’s partials. A linear system can modify a sound by changing the
loudness of each of its partials over time. But what it can’t do is change
the frequencies of any of those partials.
Some examples of linear systems are volume controls, EQs and even
simple reverberators. An EQ can lower some partials but not others; a
reverb can extend many partials into long tails. But neither system will
introduce partials at new frequencies. The only frequencies that can be
output from a linear system are the ones that go into it.
In the case of Kaivo, nonlinearities refer to the tough-to-model id-
iosyncrasies inherent to real-world objects—aspects of their behavior
that do not correspond neatly to simple, sleek algorithms. These “im-
perfect” properties are important to the natural je ne sais quoi of the
objects we seek to emulate, but are really only beginning to be under-
stood (and modeled for our benefit).
The nonlin dial on each of our physics-based modules is there to in-
ject a little sonic spice, essentially emphasizing the nonlinear aspects
of each model. At low settings, it can add just a little something extra,
enriching signals in a euphonic way. Crank it, and things can get pretty
out-of-hand. How much spice to use is a personal matter, so give nonlin
a spin. De gustibus non est disputandum.
For more details on physical modeling and using it in Kaivo, see
the RESONATOR and BODY sections of Chapter 3, “Kaivo: Module by
Module.”
10
What is Granular Synthesis?
This section gets into some detail about
It’s a crafty way to make sound using recorded audio as raw material, what granular synthesis is all about. Some
of the info is purely functional, and some
in a way both akin to and distinct from traditional sample playback.
is more contextual. For more functional
Granular Synthesis started as a tape-based composition technique in instructions, see Chapter 3, Kaivo: Module
the pre-digital era, borne out of experiments that sought to treat tiny by Module.
(< 50ms) slices of recorded audio as building blocks for new sounds,
melodies, and textures. A bit like the techniques used in Musique
This technique banked on the fact that if you chop a piece of au- Concrète, done on a much smaller scale.
dio small enough and repeat it quickly enough, you cease to hear the
individual pieces. The output looks more like that of an oscillator; fast-
repeating shapes that create a continuous tone. Because these shapes
are sourced from audio (rather than an analog or digital tone genera-
tor) anything the composer could get on tape could become grist for
the mill. This was something truly new.
In more recent times, granular synthesis has become a real-time
process; less about painstakingly editing bits together in just the right
order, and more about playing and manipulating samples on a micro-
scale to enable new timbres and interactions. This is just what Kaivo’s
GRANULATOR module is all about.
In traditional sampling, when you play a note, playback starts at a
place in the audio that you’ve specified, at a speed (and thus, pitch) that
you’ve specified. A “playhead” of sorts travels through the audio file The “playhead” metaphor here comes
from the magnetic playback head on a
from the start point in a generally linear fashion, maybe does a little
tape recorder. As tape moves past it, the
looping, and Robert is your aunt’s husband. Even if we include mod- magnetic signal is continuously read at the
ern samplers’ modulation trickery, beat-chopping, and time-stretching point at which the playhead contacts the
tape. Though digital sample playback is
features, at the end of the day, we’re still talking about a pretty static, not a physical process, there is a playhead
predictable relationship to the sample. equivalent that “travels” through the audio
as it plays—or in Kaivo’s case, as many as
sixteen playheads per voice.
11
Granular synthesis takes that model and breaks it into tiny pieces—
quite literally. Instead of a single playhead per voice, bound to a static
start point, pitch, and so on, Kaivo’s playback relationship to a sam-
ple is much more abstract and multifarious. Don’t get us wrong—
GRANULATOR is happy to act like a regular sampler when needed, but
there’s a whole lot more it can do.
12
moves. In the case of GRANULATOR, many of its controls operate not
on the grains that already exist, but rather on those yet to be born.
Grains are independent little things, so in most cases they don’t need
to be told what to do once they’ve been created; they just keep on play-
ing in the way they’ve been told to, until they expire. So when you The exception to this rule is when the
follow option is enabled, which makes
move GRANULATOR’s dials around, you’re telling it, “The next grain(s)
existing grains change their pitch upon
you create should play this portion of the audio, at this pitch, with this receipt of new pitch data.
behavior. Keep making them like that until I send you further instruc-
tions.”
There are a finite number of grains that can be active per voice at any
given time. You set this amount with the overlap dial. For example, if
you set overlap to 8, there are 8 grains active per voice. When a new
grain is created, the oldest one expires. It’s the circle of li-ife!
The pitch dial sets playback speed for each new grain created by GRAN-
ULATOR. This governs how quickly each playhead moves through the
audio file. When you’re playing back longer grains (using GRANULA-
TOR more like a traditional sampler), the pitch dial and its inputs are
the main way to influence the central pitch of the patch.
The rate dial sets the interval at which new grains are created (and
old grains destroyed). When it’s set to zero, grains are only created
when a trigger pulse hits GRANULATOR‘s trigger input. When rate is
set to 1, one grain is created every second. Set it to 2, and two grains
are created per second. When rate is set to higher settings (each grain
forming a cycle in the resultant continuous waveform), the rate dial
and its inputs become the primary method to affect the pitch you hear.
13
When creating pitched parts with Kaivo, you may find it helpful to
patch your pitch control signal (such as note data) to both pitch and
rate. As you play notes or send control signals into a patch set this way, Both pitch and rate come with exponential
control inputs, preset at a perfect input
audio playback speed and grain creation frequency change smoothly
value for reacting to note data in a sensible
in tandem, keeping pitch and timbre well aligned over a wide range of way.
notes.
When you send a control signal to pitch alone, the speed of playback
changes, but the rate at which grains are created does not. Controlling
pitch with rate set low, you hear an evenly spaced sequence of grains,
each grain’s pitch set by the value of pitch. When rate is set high, its set-
ting determines the pitch that we hear, resulting in a continuous tone
that changes timbrally (yet not in pitch) in response to incoming pitch
data. Some of these sounds have a similar character to those created
with FM synthesis.
The converse is true for sending signals to rate alone. This changes
the rate at which grains are created, but not the playback speed of each
grain. With pitch left static, moving rate into the low ranges results in
a sequence of individual grains, triggered at a rate set by control input.
As you move rate higher, the grains begin to get small enough to form
continuous tones, producing discernible pitches.
However, the speed of audio playback doesn’t change. This means
that as you move rate up and down, the spectral relationship between
grain creation frequency and source audio frequency changes, with
dramatic timbral results.
Controlling pitch and rate individually can help you create sounds
with a similar character to FM synthesis. The relationship between
pitch and cycle frequency is fertile ground for sonic experimentation.
14
Some Grains are Bigger than Others
In Kaivo, the length of a grain depends primarily on the status of three Here, length refers to the amount of a
dials at the time the grain is created: rate, overlap, and pitch. rate sets source audio file that the grain will play.
the number of grains created per second. overlap sets the number of
active grains per voice. At settings above 1, multiple grains are created,
each at a length equal to the grain creation interval, multiplied by the
current overlap setting. So if rate is set to 1 (one grain per second) and
overlap is set to 4, each grain will be four seconds long. Low rate and
high overlap makes for longer grains, and the reverse is also true.
Finally, pitch sets the playback speed for each grain, so the higher
you set it, the faster the “playhead” moves through the audio file, and
the more ground the grain can cover in its allotted life. The four-second
grains in the example above may play through what was originally a
much longer or shorter period in the source audio, depending on the
setting of pitch.
A grain can encompass an entire sample, or as little as a single-cycle
waveform. It’s up to you.
Overlapping Grains
When overlap is set above 1, each voice has multiple grains available.
They are created in a row, centered around the start point you choose
in the source audio. Each voice is spaced apart by the time value set
by rate. True to the title, as you add more grains, they increasingly
overlap as they play. At a rate of 1 and an overlap of 2, you have two
grains, each two seconds long, starting one second apart on the source
audio—so these two grains overlap by one second.
15
If we increase overlap, now we have four grains, each four seconds
long, overlapping one another by three seconds. The layered sounds
created by large numbers of overlapping grains are hot stuff for swoony
pads, chattering soundscapes, and anything else that benefits from
strength in numbers.
16
If the repeating changes are too slow to hear (unless you’re a whale),
you’re likely looking at a modulation signal, which is most useful for
affecting signals that you can hear. For example, if you modulate the
pitch of an oscillator with the output of an LFO (a modulation signal if
there ever was one), the oscillator’s pitch moves up and down in pro-
portion to the shape and amplitude of the LFO signal.
Every audible repeating tone has a timbre, or sound quality. High
A on a flute sounds different from the same note played on a violin,
or sung by a human, and so on. These sounds may share the same
root note (and thus, the same lowest repeating frequency) but there’s
a whole world of correlated frequencies (known as harmonics) above
that core frequency. The balance between these harmonics differs in
every sound, and that’s what determines its timbre.
We use two kinds of graphs to show signals in this book. Some are time-
domain graphs, akin to what you see on an oscilloscope. This type of
graph describes a signal’s value as a vertical movement over time, from
left to right. Zero is halfway up the graph, because most audible sig-
nals oscillate more or less equally above and below zero. Time-domain
graphs get their name from the fact that the x axis of the image, called
the domain in mathematics, represents time.
Another kind of picture is in the frequency domain. As you can
guess, the x axis in this kind of an image is frequency. A frequency-
domain image shows the frequencies that make up a sound at a partic-
ular instant in time. An unchanging timbre, in other words.
17
If you like, you can think of time in a frequency-domain image as
running through the z axis, out of the page, to make a 3D image of the
changing sound.
A frequency-domain picture of a sound shows all of its partials. Say-
ing that a sound has a partial at a given frequency, just means that part
of the sound is made up of a sine wave at that frequency. Every sound
can be described as a collection of changing partials over time. Each
partial is usually shown as a single vertical line at the given frequency.
The line’s height is that partial’s volume.
By comparing time-domain and frequency-domain pictures of the
same sounds, one can develop an intuition about what frequency com-
ponents are in a given time-domain picture, or vice versa. The two ways
of looking at sound are complementary—some qualities of sound are
much easier to see in one way than another.
A frequency response is another kind of signal graph you’ll see in this
manual. These pop up as diagrams in every high-end stereo ad. The
graphical EQ curve on your car stereo (if you have a car, and it has a
stereo, and the stereo has a graphical EQ) is another example.
Only linear filtering can be shown in a
Frequency responses are like frequency-domain images of signals,
frequency response graph. Linear filters
except they show the changes that will result to any signal from passing cannot create any new partials that are not
through a filtering process. They are shown as continuous lines over present in the input, they can only change
the volume of existing partials.
the frequency domain.
Kaivo was designed to be a flexible, inspiring tool for making un-
common timbres and artfully (or willfully artlessly) shaping them over
time. With practice, you can use these different kinds of sound-shapes
(such as time domain, frequency domain, and frequency response) to
help you think about synthesis, and that can only help you wring the
most out of this little green instrument.
18
2 Getting to Know Kaivo
This chapter shows you how Kaivo fits into your computer ecosystem,
and gives you a working knowledge of the various types of controls
you’ll find throughout. Some of Kaivo’s controls act just like you would
expect, but some have more personality than that.
20
There’s also a title at left, so you remember what plugin you’re using
and who made it. At the very right, the header shows your license in-
formation as well as the type of plugin running. This last information
can be handy to see at a glance, since Kaivo comes in multiple formats
including VST, AU, 32-bit and 64-bit.
1. KEY
The Key module receives the note and control signals you send
Kaivo over MIDI, and makes them available to the rest of Kaivo’s
devices. If you have experience with CV-controlled synths, you can
think of the Key module like a MIDI-CV converter box that outputs
digital signals.
2. SEQUENCER
3. LFO 2D
“LFO” stands for Low Frequency Oscillator, and just about every
synthesizer has one. “2D” stands for “two-dimensional,” which is
just what LFO 2D is. Whereas a “normal” LFO outputs a single
changing value, LFO 2D traces shapes in two dimensions and out-
puts two signals—one for the y axis, and one for the x axis. Shapes
from simple sine waves to circles, triangles, and even rain (!) are
available at glacial-to-audio rate ranges.
21
4. NOISE
5. ENVELOPE 1 and
6. ENVELOPE 2
7. PATCHER
The Patcher is the dark central strip in the plug-in window, sur-
rounded on all sides by the Modules. The patcher lets you connect
signals from the outputs of modules to the inputs of modules. It is
notable that multiple inputs can be fed from a single output, or mul-
tiple outputs to a single input. We think this is way more powerful
and easy to use than a ton of menus. New in Kaivo are the dedicated
TRIG inputs on several modules, allowing for discrete handling of
trigger signals.
22
8. GRANULATOR
9. GATE
If you’re familiar with modular synth jargon, the Gate mod-
ule can be described as as a VCA (Voltage Controlled Ampli-
fier/Attenuator) or an LPG (Low Pass Gate) depending on the mode
you choose. Either way, GATE works in concert with signal sources
like ENVELOPE 1 and LFO 2D to change the level (VCA mode) or the
low-frequency cutoff (LPG mode) of the synthesizer’s signal.
10. RESONATOR
One of the tasks we had while developing Kaivo was creating
some good-sounding physics equations that describe the effects of
passing vibrations through resonant objects (such as strings, pipes,
plates, and chambers). The RESONATOR module lets you apply
some of those equations to the sounds you make with GRANULA-
TOR, as well as make changes to the behavior, shape, tone, and pitch There is a separate resonator for each voice
of polyphony you use. They act somewhat
of these resonators.
independently, though they are connected
This not only opens a world of cool new tone colors, but actually to one another through the BODY module,
introduces a natural sense of variety as you play—a string played as you’ll see below.
while at rest sounds different than a string played while vibrating,
and the same is true here.
23
11. BODY
While a stringed instrument often has multiple strings (played
here by the RESONATOR module) it has but one Body, and this is
that—a two-dimensional (notice a theme here?) physics-based res-
onator module, specializing in chambers and plates. You can move
signals around within the model in an X/Y manner, shift things all
around timbrally, and modulate the snot out of it.
The pleasant physicality of the RESONATOR can be found here
as well. “Vibrations” coming from one of the voices vibrate the
body resonator, which in turn subtly stimulates the other voices’
resonators—just like you get when you really whack the ‘E’-string
on an acoustic guitar and keep your left hand off the neck.
12. OUTPUT
This is the final line of defense/manipulation the signal will pass
through before you can hear it. It includes a classic one-knob “Tilt”
EQ—turning the knob one way cuts bass and boosts treble, and the
other way, vice-versa. Also found here is a basic-but-useful Lim-
iter, to keep your unruly signals at bay, and the Oscilloscope, which
gives you visual feedback about the waves you’re making.
Presets
We labored heavily to make Kaivo simple and inviting to use, but flip-
ping through the preset sounds first is obviously a good way to hear
what Kaivo can do. Kaivo comes with both user and factory presets.
The user area is where you’ll keep your own creations, and where we
put contributions from other Kaivo users that we include.
24
The factory presets are meant to be a small and well-rounded set of
sounds that you’ll come back to often. The categories of factory presets
are:
• Kaivo keys: Tuned sounds that respond well to the keyboard. Some
verge toward acoustic sounds, while others are more synthetic.
• Kaivo pads: Tuned atmospherics and spacey sounds, with long at-
tacks and decays. Good for floating, flowing parts.
• Kaivo machines: Patches with ideas of their own. Some ignore key-
board input entirely, and some require host clock to run.
• Kaivo percussion: Patches that dole out rhythmic sounds with dis-
patch.
• Kaivo techniques: Simple patches that can help you learn how to use
Kaivo.
Using Dials
So, you’d like to go beyond the presets? Of course you would! Meet
dials. They’re found in every module. Like knobs on any piece of gear,
dials are mainly good for two things: manipulating signals and giving
you information. However, whereas most knobs inform you merely
about a single unchanging value they’ve been adjusted to, Kaivo’s dials
act as tiny signal viewers as well. This means they not only show you
the value you’ve adjusted them to, they also show you the values they’re
being pushed and pulled to by incoming modulation signals.
25
To modulate a dial’s signal, just make a connection to the dial’s signal
input in the patcher. Every signal that can be modulated has a signal
input next to it—this is how Kaivo can provide so much control with-
out using menus. Signal inputs are like small dials without displays,
or regular knobs, if you like. We’ll cover the patcher and signal inputs
thoroughly in a later section.
Dials as Controls
• Click in the dial’s track (the dark area within it) to set the value to
the click position. While still holding, drag up and down to adjust
the value.
• Hover over a dial and use the scroll wheel to fine-adjust the posi-
tion. At slow speeds, each click of the scroll wheel corresponds to
the smallest currently visible increment of the dial. Scrolling faster
accelerates the change.
• Click and drag vertically on a dial outside the track area to adjust
the dial from the current position.
Holding down the shift key before any of these motions are done
will modify the motion to be a fine adjustment. This allows particular
values to be set precisely.
26
Dials as Displays
Each dial controls a signal that can be modulated, and shows the most
recent sample values of that signal every 1/30th of a second. That
means that static or slow-moving modulation will cause the pointer to
stay still or move slowly back and forth.
A faster modulation signal will cause the pointer to show a wave-
form of the dial’s position under modulation. Modulation is shown
cumulatively, so a dial receiving more than one modulation signal will
show the sum of the incoming signals.
The dial’s display is just like a classic oscilloscope display, but
wrapped around the center of the dial in what are called polar coor-
dinates. Time moves outward from the center of the dial, and every
value of the signal is a straight line going outward from the center. So,
a constant value creates a straight-line image in the dial.
Whether a MIDI note is being sent to Kaivo or not, it always calcu-
lates as many voices as the voices dial in the KEY module is set to. When
animation is on, each voice is displayed as a separate line in every sig-
nal dial. So, if you set the number of voices to four, play a four-voice
chord and send just the steady pitch output of KEY to the GRANULA-
TOR pitch, you will see four straight lines in the pitch dial. And if you
send more complex modulations to the pitch dial, you will see multiple
scribbly lines, all animated.
If all the visual fireworks get to be too much, remember, you can
turn the animations off using the anim button in the header. But we
think you’ll come to find that the signal displays are useful indicators
of what’s going on throughout Kaivo.
27
Detents
Some dials, such as the GRANULATOR pitch, have detents. Detents are
useful default positions. For example, the pitch knob has a detent at an
A note in each octave (110Hz, 220 Hz, 440 Hz...) to keep the GRAN-
ULATOR tuned to MIDI notes. Normal use of these dials makes them
stop only on the detents. By shift-clicking a dial with detents, or hold-
ing down shift and dragging it, you can adjust it to any position in
between the detents.
Numeric Displays
All of Kaivo’s dials show their current value both in the (often chang-
ing!) pointer position, and in a numeric display below each control.
The numeric display does not show the modulated value, only the cen-
ter value that you have set on the dial itself. The numeric displays are We tried it the other way, and all those
not editable, so just get that crazy idea out of your head. flashing numbers were a bit much.
The num toggle in the header lets you turn off all the numerical dis-
plays, if you’d rather not see them.
Dial Scales
While many dials are linear (the change per degree from high to low
is constant), some dials have logarithmic scales where the change is
much larger as the value gets higher. This was done in cases in which
a logarithmic scale matches the changes you perceive better than a lin-
ear one, as in oscillator pitch, for example. In a logarithmic scale, equal
movements of the mouse in different positions on the dial will produce
differently-sized changes. For example, 55, 110, 220 and 440 Hertz are
all equally spaced apart on the rate dial in the GRANULATOR module.
28
Linear “Dials”
Some controls, such as those pertaining to X/Y position and Env 1 sus-
tain, made much more sense as linear bars rather than round dials. So
while calling them “dials” seems a little weird, everything about these
controls, both viewing and setting them, is the same as what we’ve just
gone over for the round dials, except for the geometry.
There’s not a lot to say here, only that switches need only be clicked to
be toggled (you’ll see the little dark switch move back and forth) and
the same goes for the buttons. Dark is off, bright is on.
29
There are no signals underneath the patcher that can flow up, but
signals from above the patcher can go to other modules on top. And
remember, modulation and audio signals are both the same thing, just
made up of different frequencies, so it’s perfectly fine to experiment by
connecting any output to any input.
Some signals are bipolar, meaning they can have negative as well as
positive values. Negative signals light up the outputs just like positive
signals. In other words, the absolute value of the signal controls the
output brightness.
Signal Outputs
These are the tiny circles on the edge of the Patcher; the places from
which all patch cords start. They light up to show the current value of
the signal.
You can use the LFO 2D to see this, even without using any patch
cables, as follows: turn the rate dial on LFO 2D to 1.0. Double-clicking
the dial will do the same thing, because 1.0 is the dial’s default value.
Now, turn the level dial up towards 1.0. You can see the LFO 2D signal
output lights pulsing more and more brightly.
These are the small dials bordering the Patcher; the places where all
patch cords end. Each signal input connects to just one dial. When
you connect a varying signal to an input, it modulates the dial’s signal
just as if you were moving the dial itself, but possibly at much faster
rates.
30
Signal inputs are also knobs that let you adjust the amount of mod-
ulation applied to the dial. They do not display incoming signals them-
selves, because you can always see the effect in the dial. Some inputs
are bipolar, meaning the value by which they multiply the signal can
be either positive or negative. Like the bigger dials, each signal input
dial has a default value, and returns to this value when double-clicked.
For example, the pitch inputs to the GRANULATOR and RES-
ONATOR have a default value that corresponds to standard tuning
when the pitch output from the KEY module is connected. Changing
this input dial makes nice music into weird tones very quickly. But by
double-clicking to restore the default value, normalcy can be quickly
restored if desired.
Trigger Inputs
31
Patching
To make a patch cord, drag from an output to an input. As you drag,
you’ll see a glowing line with an arrow at the end stretch from one to the
other. This shows the new connection you are making. This is a pretty
nifty thing, since such routing does not involve deciphering menus or
matrixes of things you can’t see—you only need to look at what’s on the
screen, which is everything. This ease of use is intended to keep Kaivo
feeling like an instrument; something you can grab, pull, and mess with
fluidly.
You can make patch connections while holding a note down, and
they will affect the currently playing note just as patching a hardware
modular would. By holding a note and touching a patch cord end to
various signal outputs, you can even get intermittent glitchy sounds
that are reminiscent of playing with a live electrical circuit, or circuit
bending.
32
Since they are controlled by the common patcher UI, and one set
of dials, the patch created for each voice is identical. But the signals
that flow through each voice’s patch can be very different. Thus, each
voice is separately controllable, in timbre, modulation, and all of its
parameters.
A patch cord always takes on the color of the module it is coming
from. This helps you see at a glance what is going where. To modify
a patch cord after it’s made, first you must select it. To select a single
cord, just click directly on it. When multiple cords are running over
the point you click, clicking repeatedly will rotate through all the cords
at that point. You can also select a group of cords in the patcher by
clicking on an empty part of the patcher, then dragging over multiple
cords.
33
the GATE‘s level input Each connection is clearly visible as an arrow
connecting a signal output to a signal input. When you play a key, the
KEY module translates the pitch of the MIDI note to a signal represent-
ing that pitch. The patch cord sends this signal to the GRANULATOR,
which is calibrated to play the appropriate pitch in response.
When a key is played and held down, the KEY module’s gate output
goes high and remains there until the key is released. This value is sent
as a signal through the other patch cord to the GATE module, which
lets through the signal from the GRANULATOR while the level signal is
held high.
Some output signals, such as the envelope outputs, send only positive
values, and are unipolar. Others, like the pitch output on the KEY mod-
ule, and the LFO 2D, swing both positive and negative. These are bipo-
lar. Negative and positive signal values follow all of the same rules that
real numbers do in algebra. For example, if a negative-valued signal is
34
multiplied by a negative signal input dial, its effect on the modulation
will be positive.
35
3 Kaivo: Module by Module
This chapter will take you on a more detailed tour of the various mod-
ules that compose Kaivo, one by one. A lot of features are covered here
in detail, and mainly in isolation. For more information on how to
bring them all together, see Chapter 4, “Patching for Fun and Profit.”
The Header
The header mainly deals with patch management and user interface op-
tions. All the things that don’t affect the sound, in other words. The big
drop-down menu in the middle displays the current patch name, and
lets you select patches from a hierarchical list. The menu is refreshed
each time you click on it, so new patches you save or import will show
up right away.
38
its saved value. This gets you back to a consistent starting point for the
next recording pass.
“Copy to Clipboard” and “Paste from Clipboard” let you copy the If you’re copying a patch you care about to
the clipboard, be sure it’s saved tradition-
current patch’s data to the clipboard, then paste it, either to the same
ally, as well. The clipboard is a busy place
instance of Kaivo (to reset all controls to their copied value), another on most computers, and it’d be a shame to
instance within the same set/session/whatever, or to a instance in a dif- lose a vital patch state because you took a
break to share a kitten photo online.
ferent set/session/whatever.
The second section of the menu displays your personal presets.
Some user presets, contributions from fellow Kaivo users, are installed
here by default. If you’re trying to copy your preset files from Win-
dows Explorer, be aware that even though it’s the recommended path
for user data, Windows makes this directory invisible by default. On Mac OS, user and factory patches are
The third section contains the factory patches installed by the Kaivo stored in (Your home directory)/Music
/Madrona Labs/Kaivo. On Windows 7,
installer. it’s in C:/AppData/Roaming.
Copy the patches you’d like to access with MIDI program changes
into the “MIDI Programs” folder you’ve created. The folder is scanned If you look at the MIDI Programs folder in
by Kaivo on startup, and the presets in it are assigned numbers, in al- Kaivo’s preset menu, you will see each pre-
set listed, followed by its MIDI program
phabetical order. change number.
39
To rearrange the programs, give them new names so they are in a
different alphabetical order. Send a program change to Kaivo that cor-
responds to your chosen patch, and Kaivo will dutifully switch to that
patch.
Display Options
The num button lets you toggle the numerical displays on and off for
all controls. Sometimes, you want to set adrift on waveguide bliss and
numbers will just mess up your headspace. Other times, you crave pre-
cision, and want them back. It’s up to you.
The anim button turns the signal dial animations on or off. While
always fun and often useful, these animations can be somewhat CPU
intensive, so you may want them off.
Kaivo’s display is fully vector-based, and thus can be resized freely,
to suit your needs or mood. Drag the handle on the lower-right corner
of the window to resize it. These options are saved globally, so they
won’t change until you decide to change
them again.
The right top corner shows the version of Kaivo you are running, as well
as your registration info. When you purchase a copy of Kaivo for your-
self, we encode your name and account information into it. This shows
to you and the world that you are supporting what we do—from our
end it means we have agreed to help you out with Kaivo if any problems
arise, and to maintain and improve it.
40
KEY
The KEY module receives all the MIDI data you send Kaivo’s way, and
turns it into useful control signals that you can route to other modules
with the Patcher.
Tuning Menu
The menu on the top selects the tuning table that Kaivo uses to map
incoming MIDI notes to specific frequencies. 12-equal, the default tun-
ing, is short for 12-tone equal temperament. It is the basis for most
modern Western music, but there are around a hundred others to try,
included with Kaivo. There are too many scales to describe here, but if
you open up the .scl file for a scale you’re interested in, you can read it
as text, and often find a bit more information that can lead to an article
on the subject. As a start, we’ve selected some of the public-domain
scales from the Scala archive and sorted them into the tuning menu
according to what musical culture they’re from.
You can also add tuning files in .scl format to the scales directory
yourself, or make your own using the free software Scala, available at
http://www.huygens-fokker.org/scala/.
Voice Controls
• voices: This control lets you set the number of voices of available
polyphony, from one to eight. Monophonic, duophonic, triphonic,
quadrophonic, octophonic. The choice is yours.
• bend: This control lets you set the amount that the pitch output
varies when MIDI pitch bend messages are received. It is calibrated
41
in semitones from zero to 24. Yes, 24-count-em-twenty-four semi-
tones, which really means a range of 48 (+- 24), or four octaves. Can
you handle such power? No? OK, then set it to 7, or something.
• unison: This button lets you toggle Unison mode on or off. Unison
mode combines all four voices into one monophonic voice, which
can make for some very big sounds. If multiple oscillators at ex-
actly the same pitch are added together, the result can sound quieter
than a single oscillator because the waveforms cancel each other out.
This is hardly ever what anyone wants, so Kaivo’s sound engine ap-
plies a small random frequency drift to the pitch of each oscillator
to maintain a nice, big sound.
• glide: This dial lets you bring a little or a lot of portamento (pitch
glide between notes) to the party. Set it to the amount of time (in
seconds) you wish Kaivo to take when sliding between notes.
• mod cc#: This control lets you select which MIDI continuous con-
troller signal to output through the Mod output. When set to 1, it
will use the Mod wheel. The subsequent two MIDI CCs above the
number you choose will drive the +1 and +2 outputs.
Outputs
• pitch: This output turns incoming MIDI notes into pitch signals
Kaivo can use. When MIDI note C4 is played, the pitch signal out- It’s like the 1.0 volt per octave standard of
some modular hardware, but there are no
put is 0. C5, an octave higher, outputs the value 1, and C3 outputs
actual volts involved. So we can call this
-1. Another 1 is added or subtracted for each octave up or down. just 1.0 per octave.
We chose this scaling so that keyboard input maps naturally to all
control signals.
42
In the patcher, any input dials that control pitches, such as GRAN-
ULATOR and RESONATOR pitch, are all calibrated so that when you
connect a pitch input and set the default scaling (double-click), they
will track the same frequencies or intervals according to the 1.0 per
octave standard.
• gate: This output sends a full-scale signal when a note is played, and
when the note ends, it stops. This output is akin to a gate output on
a CV/gate-enabled keyboard or MIDI converter. This signal is per-
fect for driving Trigger inputs (such as the trig input on Envelope
1 and 2), or for any instance where you’d like to control something
with the on/off state of incoming notes.
• vel: This output sends a signal proportional to the velocity of in-
coming MIDI notes. This signal maintains its value after each key
is released, allowing neat things like whacking on a drum pad at
different levels of velocity to set filter cutoff over time, and such.
• vox: This output sends a signal proportional to the number of each
voice: 0.0 for voice 1, 1.0 for voice 2, and so on. This can be used to
quickly make changes to the patch that are different for each voice,
such as panning all the voices across the stereo field, or setting each
sequencer to a different rate.
• after: This output sends polyphonic aftertouch data for each key, Channel aftertouch sends one value for
added to the channel aftertouch value. There’s nothing like routing the MIDI channel, and polyphonic (or
poly key pressure) sends a different value
aftertouch to a few parameters, and discovering a new dimension of for each key. Very few keyboards have
control over notes you’re already holding down! true polyphonic aftertouch, so we decided
these two kinds of aftertouch could share a
• mod: This output sends a continuously-variable control signal, set signal output. If you don’t have a keyboard
controller with aftertouch, you can still use
by whatever MIDI CC (continuous control) you’ve specified in the
the output in Kaivo by sending messages
mod cc# dial above. from a MIDI knob or fader controller.
43
• +1 and +2: These outputs send continuously-variable control signals,
set by the two subsequent MIDI CCs (continuous controls) above
the value you’ve specified in the mod cc# dial. For example, if the
mod cc# dial is set to 10, the +1 output responds to CC# 11, and the
+2 output responds to CC# 12.
SEQUENCER
44
Like analog hardware sequencers of the past, and unlike many digi-
tal instruments, Kaivo’s sequencer operates completely within the sig-
nal domain. So timing is rock-solid, and you can do fun things like
varying the speed up smoothly from normal tempos to audio rates.
Controls
• int / host: This switch lets you the choose the clock source that runs
the sequencer: either Kaivo’s internal, freely controllable clock, or
the main tempo in your host app. When this switch is set to host, the
sequences don’t move unless you press play in your host application.
• loop: This button toggles the sequencer’s looping on or off. When With loop turned off and a trigger signal
patched into the reset input, you can use
on, the sequence will loop indefinitely when played. When off, it
the sequencer as a multi-segment envelope
will play through its steps once, then stop on the last step until trig- generator. The envelope will restart every
gered again. time you play a note, play all the way
through at the speed selected by the rate
• steps: This dial controls the number of steps in the sequencer’s cy- dial, and then stop.
cle. Sending signals to its input dynamically changes the number of
steps in the cycle, with just the sort of mysterious results you might
expect. In “host” mode, sequencer rate slews
smoothly from ratio to ratio as you manip-
• rate/host ratio: This dial controls the rate of the sequencer’s inter- ulate (or modulate) the host ratio setting.
nal clock. When int/host is set to “int”, this dial lets you set the This introduces many intriguing rhythmic
possibilities that would be quite difficult to
sequencer’s rate in Hertz. When int/host is set to “host”, the dial lets sequence by hand.
you set the sequencer’s rate as a ratio of the host sequencer’s tempo.
By default (1/1) the sequencer advances in a 16th-note rhythm,
locked to host tempo. Settings above or below 1/1 let you advance
the sequencer at larger or smaller note values. You didn’t hear it
from us, but this control can be particularly fun to send modulation
signals to.
45
It may seem like the top end of the rate control, 13.75 Hz, is not
enough to really create audio-frequency signals at the output. But
note that this is the rate at which a 16-step cycle repeats; the du-
ration of each step stays the same when you change the number of
steps in the sequence. If you set the number of steps to 8, the se-
quence can repeat twice as fast: 27.5 Hz. And if you set steps to 2,
you get a two-step sequence repeating at 110 Hertz. Hey, that’s a low A note!
• reset: This isn’t a “control” per se, rather a trigger input that resets
the sequencer back to the first step when it receives a valid trig-
ger signal. This is quite useful for, say, rhythmically triggering fast
sequences, when using the SEQUENCER as a complex envelope gen-
erator, for restarting the envelope upon note input, as described in
the loop: blurb above.
• offset: This dial lets you move the sequence position forward a spec-
ified number of steps. If the total position is greater than 16, the
position will be wrapped to the beginning.
• width: This dial lets you set the pulse width of the triggers generated Internally, the sequencer generates a phase
by the selected step buttons in the Sequencer. signal that increases continuously from 0
to the number of steps, then wraps back
to 0. Within each integer step, if the frac-
• delays: The controls for the two delays are calibrated in steps. So, tional part is less than the pulse width, a 1
they do not set fixed times between events, but fixed offsets within is sent to the trigger output. Otherwise, a 0
the sequence that maintain their musical relationships even as the is sent.
46
• quant: The signal then travels to the quantizer, toggled on and off by
the quant button. When on, it constrains the control output to the
currently selected scale in the KEY module, which is helpful when
you’re using the sequencer to play a melody, for example.
• glide: This control lets you set the amount of glide (also called slew,
or portamento) applied to the quantized value signal, much like the
glide dial from the KEY module. The signal is then passed down to
the two value outputs. How glide works is actually a bit tricky. It’s
made using a direct calculation as follows:
glide sets the percentage of each step over which the value signal
is linearly mixed from the previous step value to the current step
value. The mix occurs while the fractional part of the step is less than
this percentage. When the fractional part is greater, the current step
value is output. This enables the output signals to be consistent as
rate is changed and the sequence is moved forwards and backwards.
• Preset wave buttons: The square, sine, and saw buttons are momen-
tary buttons that change all of the value outputs into one of 3 preset
shapes, especially useful when using the sequencer as a glorified
LFO. The ? button creates a randomized sequence. What will it be?
Only chance can say!
Outputs
The two blue outputs are trigger outputs. When the sequence step is
within the first part of a step selected by the width control, the trigger
value is 1, otherwise it is 0. The two orange outputs are value outputs.
They send out the values set by the multi-sliders for each step, as pro-
cessed by the range, quant, and glide controls.
47
Each type of output has a direct and a delayed version. Each de-
lay can be set independently—the controls are under delays, of course.
This arrangement lets you get four different streams of information out
of the sequencer, at constant distances apart that you can easily set.
LFO 2D
Controls
• X/Y display and X/Y offset sliders: This display shows the pattern
of movement currently specified by the chosen shape, offsets, rate,
and level values. Sliders to the left and bottom of the X/Y display
At slow rates, the position of each voice’s
let you shift the LFO’s output in X/Y space.
LFO output can be seen moving as small
“sparks.” At high rates, the sparks blend
• quant: When enabled, the X and Y outputs are quantized to match together to show a clear picture of the
the currently selected scale in the KEY module. shape being output.
48
• offset: Adds an temporal offset between voices as they travel ‘round
the LFO’s path. If you imagine the voices as cars on the same wind- This offset can be different for each voice,
when driven by a multi-voice source such
ing track (the pattern), each voice can drive a fixed distance behind
as the KEY module’s pitch, vel, or after
or in front of the other ones. outputs.
• rate: This dial adjusts the frequency of the LFO cycle. This dial can
accept control signals, even from LFO 2D’s own output.
• level: This dial controls the amount of signal sent to the patcher.
This dial has a control signal input, letting you do all kinds of neat
things, such as fading the LFO’s influence in and out or introduc-
ing frequency modulation via another control source, such as the
Sequencer or Envelopes.
• reset: This isn’t a “control” per se, rather a trigger input that resets
the LFO to its initial value when it receives a valid trigger signal.
NOISE
49
The noise output is based on a combination of Gaussian distribu-
tions, which are a fundamental kind of distribution in math and nature;
essentially the average of any kind of decision made multiple times—
for example, flipping a coin. Fun Fact: The shape of a Gaussian dis-
The graph in the NOISE module shows the probability distribution tribution is commonly called the bell
curve.
of the output signal. If only one sharp peak is shown, that means only
one value will ever come out: the X (left-to-right) location of that peak.
As you make the peak wider, the Y (top-to-bottom) value of the graph
describes the probability of the output being equal to the X location of
the graph.
Well, that was a bit of a mouthful. Suffice to say that experimen-
tation, especially with rate set low to show off the subtleties of the
movement, will tell you everything you need to know.
Controls
• peaks: Lets you set the number of Gaussian peaks in the distribu-
tion.
• falloff: More probability stuff! This lets you set the maximum prob-
ability of the peaks as they fall away from 0 on either side.
• offset: Lets you set the the value of the central peak.
• rate: Lets you set the rate at which the module generates values, and
the rate of the ramp to the next output value, if ramp is enabled.
50
• level: Lets you set the final noise output level.
• trig: Send trigger signals to this input to compute a new value when-
ever you like.
• auto: Enable this to compute new values at the rate set by the rate
dial. Disable it to trigger new values only when the trig input is
stimulated.
51
The x vel control on each envelope multiplies that envelope’s output
by the velocity of incoming MIDI notes. Typically this is used to make
notes louder when keys are hit harder, but with two velocity-sensitive
envelopes, there are many other qualities of sound that the velocity can
be applied to.
The graphs in each Envelope module represent the actual shape of
the envelope over time. They are scaled to match the total duration of
the envelope sequence. Envelopes have logarithmic attack and decay
curves, and those time settings are calibrated to correspond with the
time at which the output value has traveled approximately 60% of the
way to its destination.
The hold toggle on ENVELOPE 2 acts just like ENVELOPE 1’s sustain
control, except that it only has the values 1(on) and 0(off).
The repeat control on ENVELOPE 2 re-triggers the envelope at the
rate (times per second) you set. The envelope is always retriggered
when a trigger is received, and the repeat clock restarts from that in-
stant. In the graph, the section that repeats is shown as a dark bracket
below the envelope. If the hold toggle is turned on, repeat has no effect.
The delay control on ENVELOPE 2 lets you set the pause between
the incoming trigger and the start of the envelope’s attack. Sometimes
you want an envelope to wait to pounce, yes? This is useful for creating
complex envelope shapes such as flams, in combination with ENVE-
LOPE 1.
Finally, ENVELOPE 2’s x env1 button lets you multiply the output of
ENVELOPE 2 by the current value of ENVELOPE 1.
52
GRANULATOR
This module is the nerve center for sample playback and manipulation,
and the closest thing in function that Kaivo has to a traditional synth This is a functional run-down of the
GRANULATOR module. For more in-
oscillator. GRANULATOR takes the audio you load into it, and creates
depth information on granular synthesis
grains (smaller subsections of that audio) to play. If the grains are very and how GRANULATOR relates to it, see
small, they can be repeated quickly to create sustaining tones. Larger Chapter 1, Physi-who? Granu-what?
grains play larger portions of the audio.
The width of each grain is determined by the settings of the overlap
dial (which governs how many grains can be active at a time, per voice),
the rate dial (which sets the number of grains created per second, per
voice), and the pitch dial (which sets the playback speed and basic pitch
of each grain).
Each individual grain (of which there can be dozens active at a time)
can be set to play at a specific pitch, starting position, looping state, and
so on, even when they’re being created hundreds of times per second.
In this way, GRANULATOR acts a bit like a stack of samplers working
in tandem, all operating from the same source audio, each dealing with
that audio in its own distinct way. This power to determine the charac-
ter of each grain as they are created is in your hands, and at the mercy
of all modulators available in Kaivo.
In the grand scheme of this instrument, GRANULATOR is here both
to make sound all its own, and to strum and pluck the RESONATOR
and BODY models into action. Your choice of sounds and the way you
use them have MASSIVE effects on the feel and sound of the whole
biscuit, and there are no wrong moves (besides, perhaps, entirely silent
patches).
53
Waveform Display
The main display shows the waveform(s) of the currently loaded sound.
Multi-channel audio files are shown with a row for each channel. The
X-axis slider (horizontal) lets you set the center point in time from
which grains are created. Any incoming control data will move the Much like the “start” parameter in a
grain creation point fore or aft of that setting. traditional sampler.
The Y-axis slider (vertical) lets you set the center point in the ver-
tical stack of channels at which new grains will be placed. Incoming If you set the Y-axis between channels
with the slider or control input, Kaivo will
control data moves the grain creation point up or down from that set-
create new grains that play a mix of those
ting. If your audio file is mono, the Y-axis slider won’t do a thing. The two channels.
position of each currently active grain is shown as a small vertical line.
Controls
• X/Y offset sliders: As discussed above, these set the X/Y starting
points for the creation of new grains. X affects their place in time,
and Y affects their position in the stack of audio channels. If you
modulate these parameters, you will see the results of that modula-
tion as small white lines moving around near each slider. That way,
you always have a sense for what position the next grain will start
from.
• Source menu: This menu displays the name of the current sound. Sounds are stored on the hard disk in this
directory:
Click the menu to choose from the list of installed sounds, or to
import your own with the Import.. command. You can import any – Mac OS: (Your home di-
rectory)/Music/Madrona
sound you like, up to 8 seconds in length. Longer sounds will be Labs/Kaivo/Samples
truncated to 8 seconds, ruthlessly. – Windows: (Your home direc-
tory)/UserData
54
Keep in mind that any grains that are currently active when you
choose a new sound (or patch) will continue to play their portion of
the previously-loaded sound until they expire. This lets you seam-
lessly transition between sounds and patches as things play, or stack
up loads of different textures when making a granular cloud. For for more information on cloud-
making, see Chapter 4, Patching for Fun
• pitch: Lets you set the playback speed of grains as they’re created. and Profit.
When working with long grains, this dial and its inputs are the way
to set pitch. 0 is the natural pitch of the source audio. Labeled in oc-
taves above and below, from -3 to +3. The pitch dial has two inputs:
Exponential, for pitch control from the sequencer or keyboard, and
Linear, for linear FM. Yes, you can do FM synthesis with this
Granulator!
• +/- Lets you dial in a positive or negative-going amount of pitch
envelope—a mini-env that controls the pitch trajectory of the
GRANULATOR over time, as a linear ramp from 0 to the dial setting.
This control has a range of -2 to +2.
• trig: Grains are created automatically at the rate set by the rate dial.
If you set that dial to 0, grain production stops. thus halting the pro-
duction of new grains) you can trigger the creation of a new grain
by patching a trigger signal to this input. A brand-spanking new
grain is created whenever it receives a trigger. Each special, hand-
triggered grain also has a bit of attack added to it, so that note starts
remain crisp.
• rate: Sets the rate at which grains are created, from 0 - 880 times per
second. When this rate is 0, new grains are only created when a trig-
ger is received. When working with shorter grains (the kind that you
might want when using GRANULATOR to create tones, rather than
play long samples), the rate dial is the main way to set note pitch.
55
Toggle the nearby noise button on to modulate rate with its built-
in noise source. We find this comes in handy for making organic
sounds, and lets you reserve the NOISE module for more advanced
uses.
• x and y input dials: These provide offsets and precision scaling for
control inputs patched to X (time) and Y (channel mix) position.
• overlap: Lets you set the number of grains that can be active simul-
taneously. When overlapping is called for, multiple grain windows
are created, centered around the position of the X axis offset slider.
The length of each grain is expanded, multiplied by the overlap value
you set. All these now-overlapping grains sit next to one another,
spaced apart by the time value set with the rate dial.
With an overlap of 1 and a rate of 1, grains are created one at
a time, one second per grain. If we boost overlap up to 4, we now
have four grains at a time, each four seconds long, each positioned
one second from the next. The center of this group of grains is still
set with the X-axis offset slider. When overlap is set below 1, each
grain only plays for a fraction of its normal cycle according to the
dial setting. At high rates, this makes for cool choppy, ripping synth
sounds, and at low rates, it inserts rhythmic pauses into playback.
• pan: This lets you control the stereo position of new grains as they
are created. Each grain stays where it’s put in stereo once it exists,
so by varying pan over time, you can create some wonderful spatial
effects.
• follow: Enable this to make all of each voice’s grains shift their Enabling follow makes GRANULATOR
pitches when that voice is sent pitch data. Toggle it off, and grains act a bit more like a traditional oscillator.
When playing longer grains with follow
stick to their starting pitches until they expire. disabled, sounds tend to evolve, cloud
up, and shift subtly between pitches as
successive notes are played.
56
• sync: Enable this to snap new grains’ starting positions to the near-
est smooth-transition spot in the waveform. This helps to keep grain
playback in sync, especially when working with single-cycle oscil-
lator sounds. Disable it when grain synchrony is not important, or
you just don’t feel like it.
• wrap: Enable this to allow grains to loop through the source au-
dio continuously. When wrap is disabled, any new grains that are
created will expire if they reach the end of the audio file. Grains Creating grains with wrap enabled can lead
to a “stuck note” sort of condition. While
created while wrap is enabled will play indefinitely, looping through
they’ll eventually expire when replaced
the entire audio file, until they are replaced by new grains. by new grains, you can also turn overlap
down momentarily, to deactivate stray
grains.
GATE
when you flip the GATE into lopass mode, or play with the leak feature...
Controls
• level: This dial sets the static level of the Gate module’s level atten-
uator. Signals from the level patcher input modulate the level, as
well. For normal, keyboard-like playing, you’ll probably keep this
57
control at zero, so only incoming envelope signals triggered by key
presses affect the sound’s volume. For drones or reverse-enveloped
sounds, try raising it higher.
• leak: This sets the amount of simulated DC leakage that you want.
The more you turn it up, the more leakage occurs and the more low
end disappears. At high levels, obvious noise is added, for that ca-
pacitors set to vent panache. Higher settings can juice up your signal
nicely and help give them greater texture with which to stimulate the
RESONATOR and BODY models.
RESONATOR
This module acts a bit like the strings on our proverbial violin. Ev- This is a functional run-down of the
RESONATOR module. For more in-
ery voice Kaivo plays gets its own RESONATOR, which applies physics
depth information on physical modeling
equations that describe the real-time reaction of resonant materials to and how RESONATOR relates to it, see
incoming signal. With it, you can harness the character and behavior Chapter 1, Physi-who? Granu-what?
58
RESONATOR acts a bit like the filter in an analog synth, but can also
act like an oscillator, both adding and subtracting frequencies from the
input. We call this kind of behavior nonlinear, and we like it.
Controls
• Mode menu: Lets you select the resonator mode of your choice.
Choosing a mode loads the physical modeling goodies needed to
create the effect, and makes a few behind-the-scenes tweaks to the
brightness, sustain, and nonlin dials, tailoring their response to the
chosen mode. Each mode starts as a fairly literal model
of a physical sound. Then the controls
• nonlin: Lets you smoothly vary a combination of nonlinear effects give you ways to warp its response into
other natural or unnatural places. It’s all
that contribute to the “flavor” of each mode. just math, but some of that math produces
real-world responses, and some do not.
• in pos: Lets you set the position within the resonator model at which
it is excited by incoming audio. Changing this dial will produce a
shifting spectrum of resonant frequencies in the model.
• pitch: The pitch of each resonator can not only track the keyboard
or other control input, but can be modulated continuously and even
radically to produce effects reminiscent of FM synthesis. Applying
FM to the pitch of a physics equation? We’re really off in space, here.
• brightness: Lets you control how bright the model sounds by caus-
ing high frequencies to be damped more aggressively than lower
ones as you increase its value.
59
• sustain: Lets you set the time for which the model will “ring out”
after an input signal is applied. Higher settings exaggerate resonant
effects in sometimes-wonderful ways.
• wet and dry dials: These let you specify the amount of dry signal
(from the GATE module) and wet signal (from the RESONATOR ef-
fect) you wish to pass on to the BODY module.
RESONATOR Modes
• small chime: A small, bright, tuned piece of metal, with many in-
harmonic partials.
60
BODY
At first blush, the BODY module may remind you of the RESONATOR. This is a functional run-down of the
BODY module. For more in-depth in-
They’re both resonant effects based on physical models of vibrating
formation on physical modeling and
objects. However, if RESONATOR was a little like the strings on our vi- how BODY relates to it, see Chapter 1,
olin, BODY is the body. There’s just one of them (not one for each voice Physi-who? Granu-what?
like RESONATOR) and it specializes in chamber and plate resonances.
It’s here to bring all of the voices together in space.
Though the BODY models have names like “small wooden box” and
“metal plate” these descriptors only really describe each model when
played at default settings. Think of the names as a starting point for the
sounds each model can make—then twiddle on.
You can freely move the point at which each voice’s RESONATOR
model contacts the BODY model, in two dimensions (X and Y). Each A few folks reading this just looked at
part of the BODY model responds and resonates differently, much like the X/Y outputs of LFO 2D and the X/Y
inputs of BODY, and said, “Oooooh...”
striking a drumhead at the edge sounds different than at the center.
Controls
• x and y : Each RESONATOR is connected to the BODY at a set lo-
cation, where its energy feeds into the resonant model. Using the
x and y controls and display you can view and set each resonator’s
contact point, and modulate those positions endlessly.
• tone: Lets you shape the tonal response of the BODY model. Ranges
from dark and filtered, to full-range.
61
• pitch: Lets you shift the relative pitch of the body resonance, up or
down one octave. In the boring physical world, the pitch of the body
of an instrument doesn’t change based on the note being played, but
this one sure can. Subtle modulations of this dial can land you in a
very special spatial place.
• sustain: Lets you set the time for which the model will “ring out”
after an input signal is applied.
• wet and dry dials: Lets you specify the amount of “dry” signal (from
the RESONATOR module) and wet signal (from the BODY effect) Not so dry, is it?
you wish to pass on to the BODY module.
BODY Modes
• metal plate: A metal plate, supported at the center, with its edges
free to vibrate. A primitive cymbal.
OUTPUT
The Output module lets you put the finishing touches on your lovely
new signal before it gets sent out into the cruel, cruel world. Here, you’ll
find Kaivo’s lovable one-knob Tilt EQ, a limiter (to keep wild signals
in check), and a nifty little oscilloscope that shows you the waveforms
you’re making.
62
Controls
• tilt: This dial lets you change the overall tonal balance of the output
signal. Move it clockwise, and you’ll get increased treble and a cut
in bass. Move it counterclockwise, and you’ll do the opposite. This
simple EQ is often all you need to get that final balance just right.
• chorus: Lets you enable a quite delightful chorus effect, in two vari-
ations (or none at all).
• limit: Toggles the inbuilt limiter on and off, capping the output just
below clipping. Kaivo is designed to be a useful tool for working
producers and engineers who all have their own favorite solutions
for compressing and limiting digital signals within the computer. If
you’ve got a limiter you love the sound of, feel free to use it in lieu of
the stock limiter—or avoid limiting altogether by judiciously setting
the output level to avoid clipping.
63
4 Patching for Fun and Profit
So far, we’ve covered what this instrument is about, how to operate its
controls and settings, and the functions of its modules. This chapter This chapter assumes you have a basic
seeks to bring all that knowledge together, in the form of a few patching grasp of how to patch modules to one
another and manipulate Kaivo’s controls.
exercises that show you a few novel ways to make sound with Kaivo. Is For foundational information such as
this the final word on patching? Not in the least, but by the end we this, please see Chapter 2, Getting to Know
Kaivo.
hope you feel well-prepared to continue exploring on your own.
Before we get into heavy granular territory, it’ll be good to know how
to use GRANULATOR to play samples in a traditional sampler-like way.
Let’s string together a very simple patch:
2. Load the sound “arf!” (from the “Vocal” category) into GRANULA-
TOR. Move the X-offset slider all the way to the left, at the start of
the sample, so that playback begins there when a note is received. The following patch also comes as a preset
called “arf!” which can be found in the
“Kaivo Keys” category.
3. Patch the KEY module’s pitch output to GRANULATOR‘s exponen-
tial pitch input (the leftmost of the pair). This ensures that as note
data is received, the sample is played at the proper pitch.
4. Patch the KEY module’s gate output to GRANULATOR‘s trig input.
This triggers the creation of a new grain (and thus, playback of the
loaded sample) when a note is received.
5. Finally, patch KEY‘s gate output to the GATE module’s level input. This is the simplest way to open and close
This simply opens the GATE while a key is pressed, allowing sound the GATE with note input. In many cases,
you’ll get better control by using the gate
to pass through. output to trigger one of the Envelope
modules, and using the Env’s output to
6. Set the rate dial to 0. This ensures that sample playback starts only control the GATE module.
when a note is received, rather than being re-triggered continuously
as you may want when working with smaller grains.
Now, send Kaivo some MIDI notes, and you’ve got one fine barking
machine.
66
Waves of Uncertainty
to that set by rate, but the interval between grains varies, just enough
to keep things natural.
67
Three Envelopes
68
Calling in Reinforcements
Now, kindly turn RESONATOR’s wet dial up until you hear the resonant
model working. You’ll notice that the pitch of the model stays fairly
constant, besides a little texture-boosting frequency modulation com-
ing into its linear pitch input from NOISE. Now, try double-clicking on The linear pitch input responds smoothly
RESONATOR’s exponential pitch input dial. This will set the input to
to incoming signals, so yes, you can do
linear FM with RESONATOR!
its default setting, and you’ll soon hear RESONATOR following along
in pitch with GRANULATOR.
RESONATOR’s sustain dial is being swept back and forth by the X
signal from LFO 2D, changing the decay of the model over time. The
X and Y signals are 90 degrees out-of-phase but otherwise identical in
shape, so we wind up with two modulators on the same “path,” yet al-
ways at different points upon that path. This makes the sounds from
GRANULATOR and RESONATOR lengthen and shorten at identical
rates, simply out-of-step with one another. So, though the notes com-
ing from GRANULATOR are very short, the decay of the RESONATOR
model has ideas of its own. Although technically, I suppose those
Finally, try double-clicking on BODY’s wet dial to bring in the body “ideas” are really those of LFO 2D.
model. The sustain for the body model is also being modulated by the
X output from LFO 2D, yet if you look closely at both sustain dials, you’ll
see that as one is pushed upward, the other is pushed downward. This
is because we’ve set BODY’s sustain input dial at a negative value, and
RESONATOR’s at a positive one. As the X control signal enters both
inputs, they move in opposite directions in relation to the incoming
signal.
So, this just goes to show that while there is one main audio signal
path in Kaivo, there are many sources for sound (additive or shaping
others through FM/AM) , and each can be controlled separately.
69
Cloud of Crows
70
Also, try adjusting the input level dial for each parameter NOISE is
affecting. Negative, positive, lots or a little, it’s a good thing to get in
touch with how modules react to differing levels of signal input. You
never know what you might find.
We hope this book has given you a good picture of the resources avail-
able in Kaivo and some good inspiration to get going with them. We
could devote many more pages to detailed recipes for patch after patch,
but frankly this endeavor would seem counter to the spirit of an instru-
ment designed primarily to help you get the sounds out of your head
that are uniquely yours. So we won’t.
We hope we leave you with enough information to begin either a
methodical dialing-in of sounds you want, or an informed play that
leads to unexpected results. Remember that while not all connections
make sense in any given patch, none of them are harmful or “wrong,”
either. A signal is a signal. There is no difference between audio and
modulation signals, except in how they are used; some of the most in-
teresting sounds may come from blurring the distinctions between the
two categories. So feel free to let your experiments run in advance of
your understanding. When you hit on something amazing, you now
have the tools to save it, sort out what’s happening, identify a technique,
and develop on it. Happy patching!
71
A Frequently Asked Questions
Why “Kaivo?”
It’s the Finnish word for “well.”
Where is it? I installed it but I can’t find it in the Start Menu / Dock /
Applications.
Kaivo is a plug-in, in VST and Audio Units formats. To run it, you
need a VST or AU host on your computer. Please see the Introduction
to this manual for more info, and try asking on our web forums if you
need advice finding a host to use.
74
I bought one license for Kaivo. Can I use it on my Mac and my PC too?
Yes. Kaivo’s license is very simple, but different from some you may
have encountered. One purchase gives you a license for both Mac and
Windows. You are restricted to running Kaivo on one computer per li-
cense at any one time. If you want to run the software on more than one
computer at a time, you must buy a licensed copy for each computer.
75
I’ve got a Madrona Labs Soundplane controller. How do I set it up to
work with Kaivo?
Kaivo detects your Soundplane’s presence (provided you’ve got it
plugged in and set up), and automatically switches its control behavior
to make full use of the OSC/t3d control data Soundplane provides. Just
plug in, and play.
I’m not playing any notes, so why is Kaivo eating my CPU time?
We designed Kaivo as a very general-purpose sound-making machine
that behaves very much like an analog modular synthesizer. So Kaivo
has free-running oscillators that are updated whenever your DAW is
processing audio. Just like on a modular, you can simply turn the level
dial on the GATE up to hear the oscillator, even if no notes are playing.
The decay control on the gate module doesn’t seem to have any effect.
Why not?
The decay controls the time constant of the Vactrol emulation. This
is a special kind of low pass filter applied to the level input itself, not
the audio. So you probably won’t hear it if the signal controlling the
envelope already has a long decay. Try setting all the envelope controls
to their minimum values to get a very brief tick, patching that into the
76
level input, and adjusting the decay control. You should definitely hear
a difference then.
77