randy's Recent Posts

I've just posted a public beta of Vutu for MacOS. Vutu is the sound analysis program for the upcoming Sumu synthesizer.

A Vutu quickstart video is also online now. I haven't had a chance to write any better documentation yet, and I"m not sure I will before I get the Sumu beta out. However, Vutu in its current form is pretty simple anyway, and most of what you need to know you can find out by fooling around with the dials and listening and looking.

Vutu analyzes sounds using Loris, developed by Kelly Fitz and Lippold Haken at the CERL Sound Group. A detailed intro to Loris is available on Hakenaudio.com: Current Research in Real-time Sound Morphing More publications are also linked from the CERL Sound Group Loris page. Loris is distributed under the GNU General Public License (GPL) and thus, Vutu is also. Vutu's source is available on Github.

Vutu is built on a cross-platform GUI framework I developed called mlvg. Compiling it for Windows and Linux should therefore be a reasonably easy task, but I know there will be a bunch of details to iron out, so I'm not taking that on until after I can make a Sumu beta.

That was a lot of info and links. Why would you want to play with Vutu right now? Some reasons might be:

  • You want to get started making your own sound bank for Sumu.
  • You have to try out the newest audio software, whatever it is, and this was just released today.
  • You enjoy looking at bandwidth-enhanced partials and hearing odd noises.

Each voice of Sumu will be able to play back 64 bandwidth-enhanced partials simultaneously. A bandwidth-enhanced partial is basically a single sine wave, modulated with noise. So at any given instant of time, in addition to frequency, amplitude and phase, it also has a bandwidth, or noisiness. Making sounds out of such partials is a very powerful technique, and I think it's pretty easy to grasp. What's been difficult about additive synthesis is the large amount of control data that's needed. How do you generate it all? My answer in Sumu is to use the familiar patchable interface, but extended so that each patch cord carries separate signals for each partial. This allows sound design in a playful, exploratory way that should be familiar to any modular user. Honestly I think it will be fun as hell.

Thanks to Kelly Fitz and Lippold Haken for creating and sharing Loris. Thanks also to Greg Wuller for helping me get going with the Loris source code, and for utu, which became Vutu. Utu is a Finnish word for "mist" or "fog", like Sumu. Vutu is short for visual utu.

Vutu requirements

A Metal-capable Mac running MacOS 10.14 (Mojave) or greater.
Vutu is native for Intel and Apple Silicon.
Since it's an analyzer and not a real-time program (except for playing the results), CPU doesn't really matter.

Works for me. Did you save the link or something? It will change whenever the version changes.

There's no need to sign up for the beta, I'll announce when it's available via the website.

Sumu voices: I'm not totally sure!

Sumu is an additive instrument that I've had in the works for a long time. Now that it's nearing completion and heading towards a public beta soon I'm going to break with the way I normally do things and put some detailed info out ahead of its release.

Sumu preview

Sumu is another semi-modular instrument. It shares the general appearance of its patcher-in-the-center design with Aalto, Kaivo and Virta. As you can see, it's on the more complex end of the spectrum like Kaivo. Everything is visible at once and there are no tabs or menu pages to navigate, which suits the way I like to program a synthesizer tweaking a little something here, a little something there.

In the same way that Kaivo brought two different and compatible kinds of synthesis together, combining granular synthesis with physical modeling, Sumu combines advanced additive synthesis with FM synthesis.

What's most different about Sumu compared to my other synths is that the signals in the patcher are not just one channel of data, but 64—one for each partial in a sound! By keeping all these channels of data independent and still using the same patching interface, Sumu offers a very usable entry point into additive synthesis, and a range of musical possibilities that have only been approachable with high-end or academic tools or just coding everything yourself... until now.

Sumu oscillators

Each of Sumu's oscillators is the simplest possible kind of FM:a single carrier+modulator pair. And the modulator can produce a variable amount of noise, which like the modulation ratio and depth can be controlled individually per oscillator. In a single voice there are 64 such pairs. Obviously a lot of sounds are possible with this setup—in fact, with the right parameters varying appropriately we can reproduce any musical sound very faithfully with this kind of oscillator bank.

Sumu partials

There are a few ways of generating all of those control channels without the kind of painful per-partial editing that some of the first digital synths used. The first is the PARTIALS module up top, where you can see a diagram of all the 64 partials over time. This is like a sonogram style of diagram where x is time, y is pitch, and thickness of each like is amplitude. There is also an additional axis for noisiness at each partial.

A separate application will use the open-source Loris work by Kelly Fitz and Lippold Haken to analyze sounds and create partial maps.

Sumu envelopes

Another way of generating control data is with the ENVELOPES module. It’s a normal envelope generator more or less—except that it generates 64 separate envelopes, one for each partial. Generally you would trigger them all at the same time, but each does have its own trigger so they can be separate. Using the “hi scale” parameter the high envelopes will be quicker than the low ones, making a very natural kind of lowpass contour to the sound.

Sumu pulses

Finally on the top row there’s the PULSES module. This combines an LFO and a randomness generator into one module. The intensity and other parameters of the pulses can be different for every partial. So this makes modulations that can be focused on a certain frequency range, but you don’t have to mess around editing partials one by one. You could also, for example, use the pulses to trigger the envelopes all at different times.

The PULSES module was inspired by my walks in a small canyon near my house, and listening to the very finely detailed and spatially spread sounds of water running in a small creek. Each drop contributes something to the sounds and the interplay between the parts and the whole is endlessly intriguing. 

To make a water drop sound, two envelopes are needed at the same time: a rise in pitch and an exponential decay in amplitude. So PULSES lets you put out two such envelopes in sync. Then of course we generalize for a wider range of functions, so we can find out, what if the drops were quantized, or had different shapes over time? A voice turning into a running river is the kind of scene that additive synthesis can paint very sensitively. The PULSES module is designed to help create sounds like this. 

Sumu space

The SPACE module lets us position each partial in the sound independently. Coming back to the creek idea, we can hear that certain pitch ranges happen in certain locations around us due to the water speed and the resonances of different cavities. This all paints a lively acoustic scene. By positioning many little drops independently, while allowing some variation, we can approximate this kind of liveliness.

This module centers around two kinds of data, a set of positions for each partial known as home, and a vector field: a direction [x, y, z] defined at each point in a 3-dimensional space. There will be a set of both the home and the field patterns to choose from. By offering these choices, and a small set of parameters controlling the motion of the partials, such as speed, the homing tendency, and the strength of the vector field, we can quickly create a wide variety of different sonic spaces without the tedium of editing each partial independently. 

The RESONATORS module is very simple and inspired by the section of the Polymoog synthesizer with the same name. It’s simply three state-variable filters in parallel, with limited bandwidth and a bit of distortion for that “warm” sound. In Sumu, a synth we could otherwise describe as “very digital,” it’s nice to have a built-in way of adding a different flavor. 

So I have this interface you see above, and a sound engine, and I'm working feverishly to marry the two. To enable all of the animations and the new pop-up menu, I wrote a whole new software layer that provides a completely GPU-based UI kit and interfaces directly with the VST3 library. Because it's been such a long process this time, I'm going to "build in public" more than I am used to doing, and have a public beta period. My plan is for this to start in December. (Yes, of 2021, smarty pants.) Meanwhile I hope this information gives you interested folks something to whet your appetites, and even a basis for starting to think about what kinds of patches you might want to make.

here's a newer link: https://discord.gg/BAJYprsU

In the video you sent, you are turning the dial to change the number of voices. Doing so makes more lights in the sequencer, because when voices are turned on their sequencer positions are reset to 0. So you go from all voices being at the same sequencer step to being at diffferent steps.

If you connect the KEY module's gate output in Kaivo to the sequencer trig in, this will do the same thing as turning on "key trig" in Aalto.

Hi stew, I'm trying to understand what your patch is doing but from your description I'm not quite sure of how the notes are being triggered. If you want to just make a small movie and share it with me by email that might be easier.

Aalto and Kaivo should work in the same way as far as the sequencers and triggering.

Each voice does have its own sequencer offset, and these will be different depending on when you reset the sequencers with a MIDI note.

I feel bad Kaivo is still not working smoothly for garf. Lots to do here as I try to get a new synthesizer out. I'll try to get out a Kaivo update soon. Qoqo (our new social media person) is also seeing Kaivo pretty slow on her laptop so hopefully this will help with testing.

Yes, I could add that at some point.

Aalto is at its heart a modular synthesizer—a lot of patches do make sound when the DAW is not running. You can try switching to the default patch to see if this is the case. Or look at the gate level and make sure it is down!

It could be. What kind of computer do you have? What OS and version?

A restart may help!

please keep in touch for a beta announcement!

Not yet. This issue is at the top of my bugfix list though. Thanks for your patience.

Hi @sntr,

Thanks for the clear report. I'm also experiencing infrequent loss of sound like you describe, with the latest version of Kaivo. I'll work to fix this ASAP.

Hi friends,

It's tough times. We hope you and your families are in good health. We know you know what's going on, and you have probably heard a lot of takes on it from a lot of companies so we're going to keep this to the point.

Just over a week ago, Minneapolis police killed George Floyd, the latest in a long history of unjust Black deaths at the hands of law enforcement. Since then, the outcry has been ringing out in protests all across our country. The violent suppression of these protests by police has resulted in more injuries and deaths. We stand in solidarity with the protesters and with the Black community.

How can a music software company contribute positively and constructively in this moment? For us, the answer is: by sending funds to those doing front line work. We're writing to ask for your support.

The Black Youth Project is an organization that both provides emergency funds to Black community members in need, and invests long-term in the future of Black leadership. They have chapters in many U.S. cities including Atlanta, Chicago, Dallas, DC and Detroit. From their website: "Our work is generally centered on ending systems of anti-Blackness and emphasizing the urgency of protecting folks living on the margins of the margins, including women, girls, femmes, and the gamut of LGBTQ folk." To find out more, please visit https://www.byp100.org/about.

From now until the end of Friday, June 5 (Pacific Time) we'll be donating 100% of our sales to BYP100. As a family business, our pockets are not deep enough for an impressive direct donation right now, but this way we can leverage the software we've made to direct some funds where they are sorely needed. We hope you'll help.

We and some folks we know have been contributing individually to community bail funds around the country and that is another way to help right now. If you are interested in contributing to these efforts, here’s a link to donate to many community bail funds at one time: https://secure.actblue.com/donate/bail_funds_george_floyd

There will be a time soon to get back to music, which is more important to us than ever as a force for change, as meaning and community and connection. But this week is not that time. If it were not for the inspiration of great Black music, Madrona Labs would not exist. We owe the Black community our help.

with all best wishes,
Randy Jones
Madrona Labs

photo: Nathalie Graham

I'll see what I can do about an update for Mac and Windows ASAP.

I appreciate that you updated your post! Glad it's working. Yes, the "mystery reboot" is still all too necessary for Audio Units especially.

We have updated all of our software instruments—Aalto, Kaivo, and Virta— to version 1.9.5, bringing native Apple Silicon support for M1 and M2 Macs. The new versions are Universal Binaries, which support both Apple Silicon and Intel processors. Users with Apple Silicon computers should be able to run 30% more voices or more, as compared with the previous versions in Rosetta 2 emulation.

This update is free. Installers contain Universal Binaries for both VST2 and Audio Units V2 versions.

Windows versions are unaffected by this update. Aaltoverb, previously released with Apple Silicon support, is also unaffected.

Thanks for the update, seriously. It's hard for me to stay on top of what all the DAWs are doing so I can judge how much of a relative pain things are for people and where I should focus.

That sounds annoying. I'll take a look ASAP.


I guess I will keep making these until the the beta starts properly. Please note that there's nothing to try yet!


I appreciate the notes! Thank you all for your support.

oh yes, I'll make VST3 versions before too long.

Thanks for the thoughts! The Respiro approach you describe is interesting.

Right now I'm working mostly to finish Sumu—meanwhile the world of pricing and distribution is always changing and there's a little part of my brain where I collect this kind of info and try not to overthink it.

OK, here's a new link.

Reminder that the beta is not out yet and nothing is really going on there at the moment! Right now I'm working on the app for making Sumu partial files, called Utu-view. That will be the first release on the discord, as soon as it's possible.


The main reason it hasn't happened sooner is that people aren't willing to pay a lot for iPad apps. But I do still want it for myself! So it's still on my list.

There will definitely be more voices! Computers have come a long way since 2010 :-)

The 1.9.3 update to Aalto, Kaivo, and Virta is now available for both Mac and Windows. Mac users should find a dramatic improvement because this update fixes issues with drawing speed that have crept up due to changes in Mojave and now Catalina.

To get the updates, just download and install the demo plugins from the product pages as usual.

In addition to the big changes with drawing on Mac OS, I have fixed a few lingering issues affecting both platforms. These include failure to redraw the granulator wave in Kaivo sometimes, and a sequencer triggering bug.

Lastly, I've gone over the MPE MIDI code for better compatibility with the MPE spec and with particular controllers like the Linnstrument. Pitch bend range messages are now responded to according to the spec, and separate pitch bend amounts for Main and Member channel now allow more flexibility in your MPE setup. The MPE pitch bend range is now an option under the "Settings" menu and does not change when switching patches.

Windows users please note: these new downloads may trigger the "Windows Defender" warnings in Microsoft Edge. There is no good reason for this and according to Microsoft, the warnings should go away when the files are downloaded more. Meanwhile, we all have to put up with a few extra clicks. Please write me at support@madronalabs.com if you have any questions.