Granular synthesis and physical modeling with This manual is released under the Creative Commons Attribution 3.0 Unported License. You may copy, distribute, transmit and adapt it, for any purpose, provided you include the following attribution: Kaivo and the Kaivo manual by Madrona Labs. http://madronalabs.com.

Version 1.3, December 2016. Written by George Cochrane and Randy Jones.

Illustrated by David Chandler.

Typeset in Adobe Minion using the TEX document processing system.

Any trademarks mentioned are the sole property of their respective owners. Such mention does not imply any endorsement of or associa- tion with Madrona Labs. Introduction

“The future evolution of virtual devices is less constrained than that of real devices.” –Julius O. Smith

Kaivo is a software instrument combining two powerful synthesis techniques (physical modeling and granular synthesis) in an easy-to- use semi-modular package. It’s laid out a bit like an acoustic instru- For more information on the theory be- ment; the GRANULATOR module acts like the player’s touch, exciting hind Kaivo, see Chapter 1, “Physi-who? Granu-what?” one or more tuned objects (here, the RESONATOR module, based on physical models of resonant objects) that come together in a central resonating body (the BODY module, also physics-based). This allows for a natural (or uncanny) sense of space, pleasing in- teractions between voices, and a ton of expressive potential—all traits in short supply in digital synthesis. The acoustic comparison begins to pale when you realize that your “touch” is really a granular sam- ple player with scads of options, and that the physical properties of the resonating modules are widely variable, and in real time. All together, this arrangement gives you room to create and manip- ulate with considerable freedom, while maintaining a pleasing sense of physical plausibility. Throw in some fresh new modulators and a dash of patching magic, and well... We’re excited. We sincerely hope that Kaivo excites you, too.

A Quick Overview

Kaivo’s interface has four main sections, from top to bottom:

• 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.

• The patcher section, where connections between modules are made.

• The audio section, where sound is created and processed.

Read The Fabulous Manual

If you’re new to all this, this manual is a great place to start. If you are familiar with modular synthesis, or have used Kaivo’s elder sibling Aalto, feel free to dive in and have fun. However, Kaivo has new some kinds of modules we can safely say you’ve never seen before. This manual is split into four sections:

• 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.

• Kaivo: Module by Module – A hands-on romp through the different parts of Kaivo, module by module.

• Patching for Fun and Profit – A starter course in putting Kaivo’s modules together to get musical results. Tips and tricks.

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- and the basics of signals and sound. eling and granular synthesis with Kaivo, 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 , 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 tial equations. In our case, creating such an equation lets us use the quantifiable in this fashion, but it sure 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

Perfectly modeling real-world happenings with math is quite the trick in itself, and utilizing such hyper-detailed models in real time has long been impractical, given the limitations of DSP chips and computer power in general. Given that, most physical modeling instruments so far have relied on a simplified technique known as Digital Waveguide Synthesis. Digital Waveguide Synthesis relies on the fact that some aspects of the behavior of acoustic waves can be satisfactorily simulated with sim- ple delays and filters, rather than more complex math.

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 . 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 in a way both akin to and distinct from traditional sample playback. of the info is purely functional, and some 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 start point in a generally linear fashion, maybe does a little from the magnetic playback head on a 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.

Of Grains and Windows

The tiny sections we dice audio into during granular synthesis are known as Grains. For all the talk of “chopping” and “dicing,”what we’re doing when we create a grain in digital granular synthesis is simply de- ciding, “This is the portion of my audio that this playhead will play, and this is the manner in which it will play.” Kaivo gives you a lot of manual control over these individual deci- sions (such as grain pitch, panning, looping, and so on) if you want it. If you want lots of nice variance but would rather automate things or leave them to chance, Kaivo’s variety of modulators (such as the SE- QUENCER, LFO 2D, and NOISE modules) can help make or vary those decisions for you, over time. Playing sections of audio willy-nilly would That portion of the audio that a grain is set to play is known as its normally land us with all sorts of pops and clicks and harsh transitions between over- window, which makes a lot of sense, because a grain is not a discrete lapping grains. To avoid this, the edges file, separate from the rest of the audio—it’s simply the region of that of each grain’s window slope downward smoothly in volume. You may not hear audio that we can “see” through that grain’s window. this when playing with smaller grains, but when they get larger, you’ll hear each grain fade in and out. A Grain’s Life

In much of synthesis, we’re used to controls operating on what’s hap- pening now—you twist the cutoff knob on a filter, and the filter cutoff

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 move GRANULATOR’s dials around, you’re telling it, “The next grain(s) follow option is enabled, which makes 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 atany 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!

Pitch vs. Rate

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 ), 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 audio playback speed and grain creation change smoothly control inputs, preset at a perfect input 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.

Fun with Signals

Kaivo is a digital instrument that plays and processes signals to make new sounds. So, what’s a signal? For starters, telephone transmissions are signals. Radio waves are signals. Those huffy notes that neighbors leave on your windshield are signals. In its purest definition, a signal is the measurable embodiment of something changing, over time. Most variable things in life change in multiple ways at once. Imag- ine trying to notate a dance step so that someone else could recreate it exactly. You’d need to find a way to measure and log the changes go- ing on (such as the position of each body part over time). Real-world signals are often like this: complex and multi-dimensional. Conversely, the signals we make with machines are often conve- niently one-dimensional. When we connect a computer to an audio interface to an amplifier and speaker, we can make sound by chang- ing a single number over time. This number tells the audio interface to output a specific voltage, which it passes to the amp, changing the position of the speaker cone, which moves the air. Our ears are incredibly sensitive to air pressure. Any tiny change can be heard, provided it is rapid enough. If the changes repeat the same shape over and over at a rate within the range of our hearing, we hear this shape as a consistent tone.

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.

Let’s Get Visual

Weuse 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. Frequency responses are like frequency-domain images of signals, Only linear filtering can be shown in a 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.

First Things First

Kaivo is a software plug-in that comes in both VST and AU formats. A plug-in does not run on its own. It runs within an applica- tion (known as a host or Digital Audio Workstation). Some good hosts The rest of this guide assumes that you’ve include (on Mac and Windows), Logic and Numerology got Kaivo up and running just fine. If you have problems with installing or (Mac), and FL Studio (Windows). All of these hosts provide easy ways operating Kaivo, please search our fo- to use synth plug-ins like Kaivo. rums at http://madronalabs.com or, if that fails, send us your questions at sup- Every host handles instruments a little differently, so for more in- [email protected]. We, and the formation on using instrument plug-ins in your own system, please see growing community of Kaivo users, are the user guide that came with your DAW. here to help you. An Annotated Map of Kaivo

This section gives a quick description of each of Kaivo’s modules, to give you a little familiarity before we go deep. For in-depth infor- mation on each module, control, and feature, see Chapter 3, “Kaivo: Module by Module.” We call the area at the top the header, maybe because it sounds bet- ter than “the top.” This area contains a nice big preset selection button / display with back and forward buttons for flipping through presets, and settings that affect the overall plugin.

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

The Sequencer module creates both arbitrary linear functions and patterns of rhythmic pulses over time. You can use it to create re- peating melodies, control changes, , or any combination thereof.

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

This module produces uncertain signals—some call it noise. Far from your average white-pink-whatever, NOISE provides an arm- load of ways to shape the probability distribution of the noise it produces, delivering a boatload of creative possibilities. All the way from drunken ambling to 1000–grit sheen, you’ll have fun with this one.

5. ENVELOPE 1 and

6. ENVELOPE 2

The two envelope modules create time-based control vectors, com- monly used to control volume or timbre as notes are struck and/or held. Envelope 1 is a fairly standard ADSR (Attack-Decay-Sustain- Release) type, but with fully mod-able ADR. Envelope 2 looks like a “simpler” AR (Attack-Release) model at first blush, but its Hold, Repeat and Delay functions hint at far greater possibilities.

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

This module is where much of Kaivo’s sound begins. It’s a sample- based granular sound source with a variety of modulation inputs and some crafty sonic tricks up its sleeve. Kaivo comes with a set of You can create and import multi-channel useful audio bits to load into the module, but things really start to audio files into Kaivo, giving you the abil- ity to move GRANULATOR‘s “playheads” get going when you import your own sounds. This module enables across them granular synthesis, traditional sample playback, and much more.

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 these resonators. of polyphony you use. They act somewhat 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.

• Kaivo textures: Complex, cinematic environments that evolve.

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 Tomodulate a dial’ssignal, just make a connection to the dial’ssignal 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

To set a dial’s position, you can do any of the following:

• 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.

• Double-click or command-click a dial to return it to its default value.

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.

Using Buttons and Switches

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.

Using the Patcher

The patcher is the grand connector. With it, you’ll bring together the tools Kaivo offers, to do really fun stuff. The patcher is both the place from which much of the joy of working with Kaivo springs, and the part of Kaivo most likely to confuse you at first. The Patcher is the large dark central area surrounded by all the mod- ules. It lets you patch signals from the outputs of modules to the inputs of modules by drawing patch cords. Each patch cord has an arrow on it that shows which way the signal is flowing. Note that though signals tend to flow down, from ENVELOPE 1 to GATE, for example, this isn’t always the case, because inputs can be found on both the top and the bottom of the patcher.

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.

Signal Inputs and Modulation

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

Kaivo’s sequencer, LFO, noise source, envelopes, and GRANULATOR can all accept trigger signals, and they do so through triangle-shaped inputs labeled “reset” or “trig.” You patch signals into these inputs just as described above. The big difference is that there is no dial to set the level of trigger inputs—a signal either triggers the intended response, or it doesn’t. For this reason, you’ll want to make sure that the sig- nals you patch into trigger inputs are appropriately “triggery,” whether they’re purpose-built trigger signals like the KEY module’s gate out- put or SEQUENCER‘s trigger outputs, or a particularly spiky audio or control signal.

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.

Multitudes Within Multitudes

Almost every module panel in Kaivo’s interface is really a controller for as many copies of the module as there are voices. And each voice has its own internal patcher. When a patch cord is made using the patcher UI, it is made simultaneously in the patcher within each voice. For ex- ample, if you connect the output of the LFO 2D to the GRANULATOR pitch, you are connecting LFO 2D of voice 1 to pitch of voice 1, LFO 2D of voice 2 to pitch of voice 2, and so on. The KEY module is the exception: it is more like one module with a signal output for each voice. When a note is played repeatedly, the KEY module sends the note signal to each voice’s patcher in turn to create polyphony.

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.

Removing or Repatching a Cable

When a cord is selected, its handles are visible. Handles appear as cir- cles at either end of the cord—you can drag them to move the ends. If multiple cords are selected starting or ending at the same place, clicking the handle there will move all of the selected cords. Typing the delete key should delete all the selected cords. You can also delete a patch cord by dragging either end to a place with no input or output. An X will appear instead of the handle at the end, and POOF. It’s gone. Again, the changes happen in real time for any currently held notes. If you create a new copy of Kaivo in your DAW, it will appear with the preset “default” selected: two patch cords that make a sim- ple, playable patch. The KEY module’s pitch output is connected to the pitch input of the GRANULATOR, and its gate output is connected to

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.

Mixing and Multing

If multiple cables go to a single input, the signals are mixed together. The sum of all these signals is then multiplied by the input dial value. If multiple cables go from one output to more than one destination, the signal has been multiplied, or multed. That’s not terribly important information, but it’s good to have your terminology straight, especially if you move on to other modular in- struments.

Unipolar vs. Bipolar

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.

Default Signal Routing

We’ve seen how easy it is to patch Kaivo’s modules together, but it’s important to know that some connections in Kaivo are pre-made for you. The GRANULATOR → GATE → RESONATOR → BODY → OUT- PUT signal path, consisting of all the modules below the patcher, is pre-routed. The dials between the RESONATOR, BODY, and OUTPUT modules let you set the wet/dry balance of the RESONATOR and BODY processes. The pre-patched modules below the patcher can be called the sound modules. While the modules above the patcher generate primarily in- audible control signals, the ones below are where the sounds you hear are made. Of course, this being Kaivo, there are exceptions to this rule, and you can find ways to use an envelope as an oscillator, or the GRAN- ULATOR as an LFO. You might visualize the bottom row of modules as the players in an orchestra, and the top row of modules as their conductor. Or wait, a row of conductors, each conducting different aspects of each section. Yeah, that works.

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.

The Patch Menu

The drop-down patch menu has three main sections. The first section holds the Copy, Paste, and Save commands. When you select “Copy to clipboard,”the current patch is saved in a text-only format that you can paste into other text documents. This lets you send a patch to a friend in an email, or post it on a forum, for example. “Paste from clipboard” does the reverse. “Save as version” lets you quickly save a new version of the currently loaded patch (with whatever tweaks you may have made since loading it) without having to enter a new patch name. The new patch is named after the current patch, followed by a revision number in brackets, in- crementing with each new version you save. “Save” permanently updates the current patch with any parameter changes you’ve made since loading the patch. This is, by definition, a bit risky, unless you’re sure of the changes you’ve made. In many cases, you’ll be safer using “Save as version” or “Save as...” when making in- cremental changes to an existing patch. “Save as...” brings up a file chooser from which you can create a new file to save the patch to, or choose an existing one to overwrite. Patches from the Audio Units version of Kaivo are saved in the .aupreset for- mat. This is a compressed XML format, compatible with Logic, Live and other Audio Units-friendly applications. Patches from the VST version of Kaivo are saved in the .mlpreset format. This is the same XML format, but uncompressed. “Revert to saved” returns all parameters in the currently loaded patch to their original, saved settings. You can also activate the Revert to Saved feature by sending MIDI program change 128 to Kaivo. This can be useful when recording multiple takes of Kaivo dial-twiddling as audio in Ableton Live. In the Clip View for the MIDI clip you’re working with, set the “Pgm” parameter to 128. Each time that MIDI clip is launched (with its launch button or a stop-and-start of the trans- port), Live sends program change 128 to Kaivo, reverting the patch to

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 current patch’s data to the clipboard, then paste it, either to the same the clipboard, be sure it’s saved tradition- 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.

Selecting Patches with the Magic of MIDI

If you’d like to be able to load patches by sending MIDI program changes to Kaivo, create a folder titled “MIDI Programs” (note the capitalization and the space between words) in one of the following locations, depending on your platform:

• Mac OS: (Your home directory)/Music/Madrona Labs/Virta

• Windows: (Your home directory)/AppData/Roaming/Madrona Labs/Virta

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.

Version and Registration

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 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 put is 0. C5, an octave higher, outputs the value 1, and C3 outputs some modular hardware, but there are no 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 by whatever MIDI CC (continuous control) you’ve specified in the controller with aftertouch, you can still use 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

The sequencer is a powerful control and trigger generator, capable of creating sequences of control signals for pitch, timbre, and other pa- rameters, and trigger pulses for doing things like firing envelopes. Un- like most other modules, the sequencer’s outputs are color-coded with two different colors, blue for triggers and orange for values, to remind you of their functions. Both the triggers and the value outputs are still just signals, however, compatible with all the signal inputs in Kaivo. Each of Kaivo’s voices has its own copy of the sequencer under the hood. In this section we’ll look at all of the controls for the sequencer, including ways to make each copy do something slightly different from the others using the patcher. By varying the rate or offset of each se- quencer copy, Kaivo can create some very complex textures without breaking a sweat. The big multi-slider / trigger button area is is where you create your sequences. Click anywhere in the multi-slider to set the control signal value output at each step. Drag across it to set multiple steps. Click any of the 16 buttons to fire a trigger pulse at that step. The row of round lights shows you which step the sequencer is currently on. When multiple voices are playing, and they are on different steps, you’ll see multiple lights making their way independently around the cycle.

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 on, the sequence will loop indefinitely when played. When off, it patched into the reset input, you can use 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 int/host sequencer’s rate in Hertz. When 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 , 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. sequencer’s rate changes. They vary from 0 to 8 in increments of 0.5 steps. If you want finer precision, hold the Shift key while dragging to set delay in increments of 0.1 steps.

• range: This dial multiplies the sequencer’s control output by a pos- itive or negative value, calibrated in semitones.

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

This module is a Low-Frequency Oscillator—one of the canonical modulation sources in synthesis. Practically every synth has an LFO, If you’re into math, you can think of but they don’t have a two-dimensional LFO! So what makes this LFO LFO 2D as a 2D function (x, y) with independent parameter t. so 2D? Whereas your average LFO outputs a single oscillating control signal, LFO 2D traces 2D shapes over time, and outputs two changing values—one for the Y axis, and one for the X axis.

Controls

• Menu: Select the LFO pattern from a variety of 2D shapes. These range from traditional LFO shapes translated into 2D space, to some pretty crazy-pops choices.

• 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 let you shift the LFO’s output in X/Y space. At slow rates, the position of each voice’s 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, ing track (the pattern), each voice can drive a fixed distance behind when driven by a multi-voice source such 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

This module produces uncertain signals—wild, pseudo-random thrash- ings that some call noise. The controls provide a myriad of ways to shape the probability distribution of that noise, which provides a myr- iad of modulation possibilities. While we’re used to hearing “noise” as a high-frequency wall of sound (really just a fast succession of random values), this module lets you set the rate at which it updates, and even slew between val- ues, which opens up a lot of neat possibilities at slower rates. Suddenly we get beautifully fluid, unpredictable control shapes, swooping from hither to thither. Just the move for those tape-like pitch fluctuations and subtle timbral monkeying about.

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.

• width: Lets you control the width of the peaks.

• ramp: Enable this option to smooth the transition between values when a new value is computed. When this option is disabled, the output jumps straight to the new value at each re-trigger.

• 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.

ENVELOPE 1 and ENVELOPE 2

Kaivo has two envelope generators (lucky us!). Each is designed to complement the other by doing some special things that the other one can’t do. Each has only one output: a time-varying signal that is trig- gered by an input signal. Typically an envelope is used to control the overall loudness of a note or some aspect of timbre as the note evolves. ENVELOPE 1 is an ADSR generator, so your old pals Attack, Decay, Sustain and Release each have their own control. A final Level control sets the envelope’s overall signal level, for more options when patching. The attack, decay and release dials have inputs for control signals. ENVELOPE 2 is a less-common envelope type—we could call it DAR, for Delay, Attack and Release. Envelope 2 also has a repeat time set- ting, which can turn it into a repeating LFO with a variable shape, or even an audio oscillator. The repeat, delay, attack, and release dials have inputs for control signals. Each envelope has a trigger input that lets you trigger the envelope with signals such as the KEY module’s gate output, or the sequencer’s trigger outputs... Or something trickier (so long as it’s “trigger-y”).

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 oscillator. GRANULATOR takes the audio you load into it, and creates GRANULATOR module. For more in- 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 control data moves the grain creation point up or down from that set- with the slider or control input, Kaivo will 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 Click the menu to choose from the list of installed sounds, or to directory: 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 created while wrap is enabled will play indefinitely, looping through to a “stuck note” sort of condition. While 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

The GATE module is a dynamic volume control, akin to the VCAs (Voltage Controlled Amplifiers) found in modular synths. Its takes its input from the GRANULATOR. Its output is sent to the RESONATOR. You send it control signals, typically envelopes, and it nicely increases and decreases the amount of input signals passed to the output. The control signals you send flow through an emulated vactrol with a vari- A vactrol is an electronic device, usually able decay, which opens up a world of cool, percussive envelopes. a pairing of an LED (or little bulb) and a photosensor. Its light-driven attenuation The GATE is the main tool used to sculpt the dynamic profile of lends many Low Pass Gates (such as our Kaivo’s sound, but it can have spectral effects as well. This happens GATE) their delicious dynamic response. 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.

• lopass: This toggle turns on low-pass gate (LPG) mode. In LPG mode, the gate’s gain-changing cell is replaced by a low-pass filter, the frequency of which is modulated by the level signal. The modu- lation afforded by the vactrol emulation makes percussive envelopes with a very particular sonic signature.

• decay: Sets the decay constant of the vactrol algorithm. At low decay settings, the GATE will follow incoming mod signals very snappily. At higher settings, the decay of the vactrol rings out more and more, thank goodness.

RESONATOR

This module acts a bit like the strings on our proverbial violin. Ev- This is a functional run-down of the ery voice Kaivo plays gets its own RESONATOR, which applies physics RESONATOR module. For more in- 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? of modeled strings, springs, pipes, and other things.

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.

• pan: Lets you precisely position the RESONATOR‘s output in the stereo field.

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

• metal string: A simple bright string, ideal for guitar-type sounds

• nylon string: Another string, but with a mellower sound.

• gut string: A mellow string with some nonlinear raunchiness.

• small chime: A small, bright, tuned piece of metal, with many in- harmonic partials.

• medium chime: A simple hanging bar, with harmonic partials. Tube-like character.

• large chime: A bigger, mellower metal chime, with lots of complex harmonics.

• small spring: A small, tuned sproingy thing.

• large spring: A big sproingy thing. Tuned. Sort of.

60 BODY

At first blush, the BODY module may remind you of the RESONATOR. This is a functional run-down of the They’re both resonant effects based on physical models of vibrating BODY module. For more in-depth in- 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.

• nonlin: Lets you smoothly introduce a combination of nonlinear effects that add a bit of sonic spice to the response of the current model.

• 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

• large wooden box: A guitar-sized wooden enclosure, filled with air.

• small wooden box: A smaller violin-sized wooden enclosure, also filled with air.

• metal plate: A metal plate, supported at the center, with its edges free to vibrate. A primitive cymbal.

• frame drum: A membrane, supported by a thin frame.

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.

For Whom the Dog Barks

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:

1. Load the patch “blank” (from the “Kaivo techniques” category).

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.

Pitch and Rate in Tandem

Now, what if you wanted to use this bark as the source for a continuous tone to play with? If you turn rate up to 55 or higher, suddenly you’ve got an oscillator-like pitched tone to play with, but you’ll notice that as you play notes, the timbre shifts, but the pitch of the tone stays steady. This is because at higher rate settings, rate governs the pitch that you hear. So far, you’ve got pitch data patched into the pitch dial, but not into rate, so the apparent pitch of the sound remains unchanged. Patch the pitch output into the exponential rate input as well, and you’ve got a granular sound that remains aligned in pitch and timbre across a broad range of notes.

66 Waves of Uncertainty

Kaivo seems to love sounds from nature—there’s just an endless array of timbres and dynamics to work with. Playing through such samples at low rate settings lets you take full advantage of their ever-shifting na- ture, but sometimes a little something extra is required to keep things sounding “natural.” Let’s open the patch “mechanical waves” (from For example, suddenly it’s no longer just a the “Kaivo techniques” category) and take a look at what’s going on. recording of wind through some trees—it’s multiple winds and multiple stands of Looking at the patch, we see that it comes with the “creek” sample trees, each behaving differently. loaded into GRANULATOR. We’re getting a nice multi-layered sound, because overlap is set to 8, meaning there are 8 simultaneous grains flowing through the sample at a time. You can tell there’s been a little effort applied to creating changes over time—LFO 2D has been called in to modulate the X/Y offsets for GRANULATOR, and to create wave-like volume swells with GATE. NOISE is patched to GRANULATOR‘s pan and pitch dials, scattering new grains across the stereo field, each at a slightly differing pitch. Still, regardless of the organic source material and all this modula- tion, there’s still a mechanical, chugging aspect to the sound you hear. That’s because grains are being created at a regular interval, set by rate. If only there were an easy way to make that interval less predictable... You could route NOISE or another modulator to the rate input, but we’ve included a noise source right inside of GRANULATOR for just this sort of occasion. Flip on the noise button (right next to the rate dial) to hear the beautiful uncertainty take hold. This leaves the modulator modules free to With noise engaged, the overall rate of grain creation stays similar be configured for other tasks. to that set by rate, but the interval between grains varies, just enough to keep things natural.

67 Three Envelopes

In a traditional subtractive synthesizer, it’s often easy to think of the tone-generating elements (such as oscillators and sample players) and the signal processing elements (VCAs, filters, effects) as two distinct camps. One side creates the core of the sound, and the other carves it into the desired shape. Kaivo strays from that model a bit. While the RESONATOR and BODY modules are technically signal processors, they often act like ad- ditional tone generators, spurred on by GRANULATOR’s signals. To that end, each of them has a sustain dial, offering a range of decay rates for the model, from short blips to near-drones. Perhaps it goes without saying that each So if GATE is applying volume shapes to GRANULATOR’s output, sustain dial has a corresponding signal input. and both RESONATOR and BODY have their own personal amplitude- shapers, we’re dealing with three separate-yet-related volume en- velopes. If that sounds intriguing, load up the preset “so many en- velopes” from the “Kaivo techniques” category. Whoa nelly! There’s quite a few patch cables strewn around in there. Let’s take a look at what’s going on: The SEQUENCER is providing a melody (which is patched into pitch and rate for GRANULATOR, as well is the exponential pitch input for RESONATOR) and a trigger pattern, which is triggering ENVELOPE 1. This patch derives its tempo from that of The envelope is controlling GATE, shaping the dynamics of the signal your host. If the sequence isn’t playing at first, press Play on your DAW. from GRANULATOR. If you look at ENVELOPE 1, you’ll see that the Y output from LFO 2D is slowly sweeping the envelope’s release back and forth, subtly shaping the lengths of each note over time. Snappy, aren’t they?

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

This final example is a brief one; a demonstration of one method for creating granular “clouds” with Kaivo. Open patch “cloud of crows” from the “Kaivo techniques” category, and prepare for a little Hitchcock-ian thrill. The source audio is a 4-channel sample of crows cawing. If you were to listen to that sample as a loop, it might seem chaotic at first, but a pattern would soon emerge—it’s just eight seconds of audio, after all. Not able to leave well enough alone, we’ve gone and patched an un- steady signal from NOISE all over the place—it’s setting the pitch, rate, X/Y offset, and pan of each new grain, and even adding a bit of queasi- ness to the BODY module, just for fun. This means that our eight second sound is now endlessly varied, with no discernible pattern. We’re getting continuous sound with no notes held down because we’ve left the GATE fully open. Having wrap enabled doesn’t hurt, ei- ther. In the case of long, multi-channel source audio like this, adding some X/Y offset motion lets us listen longer without sensing too much repetition. There are many valid views of this scene, and we’re going to hear them all. LFO 2D is set to languorously shift the center valueoffset ( ) and out- put amplitude (level) of NOISE around, subtly modulating everything that NOISE touches over time, for another layer of change. There’s not a lot to this patch, but we recommend you try discon- necting each of the cables coming from NOISE, one after the other, to hear what changes. Disconnect the cable from GRANULATOR pitch, and the crows suddenly seem more consistent in size. Disconnect it from GRANULATOR pan and away goes the sense of space.

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 getin touch with how modules react to differing levels of signal input. You never know what you might find.

Putting it All Together

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.

Is Kaivo supposed to sound like this? Probably, unless you hear an abrasive series of glitches. Here’s a good way to check that Kaivo is functioning well: Select the “default” patch from the factory section of the patch menu. Change the voices con- trol if needed to get all four voices running. Now, turn the level dial in the GATE module up a bit. You should hear a mellow, slowly shifting drone. If there are glitches in the audio, they will be readily apparent. I hear the glitches, how do I get rid of them? The most common thing that needs adjustment is buffer size. Your host gives you a control somewhere over the size of the small buffers it fills up with calculations, over and over, to generate a steady stream of sound. If this buffer is too small, the calculation takes much longer, and even the fastest computer won’t be able to keep up. Try turning the buffer size up to some number greater than 256. This should let Kaivo run as fast as possible. In Ableton Live, the buffer size control is un- der “Preferences... / Audio / Buffer Size.” For other hosts, it’s probably something similar: please check your host’s manual for details. If the buffer size made no difference, it’s possible that your computer is not fast enough to run all of Kaivo’s voices. You can try turning the voices control down to 1, and turning up the audio again on the default patch. If this helps, then it’s almost certainly the case that CPU power is the issue. You can try adding voices one by one to hear where the problems come up. If you are running the 64-bit version of Kaivo in a 64-bit VST or AU host, you can expect to get around a 10% performance boost compared to the 32-bit version. Finally, turning off animations with the anim control or hiding the Kaivo interface altogether will increase performance, for those times you are trying to squeeze out that last few percent and get your mix- down to happen. Performance is affected by many, many variables including choice of audio interface, drivers, host application and OS version. We can only give guidelines here. To tap into the collective wisdom of Kaivo users on this topic, visit the ongoing discussions at madronalabs.com.

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.

How does your copy protection work? Kaivo does not have copy protection. Copy protection always creates hassles for legitimate users. Our approach is different. What we do is stamp each copy of Kaivo securely with user data, consisting of your name and a unique ID. This is your own copy of Kaivo, and you are free to make as many copies as you want. But do so carefully. When you run a copy, it may unobtrusively check to ensure that this data is intact and no other copies with the same user data are running anywhere. Since another copy running somewhere else could stop yours from running, we assume you will be careful about where your watermarked copies go. We imagine, for example, that you might put a copy on your studio machine as well as your home machine, or on a USB stick to take to a mixdown session.

Can I load presets made in Kaivo 1.0 in version 1.2 or 1.3? Yes. Kaivo presets will always be compatible with future versions, even as we add controls and features. On the other hand, if you try to load newer presets in an older ver- sion of Kaivo, you will get errors.

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 . 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.

Kaivo seems to be stuck on, how can I get it to stop? Is the level dial on the GATE module turned up to a nonzero value? That’s usually the problem. If not, maybe there’s a stuck note, even though we haven’t heard one for a long time. Try turning the voices control to reset the KEY module.

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.

How do I make Kaivo’s dials change in response to MIDI data? The KEY module’s mod and +1 and +2 outputs turns MIDI continu- ous controllers into continuous signals, which can then be sent to any destination in the patcher. This is a very flexible way of using MIDI controller data, because you can route and scale it quickly as a sig- nal. The mod cc# dial sets the control number sent to the Mod output, and the +1 and +2 outputs are driven by the two subsequent MIDI CCs above that setting. Kaivo does not provide its own interface for changing a dial’s posi- tion directly from a MIDI controller, often referred to as MIDI learn. Most plug-in hosts, such as Live, Logic and Numerology, provide good interfaces for MIDI learn that work well with Kaivo. Please consult the manual for your host for details.

77