Review- Kaivo by Madrona Labs
Bored with the same old VCO-VCA-VCF model for sound synthesis? Kaivo is a very different kind of beast, one which might give you lots of opportunities for exploring new sonic ground.
by Warren Burt, Jan. 2015
Physical Modelling – an Introduction
Physical modelling is a relatively new technique in the world of synthesis. What it involves is the simulation of the physical aspects of a sound producer, using mathematical equations to simulate each aspect of the sound maker. For example, consider a plucked guitar string. First there is a source of percussive energy, the pick or the fingernail. This excites a string, which vibrates. The sound of the vibrating string travels both through the bridge to the body of the instrument and also through the air into the sound box. The combination of the pluck, the vibrating string and the resonance of the sound box create the composite tone of the guitar. Although his process has some similarity to the traditional VCO-VCF-VCA patch of analog (or emulated analog) synthesis, it generally provides a different kind of control, as the various controls change aspects of a physical process, such as resonance, or brightness, rather than operating directly on aspects of a waveform.
Madrona Labs, in Seattle, has recently released Kaivo, a very interesting small synthesizer that combines granular synthesis and physical modelling in a very unique manner. Windows and Mac, 32 and 64-bit versions are available. Although the presets do have a couple of very realistic instrumental imitations, the main reason for Kaivo’s existence is to provide a playground for exploring the world of physical modelling. If you want to hear the astounding realism that physical modelling can produce, have a listen to the Modartt Pianoteq. But if you want to explore the wild world of timbral variations that physical modelling can produce, in a semi-modular setting, then you should run, not walk, to try out Kaivo.
Kaivo’s faceplate consists of a single screen, with no other screens. Except for pop-up menus, the single screen is all that’s needed. The screen is divided into three horizontal bands. In the top-most band are control modules – Key (MIDI) in, a Sequencer, a unique 2D LFO, a very flexible, programmable Noise source, and two different kinds of Envelopes. Below this is a blank area for patching the modules in the top row to the modules in the bottom row. And the bottom row consists of a Granulator module (the closest Kaivo comes to having an oscillator), a Gate (or a low pass filter), a Resonator (which models things like strings, chimes and springs), a Body (which models large and small wooden boxes, a metal plate and a frame drum), and an Output module. In general, modules in the top row provide control signals for modules in the bottom row (although there are exceptions to this). The synth can be triggered off by MIDI, or it can trigger itself off. It is a plug-in only synthesizer, so it needs to run in a host. Depending on the control implementation of your host, just about any control on the faceplate can be controlled by MIDI. I tried out Kaivo in Reaper (64-bit version) and AudioMulch (32-bit version), and in both hosts, a complete list of parameters was offered for MIDI control.
The Modules – Control
Looking at each of the modules individually will show you how unique Kaivo actually is. This is clearly not your average bread-n-butter analog synth emulation. The Key module provides MIDI input into the synth, as well as controls over various aspects of its operation. The first input is a Tuning list. Normally set to 12-equal (our normal tuning), Kaivo provides a selection of Scala-compatible .scl files to retune the synths, and one can easily add one’s own .scl files for custom tuning. For those interested in microtuning, however, it gets better. Each of the pitch inputs into each of the generation and resonation modules provides a scaling control. With a double-click, these controls normalize so that 12-equal, for example, provides just that. But one can scale these inputs in any way one desires, so that any amount of compression or expansion of a scale can be had.
Next is a Voices control. This is where you set the polyphony of your patch, from one to eight voices. Kaivo is a bit CPU hungry, however, so you may be limiting the polyphony of your patches based on CPU usage. With my ASUS i5 Laptop, there were a number of factory patches that used more than 100% of my CPU power, and I found myself dialing down the polyphony to be able to run some of these. Kaivo has a neat implementation of polyphony – if more than one-voice is set, then each of the control modules and generation and resonation modules is implemented individually for each voice. This means, for example, if you were running the sequencer to control pitches in a voice, the sequencers can be set to run out of sync for each different voice. So you can get individual voice variations with a single patch. More on this later.
Next to Voices is a Glide control, and under those are some LEDs to indicate which voices are playing, a unison control, a bend control with a settable range (up to +/- 24!), and Mod CC# control. This sets the number of which continuous controller is routed to the Mod output on the Key module. Next to that Mod output are two other outputs, labelled +1 and +2. These are outputs for the next two higher continuous controllers above the one selected with the Mod CC# control. The module provides pitch, gate, velocity, and aftertouch outputs, and “vox,” which sends a different value out for each polyphonic voice. This can be used, for example, to spread successive voices across a stereo space, since panning of each voice is possible with both the Granular oscillator, and the Resonator modules.
Next along the upper row of modules is a Sequencer, which is indeed a standard 16 step sequencer. But of course, with a number of interesting features. The controls for rate, number of steps and offset are all provided with scalable control inputs, so one can make a quite complex control pattern with these. The sequencer puts out both trigger pulse outputs and level outputs. There is a “quant” control next to the sliders. If this is checked, the sequencer output will be quantized to whatever Scala .scl tuning file is selected. There are also additional delayed outputs for both the trigger pulse and level outputs, and these delays can also be set. And, as mentioned, when the synth is set to polyphonic operation, each voice gets its own copy of the sequencer, which can work independently of the others. So from one simple sequencer, a variety of outputs can be obtained.
The same multiplicity of outputs also applies to the next two control sources “2D LFO” and “Noise.” The 2D LFO is a low frequency oscillator, but again, with a twist. It’s actually two LFOs, 90 degrees out of phase with each other. There are simple LFO shapes, such as a “circle” (a sine wave), but then there are more complex shapes which have no relation to any existing LFO shape, such as gaussian, knights, and rain. There is also, again, a “quant” switch, so that the output of the LFO can be scaled to the Scala .scl tuning file. Offset,rate and level all have scalable control inputs as well, and in a polyphonic patch, the module acts like separate LFOs, the output of each of which is offset from the first output by an amount set with the Offset control. The Noise module is a highly programmable random control source. You can set the shape of the probability distribution that generates your random signals – from very slow sub-audio to high rate audio. A “ramp” switch changes the output from glides to stepped, and again, offset, rate and level all have scalable control inputs, and, in a polyphonic patch, the module acts as an independent noise source for each individual voice.
Finally, there are two Envelope Generators, one a standard ADSR, and the other, a Repeat-Delay-Attack-Release module which can also act as another LFO. And again, all the parameters have scalable inputs, and all can act independently of each other when polyphony is greater than one.
This collection of control modules is very cleverly put together. If one module (say, Noise) is used to control aspects of another (say, the Sequencer), the result can be pretty sophisticated. And then, of course, if external MIDI control is added to any or all of the other parameters, the result can be very complex.
The Modules – Generators, Resonators
What makes Kaivo really unique, however, is the sound generating modules. These are very unusual in their makeup and their capabilities. Let’s look at each one individually.
First is the Granulator. This is as close as Kaivo comes to having a traditional oscillator. It can function that way, too, but there are many other things it can do as well. The Granulator selects bits of a pre-existing waveform with which to make its sound. If the “rate” is set low on this, one can hear the nature of the sample used. If the “rate” is set high, a small portion of the waveform becomes a repeating oscillator-like waveform. Both “pitch” of the grains, and the “rate” of their playback can be controlled independently. If one wants to use the Granulator as a normal pitch-controlled oscillator, then one can put a pitch control into both pitch and rate inputs, and set the input controls to their normal position by double-clicking them. Then the tone and the timbre change together. If, on the other hand, one wants to control only one of these, or, for example, set the scaling for pitch in the opposite way to the scaling for rate, one can get some quite splendid and unpredictable results. This makes a tone which goes “up” in pitch, as normal, but also “down” in timbre – so one is hearing a tone that both ascends and descends simultaneously. It’s quite a delicious sound, and one with no real counterpart in the so-called “real” world.
The samples the Granulator uses are a maximum of eight seconds long, but some of them are multi-track. There are X and Y controls (with scalable control inputs, of course) to allow you to wander about the sample, selecting bits to use. If, for example, the 2D LFO were used to control the X and Y inputs of the sample, one can get quite amazing morphing timbres, just by wandering around the sampled waveform. A wide range of samples is supplied with Kaivo, but of course, the real fun comes with supplying your own waveforms, which is quite easily done with the “Import” function. Each waveform provided by the Granulator can be made of just one slice of the sample, or it can be made of up to 16 bits of the waveform selected from the region of the waveform you supply. And additionally, there is a pan control, so each grain can be placed differently in stereo space.
So the Granulator can provide, just quite on its own, a wide range of timbres. But it’s when the resources of the Granulator are combined with the Resonator and the Body modules that the fun really begins.
The essence of physical modelling is that an impulse is put through a series of resonators that model various kinds of physical sound making objects. So the wide range of timbres produced by the Granulator, after being processed by a Gate, which can also act as a low pass filter, are then routed through a Resonator. This is a module which mimics the behavior of various sound-making objects. In Kaivo, these are a metal string, a nylon string and a gut string; small, medium and large chimes, and small and large springs. Each of these has controls which are labelled nonlin (a non-linear general control), in pos (where on the object is the sound routed in to it), pitch, brightness, pan, and sustain. Each of these, of course, has a scalable input control on it. And, as it says in the manual, while the basic settings of the module do indeed emulate the behavior of the physical object in question, when one begins to alter the controls, one begins to get sounds that don’t exist in any physical object. And, if you then apply changing control signals to the parameters, you get the equivalent of a physical object which is changing its shape and behavior in real-time, something which is clearly impossible in the real-world. As with all the other modules, a unique resonator modifies each voice of a polyphonic patch. In fact, the one exception to this is the final module in the chain, the Body.
The Body is the equivalent of, for example, the guitar’s sound box. All the individual voices (in a polyphonic patch) are added together, and processed by the resonances of the Body. In Kaivo, the kinds of Bodies provided are a large wooden box, a small wooden box, a metal plate, and a frame drum. Each of these is modelled as a two-dimensional object. The first controls, X and Y, specify what position on the object the sound is resonating. Then there are controls for nonlinearity, pitch, and sustain. Although, for example, in a real Body, there would only be one set of resonant frequencies, in Kaivo, the pitch of the Body can be modulated. As can all the other parameters. And just as with the resonator, if changing control signals are applied to these parameters, the results will literally be out of this world – sounds from a world where physical objects can change their shape and resonances in real-time. In short, normally physical modelling is used to make a kind of sonic realism. With Kaivo, one can go well beyond sonic realism, into the realm of sonic surrealism. The sound of one of Salvador Dali’s melting watches would be standard fare for Kaivo.
Both the Resonator and the Body have Wet/Dry controls, which enable one to adjust the amount of effect they have with the original granulated sound. Then there is a final Output module, which has a tilt equalizer, a simple chorus (two variations, and off), and a limiter, which can be switched off for the brave of heart.
Below you can see a detail of the faceplate of Granulator and Resonator of Kaivo. Note, in the Pitch controls of both modules, three lines, which show the current values of the parameter in this three-voice patch. Note also the multitrack sample window. Vertical lines show the places in the multi-track sample that waveforms are currently being derived from.
Kaivo is a wonderful tool for the sonic explorer. It has an excellent (and funny) manual. It has a unique kind of visualisation, where the setting of each knob as it is being controlled is displayed as changing lines. It can lead you into sonic places you never thought you’d be in. And it’s reasonably priced, as well. In the week or two I’ve been playing with it, in preparation for writing this review, I had a blast. It’s definitely going to have a very special place in my library of synthesizers. And if you decide to explore it, I think it will have a very special place in yours, as well.
Example of a patch using the Sequencer in Kaivo to control pitch, and the 2D LFO is used to control selection of grains and the Resonator’s contact point on the Body. AudioMulch is the host environment.
For more information or to purchase, go to: