randy's Recent Posts

There's nothing you need to do. On any Apple Silicon Mac, just install the plugin and the system will use the Rosetta 2 emulator to run it.

the current versions work in Apple Silicon under emulation. After inatalling, can you find the plugins under Audio Units? If not, restarting may be needed.

If restart does not work, try clearing your Audio Units cache:
https://madronalabs.com/topics/8791-how-to-clear-your-audio-unit-cache

version 1.8.3
April 23, 2019
link: Soundplane 1.8.3.dmg, 6MB

release notes:

To install this version: move the "Soundplane" application to your Applications folder, then move the directory "ZonePresets" to ~/Music/Madrona Labs/Soundplane.

When you launch the Soundplane application, the menu at the top of the "Zones" page should contain three presets: chromatic, rows in fourths and rows in octaves, followed by a list of all the JSON files in the ZonePresets folder. If the JSON files do not appear, the ZonePresets directory is probably not in the right place.

The format of the zone .json files is human-readable and relatively self-explaining. Take a look to see how to make your own zone maps.

The Soundplane Max/MSP examples require the CNMAT Max externals to run. These can be found at http://cnmat.berkeley.edu/downloads .

The Soundplane application is open-source, available under a permissive license. For source code and more technical information see http://github.com/madronalabs.

changes:

1.8.3:

  • fixed issue with excessive CPU use / repainting since 1.8.0

1.8.0:

  • cmake build rewritten for compatibility with new madronalib and soundplanelib.
  • fixed graphics incompatibilities with OS X Mojave
  • fixed controller Zone outputs and reduced redundant data output

1.7.0:

  • fixed possible crash starting for the first time with Kyma connected
  • "destination port" menu now allows connecting to other hosts on the local network
  • added wait on startup to resolve ports on other hosts
  • added clear all notes when switching OSC destinations and on shutdown
  • added test pattern mode
  • allow running app hidden / in background without added latency
  • fix redundant calibrate on startup
  • fix a stuck notes issue
  • add quick recovery after unplug / replug instrument

1.6:

  • improved isochronous USB driver: lower latency, allows restart after pausing app
  • fixed an issue selecting cleanest carriers after "select carriers"
  • fixed possible crashes on startup/shutdown
  • now distributing as signed .dmg

1.5:

  • new touch tracker algorithm:
    • consumes much less CPU
    • improved latency
    • improved pressure sensitivity
    • improved pressure uniformity
    • improved position accuracy
    • allows better tracking into corners
    • lengthy normalization step no longer required
    • fixed hanging touches
  • fix Kyma connection
  • improve selection of lowest-noise carrier set
  • fix a possible crash when switching zone presets
  • fixed a window-related crash on shutdown
  • fixed latency issue when in background for an extended time

1.4:

  • fixed a problem with MIDI output preventing slide between rows
  • tweaked pre-touch filtering for lower noise
  • (dev) new cmake-based build system
  • (dev) experimental Linux build
  • (dev) added HelloSoundplane command line app for low-level testing

1.3:

  • MPE MIDI support. Requires Aalto 1.7 / Kaivo 1.2.
  • Implemented note splits to multiple ports over OSC.
  • Improved stability and sensitivity of MIDI velocity
  • changed "z max" control to more intuitive "z scale."
  • fix crash with uninitialized driver on shutdown
  • allow 1-500Hz MIDI data rate
  • fix bug where pressure wasn't getting set w/o a MIDI connection
  • send quantized pitch bend on MIDI note off
  • fix touch tracker issues including zone-switch bug
  • fix to allow MIDI note 0
  • fix for double note off problem
  • fixes for MIDI glissando

1.2.5:

  • [1.2.5.1] Fixed a crash on startup if no preferences folder was present.
  • Kyma listener off by default to fix collisions on port 3124. Use 'kyma' toggle on Expert page to turn on.
  • fixed automatic connection to selected OSC service on startup.
  • restored some values from 1.1.2 to improve touch tracking.
  • add automatic saving of window dimensions. This is saved in /Application Support/SoundplaneViewState.txt.
  • fixed a problem resolving OSC services
  • fixed wrong MIDI note offsets in default Zone setups

1.2.4:

  • rendering fixes for Retina display
  • make touches easier to get into top and bottom rows
  • code signing application
  • turned Kyma polling over MIDI OFF by default
  • fixed some state issues on startup that required reselecting zone to refresh
  • clamp zone outputs to [0, 1] as documented
  • fix touch rotate bug
  • fix OSC browser
  • made normalizing easier and mre accurate
  • sending out x, y, and z from zones via MIDI.

1.1.2:

  • more complete fix to the note-off problem
  • restored the note lock feature for new zones.
  • fixed an odd font-related bug

1.1:

  • PLEASE NOTE: moved support files to ~/Music/Madrona Labs.
  • fixed a problem where the wrong note value was sent on note-off
  • fixed a potential crash sending MIDI if a MIDI device was not set
  • made benign errors less alarming

1.0a2:

  • two new kinds of zones: z (pressure only) and a toggle switch.
  • fixed an error where inactive touches were continuously sending their data
  • shortened some JSON zone names (just remove "controller_" to fix your presets)
  • updated Max/MSP examples
  • moved matrix message into t3d OSC bundle with touches
  • restored some debug printing in the in-app console
  • added error info for JSON parsing
  • fixed possible bug with zone parsing
  • clarified the T3D format in docs
  • fixed an error reading calibration files
  • fix view issues for Retina display

1.0a1:
-new Zone features allow mapping notes and controllers to key grid
-changed t3d format for wider OSC compatibility
-OpenGL accelerated graphics
-fixed graphics for Retina display
-fixed a bug where SoundplaneController was initialized twice
-fixed OpenGL errors on quit
-fixed a possible crash in adjustPeak()
-fixed note release when quantized
-new raw matrix output

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.

Aaltoverb, our tweakable reverb for sound design and live performance, has been updated to version 2.0.

Aaltoverb now supports both Intel-compatible and Apple Silicon (M1) processors natively. In addition, it brings several new features, including:

  • MIDI Learn for all parameters.
  • LFOs for all main parameters.
  • Patch storage and new example patches.

Aaltoverb 2.0 is available now as a free update.

Very glad to hear it. Enjoy!

Sounds like you fixed the patch? If so I'll leave it at that—if not let me know.

I'm sorry to hear it's not registering for you. I've heard this happens with some Windows systems but can't duplicate on mine. Do you get the demo noise every time you launch Aalto, or just sometimes?

Can you check to see if the license file Aalto.txt is there and contains your license key? It should be in C:/AppData/Roaming/Madrona Labs/Licenses.

Hi New Aalto user, I can definitely check oiut your patch if you send it to me. You can post it here or email to support@madronalabs.com.

Also please tell me what kind of computer CPU / OS you are using.

Another idea is to reduce the signal vector / process buffer size in your DAW and hear if that helps. But most things in a sequencer patch like you describe should be at full audio rate anyway.

It sounds like you are selecting a patch via a MIDI Program Change message. By putting patches in the ".../Madrona Labs/Kaivo/MIDI Programs" folder you make an alphabetical list of patches that the plugin switches to when it gets that message. So: a.mlpreset for Program 1, b for 2 and so on. It doesn't have to be "a" and "b", whatever the patches are in the in alphabetical order will be loaded.

So, Kaivo is getting a Program Change. Maybe you are in Ableton and have a Program Change message set for the clip? More info here: https://help.ableton.com/hc/en-us/articles/209070489-Sending-Program-Change-messages-from-Live

We don't have an email notification feature here. Maybe we should—will look into it.

Thanks for the info re: resolutions. I hope this helps someone! I'm not sure why other JUCE-based plugins do not have the same issue. I will look into it in case there's a quick fix. Mostly I'm focused on version 2 going forward.

A smaller delay would be very useful! The difficulty is that the pitch shifter is in the loop, and pitch shifting in real time can't be done instantly. I tried a lot of things to get the pitch shifting time down but as you do it starts to sound worse. So I probably had it at 20ms at one point then needed to go up to 50.

I could imagine maybe a mode where the non-shifted input is delayed instead if you do want a quick delay time. In other words the shifter would be smoothly removed from the loop somehow.

Hi, that is a good question. Without looking at the code: I'm 90% sure that the preset was simply made before the delay time changed to a minimum of 50ms. So it will clip to 50 ms in reality. Of course, we could measure this and verify.

I'm just about to release an update for Aaltoverb that will address this problem. It makes version 2 into a separate plugin—like most plugin makers seem to do this. Incredibly, I've never released a major version update before Aaltoverb 2, so thanks for your understanding.

I'll add more explanation when I officially release, probably on Monday. But it should be obvious and meanwhile here are the links:

Mac: http://madronalabs.com/media/aaltoverb/Aaltoverb2.0.2.pkg
Windows: http://madronalabs.com/media/aaltoverb/AaltoverbInstaller2.0.2.exe

Aaltoverb 1 is still available here:
Mac: http://madronalabs.com/media/aaltoverb/Aaltoverb1.1.0.pkg
Windows: http://madronalabs.com/media/aaltoverb/AaltoverbInstaller1.0.0.exe

Really neat! The first clip sounds almost synthetic because of the perfect timing. I think I can hear the stronger servos in action. These new pieces are exciting and I hope I get to hear longer ones when you make them. For what it's worth, it feels like complete music I would either work or bliss out to and I don't think it needs anything but the guitar.

I have been playing Egberto Gismonti and some related ECM-universe records I have on my morning "radio" show. Sundays at 10am at twitch.tv.joenszfamilyradio if you want to tune in!

Understandable! Not that we need you all pacified, mind.

I'll be updating all the plugins for Apple Silicon as soon as I can.

Nice, thank you for sharing!

Nah, not a douche. It did use to stress me out a bit when people would ask for updates, not gonna lie. Because of course I'm here working on stuff and I'm very eager to have something I can share and will do that as soon as I possibly can.

But mostly I'm just happy you're interested. I'll be building more in public than usual and I'm still planning on having something you can listen to this Spring.

Thanks for the info @garf. I know we talked this over before, but while we're here can you remind me the type of Mac hardware you were having trouble with?

Mysterious slowdowns like this are part of why I moved away from the JUCE framework and wrote my own rendering layer. So, if there's nothing I can find in the 1.x code to fix, at least the 2.0 should provide a fix shortly.

@66xvi Did you try the Kaivo demo?

I'm working on a new installer that will solve some of these issues. Thanks for your patience.

On Windows all VST3 files should be in C:\Program Files\Common Files\VST3.

Have you updated an Audio Units plugin, and then found it missing next time you launch your DAW, even after rescanning plugins? You probably need to clear your Audio Units cache. For whatever reason (please visualize me serving my strongest side-eye towards Cupertino here) this has often been needed.

The first hit on Google for "clear audio units cache" no longer reflects current best practices on this, so I'm adding my own instructions here:

  1. Close any DAW or AU host you are running
  2. in Finder, hold down the Option key, click on the Go menu at the top of your screen and select Library
  3. Delete the following files from ~/Library, if they are present:

    ~/Library/Caches/com.apple.audiounits.cache
    ~/Library/Caches/AudioUnitCache/
    ~/Library/Preferences/com.apple.audio.InfoHelper.plist
    ~/Library/Preferences/com.apple.audio.SandboxHelper.plist
    
  4. Restart your computer

That should do it.

@3david3 Reinstalling would not do anything about the MIDI issue you're seeing.

Does CC not work in DP for Aaltoverb?

I'll look into the issue in Live and if I can, maybe post a short video showing MIDI mapping.

With Aaltoverb 2 I added a MIDI input. This means that it won't be able to drop in and replace Aaltoverb 1 in current projects. Which, honestly, I didn't think through fully because it never came up in beta testing.

So very soon I'll be releasing an update that treats Aaltoverb 2 as a different plugin from version 1. This way both versions can coexist in your DAW.

Meanwhile, if you want to restore Aaltoverb 1, please use these installers:

Mac: https://madronalabs.com/media/aaltoverb/Aaltoverb1.0.0.pkg
Windows: https://madronalabs.com/media/aaltoverb/AaltoverbInstaller1.0.0.exe

If you've already installed Aaltoverb 2 version 1.0.1 or lower, where the plugin is just called "Aaltoverb," you may need to remove the plugin file manually before installing version 1.

On Mac OS: AU plugin files are in /Library/Audio/Plug-Ins/Components, and VST3 plugin files are in /Library/Audio/Plug-Ins/VST3.

On Windows, plugins should be in your VST3 plugins directory, C:/Program Files/Common Files/VST3.

Hi David,

This is a typical issue with all AU plugins. You may need to clear the AU cache, it sounds like. Please try this:

  • Close the DAW
  • in Finder, hold down the Option key, click on the Go menu at the top of your screen and select Library
  • Delete the following files from ~/Library, if they are present:
~/Library/Caches/com.apple.audiounits.cache
~/Library/Caches/AudioUnitCache/
~/Library/Preferences/com.apple.audio.InfoHelper.plist
~/Library/Preferences/com.apple.audio.SandboxHelper.plist
  • Restart your computer

About the CCs, there is so much to configure, it's hard to deduce from here. If you have a different DAW to try, that could help isolate the issue.

I'm going to make this thread sticky. It should be a good place to find and share Aalto patches. I'll try to post one every day or two for a while.

It would be cool if we could embed Soundcloud links here, but setting that up will take some time.

Thanks for the feedback.

I've done that. Thanks for your patience with this. I'll be updating all the plugins to take care of a couple of lingering bugs like this as soon as I can.

Thanks for the info— I'm aware of that issue in VCV Rack, which I need to figure out.

All other hosts I've tested have worked OK though. It looks like there is something weird with the 2.0.1 build, I'll look into it ASAP.

The actual structure of the VST is a folder, so this may just mean the VST icon is missing. Does it run?

In any case, thanks for your patience: I'll have to look at this Monday. Meanwhile, you should be able to use the 2.0.0 installer if you need to, which is still online at http://madronalabs.com/media/aaltoverb/AaltoverbInstaller2.0.0.exe