hardware and software for electronic music 

randy's Recent Posts

Thu, Jan 12, 2017, 09:04

I should make more Soundplane-specific examples. Right now the way I approach a mellow Soundplane patch is often to start with one of the "aalto keys" patches and then change the modulation over to Soundplane.

The Factory patches, specifically keys and pads, really represent my best efforts at making things musical and mellow.

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.

Tue, Jan 10, 2017, 15:18

I hear you.

Tue, Jan 10, 2017, 15:17

Kaivo takes up more CPU because of its DSP algorithms that are really intense. This is more expected. So I'm focusing on Aalto which should be having no problems on these computers.

Tue, Jan 03, 2017, 11:38

Aalto 1.8.1, Kaivo 1.3.1, Virta 1.3.1 updates

Hi all, and happy new year. i've just released a .1 update of all three plugins to address some things that were broken in the recent extensive updates. I think of these x.0.1 release as the little cut scene after the credits—now we're all sitting around eating shawarma or whatever and everything makes a bit more sense.

The updates are all on the product pages. I've changed the web site to explain the new license keys a bit better as well.


There was an installer glitch putting these up. If you are still having issues with Kaivo's body module not working properly, try downloading the 1.3.1 installer again. The file name will be
KaivoInstaller1.3.1.exe (no .zip).

Mon, Jan 09, 2017, 20:53

I've spent most of today running tests with Aalto on the MPB 13 and squinting at the results. Here are some observations.

There's no smoking gun. I thought maybe my code was creating a priority inversion or something else esoteric and bad on this hardware. But I'm not seeing that. Really, performance and behavior per core is a lot like my 15" MBP. With half the number of cores, glitches happen a lot more often.

Logic tends to glitch a lot more out of the gate than other hosts for two reasons. First, its default signal vector size is 128, which is fairly small. Second, it wants to redraw the screen more often than other DAWs, which is a big hit to the CPU. If I set Live's signal vector to 128, it behaves a lot like Logic on this machine.

All my plugins are based on a modular library internally that launches a lot of small DSP objects. It does seem like this particular architecture is doing worse on Mac OS Sierra for some reason, because the part of my software doing the dispatching of modules is itself taking up more time than it used to.

I could spend time tracking down exactly what changed, but regardless I have to make the code work well going forward, so I'm just going to focus on optimizing it. There's no quick fix but by combining some modules and getting rid of some to reduce the dispatch overhead, I should be able to make the plugins more efficient and update them soon.

Meanwhile, making the plugin window smaller and increasing the process buffer size to 256 or 512 should reduce glitches on Logic for users with 13" MacBook Pros.

Mon, Jan 09, 2017, 11:09

OK I see. Try dragging over the text to copy it instead. There is a problem with the clipboard icon thingie and Safari.

Mon, Jan 09, 2017, 10:43

Thanks @thetechnobear for your investigations—from what you say it looks like there is something I can configure better in the plugin's settings when it's a MIDI controlled effect.

Meanwhile it sounds like adding a stereo effect is an OK workaround? If I recall right, Logic has an M/S processor plugin that could do this without affecting the sound.

Mon, Jan 09, 2017, 10:37

@geremy, I haven't made time to look at that because I'm working full time on this more severe issue that is affecting a lot of people. Meanwhile I bet we can find you a good workaround but let's discuss it in the other thread, OK?

Sun, Jan 08, 2017, 11:41

When the plugin is not yet licensed it will say "click to paste license" in the upper right. Click there to paste the license.

Sat, Jan 07, 2017, 16:27

Updated the OS to the latest 10.12.2, no issues there.

Downloaded Logic Pro 10.2.4. Make an empty Software Instrument project. Add one instance of Aalto—and boom! crazy CPU spikes and glitches. I am seeing all the symptoms that @enparticular has been reporting. It's worse with the plugin window open, but plenty bad without it as well.

So now I'm downloading Xcode. I'm real curious about what's going on with these machines. It may take a little time to figure it out but I'll sort out an update when I do.

Sat, Jan 07, 2017, 14:28

I have the Early 2015 MacBook Pro on my desk now. It came with MacOS 10.12.1. I've done the following:

  • downloaded and installed Ableton Live
  • downloaded and installed Aalto

pulling up Ableton and making one instance of Aalto, the builtin patch "aalto default" comes up with four voices, taking 20% of CPU as measured in Live's meter. I can play some notes on the computer keyboard and I'm not getting glitches. Playing notes or resting, the meter is at 20-22%, which is what I would expect. Turning the number of voices down to 1, the meter is at 6–7%.

I'll try downloading Logic, updating the OS and doing some more tests, and see what I can do to reproduce the glitches.

In any case, I like this notebook alright. It has two USB-A ports and an escape key!

Fri, Jan 06, 2017, 09:43

You can use the "needle" or dial indicator to see the actual value after modulation. So if it's at 0 you won't see the indicator.

You can use the SEQ range to send greater values for more modulation. This will work to get LFO rate to 0 in this case.

In general if you want a thing to be 0, it's probably easier to set it at 0 and then modulate to something else, than to set to something else and modulate to 0.

Fri, Jan 06, 2017, 09:33

Yes. I made a mistake—Aalto is 1.8.1.

Thu, Jan 05, 2017, 14:23

So yesterday I was seeing these freezes. But today I can't reproduce them with the shipped 1.3.1 Kaivo. I don't have a good theory about this. I wonder if you could try downloading and installing the Kaivo 1.8.1 again, then restarting, to double check.

Thu, Jan 05, 2017, 07:26

It's still coming—hard to say when.

Fri, Dec 09, 2016, 19:10

Beta all the things!

After much wailing and gnashing of teeth, all the Madrona Labs plugins have been updated. Almost immediately after announcing all this work I unexpectedly had to go into panic mode finding a new location for the Labs. Now the new digs are found, the move is complete and we are in great shape, but it sure slowed things down a lot. So if you have been waiting on one of these fixes this Fall, let me thank you sincerely for your patience and support.

I'm putting up these beta installers for both Mac and Windows now, for any adventurers who want to try them. They incorporate the new licensing system, which is more like what you're probably used to from other plugin makers: the demo and release are the same exact plugin, and you turn the one into the other by entering a key. I will update the website to send out keys early next week. So until then, these betas are demo-mode only, with the lack of saving and the whooshing noise we al know and love.

The biggest improvements to all the plugins are :

  • new registration system
  • new software PLL host sync
  • UTF-8 compatibility for patch and registration names
  • fixed an issue where the protocol type (MIDI, MPE, OSC) was not loading if the plugin editor did not exist
  • fixed an issue where folder or patch names starting in numbers might not appear
  • code signed Mac OS installer for Gatekeeper compatibility
  • code signed Windows installer for security and good feels
  • fixed a drawing problem with multiple plugin windows
  • fixed a problem where the sequencer would restart when its parameters were changed
  • fixed a problem where sequencer voices would stop after a program change

Virta has some additional fixes.

Please give these puppies a try, if you have time, and if you were having issues before let me know if things improve.

Windows installers:

Mac installers:

Wed, Jan 04, 2017, 18:12

I'll check into this ASAP. I can get a freeze here again and i don't know why yet. If you notice a pattern, or can make a particular preset that always causes the problem, please let me know.

Wed, Jan 04, 2017, 18:10

Probably the easiest thing is just to use a tuning table inside Kaivo. You can make it in Scala format. It can be any arbitrary list of frequencies.

Wed, Jan 04, 2017, 11:47

welcome aboard @dawbakhos and thanks for the nice words, they brightened my day, truly.

Wed, Jan 04, 2017, 11:41

This is fixed in the new installer. If you are still having issues with Kaivo's body module not working properly, try downloading the 1.3.1 installer again. The file name will be
KaivoInstaller1.3.1.exe (no .zip).

Sat, Aug 01, 2015, 21:15

Aalto on Linnstrument, via MPE

And apparently the MPE implementation works! Thanks for sharing, Roger.

With Aalto 1.7, aftertouch is implemented in an MPE-compatible way—all of the factory Aalto patches will play expressively with Soundplane, LinnStrument, and other MPE-aware controllers over MIDI. And adding pressure, x or y control to any of your existing Aalto patches is just a virtual patch cable away. I’m excited to see more of the fruits of this cooperation.

Wed, Jan 04, 2017, 10:05

Hi, Kaivo 1.3.1 is online now and has the convert presets menu option. In 1.2 it's in the same place, in the main patch menu.

Please note if the presets have been moved to the new location you will need to move them back to ~/Library/Audio/Plug-Ins/Presets/Madrona Labs/Kaivo to get the preset converter to see them. I have heard one report that the old presets somehow made it to the new location without getting converted. I'm not sure what went on there, so if that happened to you, sorry for the inconvenience.

Wed, Jan 04, 2017, 09:55

Thanks for sharing your work! I've got no Ultranova here but it is more tempting now!

Wed, Jan 04, 2017, 09:54

@hyperscientist thanks again for jumping back in. I'm glad things are better. You may have seen in the "Retina MBP glitches" thread: I'm getting a MBP 12,1 this week so I expect things will improve more on this machine soon!

Wed, Jan 04, 2017, 00:12

oh derp, it looks like something went wrong with the installer—i'll take care of this in the morning.

Tue, Jan 03, 2017, 12:27

Fixed, thanks!

Tue, Jan 03, 2017, 10:25

I have the "convert presets" option restored in Kaivo 1.3 now and will be releasing it shortly.

Tue, Jan 03, 2017, 10:24

The second one is pretty different ! :-)

So... MIDI and MIDI MPE will indeed produce really different signals out of the KEY module, which in turn will make really different sounds. You can see that the mod outputs change their labels, because they turn from mod cc outputs into dedicated x and y outputs for MPE. So now the x and y information is going to the patch and it sounds completely different as a result.

You can consider the MIDI / MPE choice as a fundamental part of the patch that you probably won't change afterwards. Then you can work by either making MPE patches from the ground up, or switching a MIDI patch to MPE and then adding the modulation you want.

The same is true with OSC and the Soundplane inputs by the way. To get all the Soundplane data in the KEY module outputs are repurposed and so in general patches won't be compatible.

Nice playing BTW, I am interested to hear what you do with Linnstrument down the road.

Mon, Jan 02, 2017, 17:23

OK, I just ordered a refurbished 13" RMBP Early 2015 from Apple. I can pick it up in a few days and hopefully reproduce this then.