hardware and software for electronic music 
Fri, Apr 18, 2014, 11:29

Getting the most out of Kaivo

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.

Fri, Apr 25, 2014, 11:24

Thanks Randy for taking the time to publish some tips, very helpful.

Id also add, that different VST/AU hosts seem to play abit of a part as well, also running in a separate host will allow OSX to do load balancing between your main host/DAW and the host with Kaivo.

Looking forward to 1.1 :)

one thing, I would like to 'streamline' is the importing of samples.
I don't really have a solution... and perhaps its just that I don't get on with Audacity, and none of my DAWs can deal with 4ch wav files :)
Ideally, perhaps it would be nice for kaivo to be able to 'capture' the sample, through audio in,
(it might have to be done in 2 steps to get the 4 channels).
Alternative, being able to specify 2x2ch, which would be easy to create from any daw.

... this has been one reason Ive not been playing with too many of my own samples, as its takes me a bit too long to get them from synth -> kaivo.

Sat, Apr 26, 2014, 00:07

Hi Thetechnobear, thanks for the comments.

I have been wrestling with the sample Import window for a little while now. In some form it will definitely make it into the 1.1 release. This first version will just let you quickly copy other kinds of sound files to WAV format where they belong and clip them to 8 seconds. In future versions I'd love to add the capability to combine tracks from multiple files.

I hear you about getting sounds in quickly. You can drag and drop into the import window, which should help.

Sun, Apr 27, 2014, 13:38

As I said, it may just be my unfamiliarity with Audacity (and its ancient windows like UI :)).

What Ive been trying to do is take samples from my synth, layer them up, and chuck into Kaivo to play with - getting them into Kaivo is the easy bit, its cropping/editing in audacity that is the time consuming bit (for me).

Given, I've little idea what will work well as a sample, Im just trying to streamline this, and see what works :)

perhaps eventually I will grow to love Audacity ;)

Wed, May 14, 2014, 08:48

can't wait. I hope I can use it finally

Mon, Oct 05, 2015, 16:41

Soooo, a year and a half after... multicore and CPU consumption improvements in Kaivo when, Randy? :)

Tue, Oct 06, 2015, 09:04

The 1.2 update, coming within a week, will have some CPU improvements in the various modules as well as graphics optimizations. I'll be looking at the multicore work after my next plugin Virta is released.

Wed, Oct 07, 2015, 06:24

Cool, thanks for the info :)

Wed, Dec 16, 2015, 22:49

This item about turning the number of voices down should be in BOLD CAPITAL LETTERS IN THE READ ME file.


It certainly makes the difference, esp with kaivo.

I also wish you could describe how to record it properly, as an example, some render settings do a good job even if the audio in real time is distorting from CPU burden. Reaper offline idle seems to work. I will do more experiments. I wish this advice could be available to the community.

Wed, Dec 30, 2015, 10:47

I also wish you could describe how to record it properly, as an example, some render settings do a good job even if the audio in real time is distorting from CPU burden. Reaper offline idle seems to work. I will do more experiments. I wish this advice could be available to the community.

Sorry, I just saw this post. It's hard to offer advice about recording because it depends almost entirely on the DAW, and there are a lot of different ones. Please post about your experiments in the software forum and hopefully we can build up some knowledge about Reaper use over time. I don't think I have a lot of users on Reaper but from what I have heard it is a good alternative to have.

Mon, Feb 08, 2016, 05:55

Any update on when we can expect more Resonator/Space models in Kaivo?

Mon, Feb 08, 2016, 07:44

It will be a fun thing to work on after I finish Virta.

Are there are any new kinds models you can think of that you would want?

Tue, Feb 09, 2016, 23:01

Hello. I'd like to see/hear tube models. Opened at both ends, closed at one end... Conical? If that's possible. I would like to be able to make ominous fog/train/ship horn sounds. Honk honk.

Fri, Feb 12, 2016, 11:08

honk honk.

Wed, Mar 30, 2016, 20:33

I've been running the demo of Kaivo. I love the concept and love the sounds, a lot, really.
But running on Windows 10, in Bitwig, with a reasonable i7 (most softsynths are no problem) the CPU usage is just too much, even running one voice. Crackling and stuttering to the extent that it's just not useable. Turning off the resonators makes it almost useable, but I love the resonators, they're a bit part of the appeal.

What I'm saying is: I promise to buy a license if you can substantially improve the CPU performance on Windows. I'll subscribe to the mailing list so I'll know if this ever happens.

Thu, Mar 31, 2016, 02:02

Hi brisket, I have an i5 4590 and use Bitwig and Win10 and it works fine for me (though there is a bug with stuck notes) even with 8 voices and complex patches usually only 50% or so on DSP meter in Bitwig. I believe an i7 should be more than enough for Kaivo especially if it is a recent one. Maybe try increasing your buffer size, it seems to help with the stuck note bug as well.

Thu, Sep 08, 2016, 22:32

I have an i7 4790 w/ Windows 10 and Bitwig, using Kaivo I have to up the buffers to 1024, normally I'm at 512. My audio interface is the Apollo Twin USB. With the buffers this high it minimizes the clipping, but not ideal. On my i7 Surface Book there are a lot of presets that do work, but something like Box of Chimes kills it :) Guess I'll just have to consider upgrading to one of Intel's 6000 series i7's sooner than I'd hoped for. Randy, you said something about a year ago about Kaivo going Multi-core, any news on that development?

Fri, Sep 09, 2016, 10:06

The apparent CPU usage might be much better with this next version because i fixed some memory access problems that might be affecting some systems. After this, yes I do plan to work on multicore.

I have a Windows 10 machine set up here and I'm still trying to fix the stuck notes problem.

Thu, Jan 12, 2017, 02:17

All good news to my brainium. After decades of Mac i'm looking at buying a Surface Pro, just for live performance with all of the Madrona Things and also for my illustration job.

Has anyone out there had any experience with the entry level Surface Pro and Kavio? Reliable?