randy's Recent Posts

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.

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.

I hear you.

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.

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.

[EDIT]

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

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.

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

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.

@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?

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

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.

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!

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.

Yes. I made a mistake—Aalto is 1.8.1.

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.

It's still coming—hard to say when.

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.

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.

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

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

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.

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.

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

@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!

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

Fixed, thanks!

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

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.

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.

I bet it's just that mod cc # is defaulting to 2. If you change it to 1 it should work. Not sure how a default of 2 got in there so I'll change that.