Forums ← News ← Getting the most out of Kaivo

randy
Fri, Apr 18, 2014, 11:21

Kaivo makes a unique range of very realistic, physically tangible sounds. You can reach into its FDTD (finite-difference time-domain) models and touch them at different points, a playing experience that is tactile and physical. I've heard some great unsolicited feedback so far that I'm on the right track, stuff like: “beautiful and natural. Very strong sense of this being generated acoustically. A bit of musical uncanny valley.” And Kaivo is just getting rolling, with new models to come.

So far, so good. But as most people who have tried it know, Kaivo can be an absolute CPU hog. The FDTD models that sound so great are really demanding on the CPU. So I'm writing down some info about just why and how Kaivo crunches numbers that I hope will be interesting in its own right, and help you get more sounds out of your computer.

Always on

Like Aalto, and unlike most plugins, when you make an instance of Kaivo in a VST or AU host it is always running: all the algorithms are computing along at full tilt even though no sounds may be coming out. This feature lets you bring up the gate level manually or use Kaivo’s sequencer live without running the host, to play with sounds right in the plugin like you would on an analog modular system. This feature can be confusing if you’re not aware of it. I've had some feedback like “Kaivo had my CPU at 50% before I even played a note!” --- which sounds pretty scary, unless you realize that this is also the maximum it can use with the number of voices you have chosen.

The voices dial in the KEY section selects how many copies of Kaivo’s voice “circuitry” are running. So if you are stuck at 50% with 8 voices running, you can turn the voices dial down to 4 to get around half that CPU use. It won't be quite as low as half, because the BODY module is shared by all of the voices.

In short, reducing the number of voices is the surefire way to get sounds out of Kaivo on any recent computer. This may be obvious to some, but from feedback I've gotten I think it bears mentioning. A voice of Kaivo can be a very complex pad sound, or a rich solo sound like a frame drum with a moving contact point --- something you may only want one of in your mix anyway. Recall the first physical modeling synthesizers from Yamaha that were monophonic; history repeats itself.

Hard on the CPU, easy on RAM

Some people have asked if adding more RAM will help get more sounds out of Kaivo. One nice thing about physical modelling is that is hardly uses any RAM, compared to lots of other synthesis techniques. So while adding RAM may improve other aspects of your system such as the DAW and any sampler software, it will have little or no effect on Kaivo itself. With the exception of the granulator sources, all the sounds are calculated “in silico” --- lots and lots of computation on a very small amount of data.

One exception could be if you have added many sounds to the granulator’s source directory, in which case all of the source sounds will be loaded into RAM. Kaivo limits each source sound to eight seconds in length, making it unlikely that this will be a problem.

Slow graphics

The graphics in the plugin window may update slowly, which may seem wrong. But this is by design: when limited CPU resources are available, the graphics slow down on purpose to prevent audio glitches.

Like Aalto, Kaivo can make far more graphical demands on the system than a typical plugin with all its animated dials. Even though I use OpenGL do to the blitting (copying pixels to the screen), the dials are drawn in software using the CPU. This takes time away from other tasks like audio processing, and if the host is getting busy, it sensibly prioritizes audio over graphics. This will be especially noticeable if you've moved to a Mac with Retina Display, where Kaivo needs to push around four times the pixels as compared to an older machine.

I have a minor fix for the next Kaivo update that speeds up the output oscilloscope to match Aalto’s. In the future, I plan to move to drawing the graphics entirely in OpenGL, which should give a much smoother experience all around.

Turn off unused models

When either the resonators or the body is turned off, it does not use any CPU. Some of the factory patches don’t use any physical modeling at all! So if you want to play with just the granulator, select “none” for the resonators and body. There is a whole world of exploration to do with the granulator alone.

One way to get the most out of the granulator is by using the gate in “lopass” mode. In this mode the gate has a low pass filter (inspired by the mighty Buchla 292) engaged, which can give a lot of life and plonk and individuality to each voice.

The sounds come first

At Madrona Labs I’m taking on projects that are sonically exciting and technically demanding, with a very limited amount of resources. So it’s been my strategy to focus on sounds first, and release new projects as soon as they are both stable and showing off something new and exciting to the ears.

As I did with Aalto, I’ll optimize Kaivo more over time. One major change I plan to make in the future is to spread out the voices among the available computer cores. This should give Kaivo around twice as many voices (or half the CPU use) on any modern computer. 

I'm releasing a 1.1 update of Kaivo within a week. This won’t have multi-core processing, because that will take a lot of coding and testing. But it will have some minor CPU improvements and usability enhancements people requested, among them a much softer demo reminder sound.

So if you like Kaivo’s sounds but found the CPU use too high, please try some of these tips, and stay tuned for future versions.