hardware and software for electronic music 

randy's Recent Posts

Fri, Jul 14, 2017, 17:02

Soundplane 1.5 beta available

For the last few months I've been working on a brand new way of extracting touches from the Soundplane pressure data. I'm very happy to send out the first public demo of that work today, as Soundplane 1.5.0b1.

The new touch tracker algorithm is a fundamentally new approach, and fixes small but annoying inconsistencies that players had to work around with the old one. Some of these showed up as stuck notes, or lingering phantom notes that would follow a touch.

I've been playing my Soundplane a lot while working on this. Now, when the sounds aren't right, I'm finding more often it's a problem with where my fingers are and not the software. So I'm very happy to switch my focus a bit more from algorithm development to practising!

Soft touches are no longer subject to a time-varying rejection filter, and should feel much more stable and less spongy. Positions of touches should be more accurate and consistent. Adjacent touches should maintain their positions better over a range of pressure.

Generally speaking, the new algorithm uses spatial filtering in a lot of places where the old one used temporal filtering. So latency should be much better, and in general it should reflect whatever your fingers are doing right now, which is kinds the point. Read on for details.

Version 1.5 changes

  • new touch tracker algorithm
  • attempted fix for Kyma connection


I'm sending out this version and any other upcoming betas simply as a compressed file containing the application. You can move it to wherever you currently keep your Soundplane application and run the new one alongside the current one. All data files have the same format, so you can use old zone presets with the new version.

On installing, I recommend that you go to the Expert page of the application and choose "restore defaults." This will set the default parameters for the new tracker and pick carriers.

If you have a carefully made calibration for the old tracker, you may want to back that up. I believe that it will be preserved if you switch to the new version and back, but better safe than sorry. The calibration file is in Library/Application Suppport/Madrona Labs/Soundplane/SoundplaneAppState.txt.

Getting started

This new tracker runs on a new, more robust principle and so a calibration procedure is no longer needed at all. In the future, I may add some form of positional fine tuning to allow for differences between instruments, but for now I think this should perform well without any calibration, and we'll have a more consistent baseline so I can get feedback on how it's working for the beta.

A couple of levels might need to be adjusted, as follows. Run the app and go to the "Touches" page, and pick the "xy" view mode from the view mode menu. If you raise the view scale dial to around 10, you can probably see some gray flickering. This is the sensor background noise. If you touch the surface now, you will see some green pixels, and probably a touch. If you see green pixels when you are not touching the surface, the "lo thresh" dial needs adjustment. To do this, go to the Expert page.

Back on the Touches page the "thresh" dial functions basically as before. The default here is 0.01. If you make this lower, lighter pressure will create touches, but touches will not be as consistent. Please use the default value for now when reporting issues.

Beta testing

Let me know if the new tracker seems like an improvement. If there are some cases where it isn't, the most effective communication to me would be a short written statement about what doesn't work well. I may be seeing the issue too, and already aware of it. After that, screen shots and movies are probably the best way to communicate about issues with tracking.

If you have a Kyma, please get in touch and let me know if this fix solves the connection issue with 1.4. If it does not, I will be sorry, but not too surprised, because I don't have a Kyma for testing. Now that the new tracker is done, and we are in the testing phase for this release, I can work frequently with you to find a fix.

New tracker notes

The new tracker runs in multiple phases, which you can see visualizations of using the various view modes on the Touches page. In short, these are:

  • raw data: as before, raw Soundplane data
  • calibrated: data after calibration and spatial smoothing
  • pings: touch candidates obtained by curvature method
  • pings horiz: horizontal pings only with pressure graphs
  • pings vert: vertical pings only with pressure graphs
  • key states: where a touch may be over each key
  • raw touches: touch candidates derived from key states
  • touches: filtered and matched touches
  • xy: finished touches with position histories, also sensor data

Sustaining touches on adjacent keys should now be possible, with careful playing, as long as the touches are more than a key width apart. In other words,

While single touches can be played very softly, groups of touches may take more pressure.

Touches on the bottom row suffer from positional inaccuracy because the palm of the hand is often close by providing a sink for electrical charge. This is a Soundplane hardware issue, not a tracker thing as such. To see an example, try pushing the lower row keys with a nonconductive pen or pencil instead of a finger. You may see that the positions go more easily to their limits. I have found keeping the bulk of my hand away from the surface, by curling the finger underneath and playing with my nail, to be a useful technique.

Touches never go all the way to the edge of the outer keys. If you think about it, you would have to be poking into the corner with something pointy-shaped in order for the center of a touch to be truly on the edge of the surface. The Soundplane is designed for fingers, which all have some thickness.

Next steps

If you look on the Soundplane issue tracker on Github, you can see the problems I know about or improvements I would like to make. If you have a problem with the software or a feature suggestion that's not on this list, please let me know.

The current state of the software archive is a bit messy, and it's not too clear what versions of libraries to grab to compile your own version. I'll be cleaning things up as I work on the 1.5 release. Meanwhile feel free let me know if you have any questions.

I also look forward to finally updating the manual, now that the software is settling down. I'm having a lot of fun playing now, and I plan to do some more video demonstrations soon.

Finally, all this work sets the stage for the soundplane-to-CV module, and the next model of the Soundplane itself. Stay tuned for developments.

Mon, Jul 17, 2017, 08:38

Yes, I think your experience with the green patches is just the surface not going back to its rest state completely. This shouldn't be a problem. The tracker is designed to ignore those little blips if they don't correspond to a touch. If you have the main page "thresh" set very low to respond to the softest touches possible, it could be more of an issue.

The areas where they appear most may be due to both the long-term compression and the fact that certain carriers have more background noise.

Sun, Jul 16, 2017, 17:32

Overall, much more playable and musically stable. I just got lost playing for an hour or so and didn't hear a single ghost note or something that made me stop and move into diagnostic mode. On to practicing more!

I'm very very glad to hear this.

This is just the first version of a tracker using this new technique. Improvements will follow, including some way to calibrate or correct for the wobbly y boundaries.

Sun, Jul 16, 2017, 12:12

Adjacent touches should be possible now but only on the opposite sides of keys, and only with care and extra pressure. The centers of the touches must be > 1.5 key widths apart. So, if key edges are at (0, 1, 2), the touches must be within the range (0, 0.25) and (1.75, 2). I'll work on reducing the pressure required in the future. If you look at the "pings" display you can see what might be possible.

I am thinking of adding a "join" mode where a touch directly on the edge triggers both keys. There are some details to work out, but I think this could be a useful option. It breaks the "continuous" use of moving touches but could allow more chords to be played.

Sun, Jul 16, 2017, 09:45

Thanks Mark. I'm glad you were excited to check this out and get back to me. Your feedback is very encouraging, and confirms that my new picture, both in improvements and a few remaining problems, reflects reality! After so much work on one thing it's a relief.

I also found that MIDI velocity is not working well. This should be a quick fix. I'll continue to adjust the "slide" distance for a good feel and possibly add this as an expert setting.

I am thinking about a new calibration routine that will work just as you suggest. I wanted to confirm that the underlying layer was working well first.

My next step is to clean up the repo and make the tracker module compile in our embedded world, which means giving up on a few C++11 niceties I'd gotten used to and removing some dependencies.

Mon, May 13, 2013, 13:45

Aalto T-shirts!

Just in time for summer, Aalto T-shirts are now in stock! Oft-requested and long-awaited, these shirts are the first physical artifacts besides the Soundplane to come out of the Labs. They start out soft, will wear in gracefully and are likely to give you super patching powers.

We asked our good friend David Chandler to tidy up his Aalto manual cover for a larger reproduction size, and printed it in a subtle aqua gradient on American Apparel’s Sustainable Edition organic cotton shirts in Galaxy Blue. Nerdy yet surfy!

We are selling these nice shirts for $20. Shipping is by US First Class Mail, for $4 within the USA and $16 internationally. PayPal will add these costs automatically when you enter your shipping adress.

Select a unisex size and click to buy:
SOLD OUT except for size small.

Tue, Jul 04, 2017, 10:08

Glad to hear it. Enjoy!

Fri, Sep 17, 2010, 15:44

READ ME FIRST: how to report bugs

If you are going to report a bug, please look at the topics in this forum to see if one matches your problem. If so, post in the existing thread. If not, please start a new thread with a title that describes the problem briefly. be sure to include your

  • Plugin (Aalto or Kaivo or... ) version, found at upper right
  • AU/VST host and version
  • OS Version

and then explain

  • what you did, in a way that I can repeat it
  • what you thought was supposed to happen
  • what happened instead.

I need this information to give me the best chance of doing something useful about your issue,

Sun, Jul 02, 2017, 09:35

Sorry I didn't see this post... You can start your own topics for a new question.

I have never heard of Snoopy, except the cartoon dog!

Sun, Jul 02, 2017, 09:34

You can start by deleting all Kaivo VSTs and installers, then run FL again. You want to make sure FL does not find the Kaivo plugin. If you think it's deleted but FL finds it, there is definitely one "hiding" somewhere! Look in FL prefs for an alternate VST folder location.

Then make sure you get the latest installer from http://madronalabs.com/products/kaivo .

Thu, Dec 02, 2010, 09:35

STICKY: Aalto Patch Thread!

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.

Tue, Mar 14, 2017, 14:28

Hooray, it’s a spring all-plugins update!

All of our instrument plugins, (that's Aalto, Kaivo and Virta, for those of you listening at home) have received essential updates. Please download and enjoy.

If for some reason you skipped the previous release or two, note that back in December I rolled out a new registration system. Instead of the old "My downloads," there is now a "My licenses" link where you can get the license keys for all your purchased plugins. Just paste the key into the demo plugin to register it. If you have any questions, I'll be here.

My work the past two months has been on platform compatibility, bug fixes and optimization. The stuck notes in certain hosts including Reaper are no more. Audio glitches that popped up sometimes in Kaivo have been put to rest, I think. CPU use should be around 20% less across the board.

I'm particularly excited about the CPU improvement this time, because there's more on the way. The gains this time came from rewriting parts of madronalib, my DSP library, but the plugins haven't been completely converted to use the new code. When I can do that, there should be another big boost in efficiency.

First, though, the Soundplane app needs some much-awaited love, and I have a shop to put together so I can prototype instruments here again. Stay tuned for gripping wood shop action. Stepper motors! Sawdust!

Fri, Jun 30, 2017, 10:51

P.S.: if you just want some random blather and assurance that I'm alive and kicking, I'm @madronalabs on Twitter :-)

Fri, Jun 30, 2017, 10:15

OK, I could seriously use your feedback on this. I would love to be sending out news more often at times like this when I'm deep in "development mode." My problem is, I often have nothing to say at these times that I would consider worthwhile news. "I'm working on the Soundplane touch detector" is basically what's been going on since spring.

I could show some of my many notes for Soundplane algorithms and talk about what the major improvements are gonna be. I think that would be interesting to a few people, but if history is any indication, frustrating to others who wonder why they can't just have it yet. Or who want me to be working on something else entirely.

Maybe the best answer is to find a new intern/apprentice who can do things like get t-shirts made and write news updates on the regular.

Anyhow thanks for the note, and If you can think of any categories of stuff you would want to read about, let me know.

Fri, Jun 30, 2017, 08:16

The Soundplane stuff is going well and I plan to put together a release before switching gears.

Fri, Jun 30, 2017, 08:09

If the installer fails, it should always give you an obvious error message. Maybe the earlier version is still hiding somewhere?

The plugin should be in /Library/Audio/Plug-Ins/Components on Mac, or in your VST plugins directory, probably C:\VSTPlugIns, on Windows.

To get to your Library folder on MacOS you can hold down the Option key while selecting the “Go” menu from the Finder. Sorry this is a bit complicated, it’s Apple’s decision to make ~/Library hard to access.

Fri, Jun 30, 2017, 08:04

Very glad to hear this! Thanks for the nice feedback.

Fri, Jun 30, 2017, 08:03

I think I sorted this out with you via email just now. If not, please email me: support at madronalabs.com.

Thu, Jun 29, 2017, 08:02

There is a low level SoundplaneDriver in the SoundplaneLib project that gets the raw pressure values. Then TouchTracker.cpp in the Soundplane project is the touch tracker. Madronalib is a collection of audio DSP code that I use in all my projects.

Thu, Jun 29, 2017, 07:59

OK. I'll pause the Soundplane work if I have to and get a Kaivo update out next week. Sorry about the delay.

Tue, Jun 27, 2017, 08:00

The Soundplane Max objects are free for any use. Use / share away.

I hope to be done with a new version of the touch detector soon. I would recommend this for a new 8x8 project. Meanwhile you could do as thetechnobear has done. Or, another quick way for you to use your sensor would be to write a simple single-touch detector. Single touch is easy to do very well and I'm happy to give more pointers on that.

Thu, Jun 22, 2017, 09:51

I'm truly sorry if that was unclear! Since this obviously wasn't intuitive to you, I'll try to think of how to improve it.

I think it's consistent that brightness equals presence, or more of something, in the dials as well as the toggles. I guess the disconnect was that you are used to seeing white as background—as we all are.

I could make the meaning of my interface more obvious, maybe, by darkening the actual background of the window. The reason I haven't done this is: light text on a dark background is generally harder to read (and IMO, less good looking) than dark on light.

I'll keep working to find a good balance!

Thu, Jun 15, 2017, 12:52

I'm pretty sure this is the longest I've worked on any single technical problem, aside from my thesis work. I think it's possible to do a great touch detector with the Soundplane A sensor, but, just barely. It will be a big relief to roll out this release and get your feedback.

Wed, Jun 14, 2017, 08:11

Sorry it's a bit hard to find now. I'll work on a documentation pass after this Soundplane beta coming very soon.

Wed, Jun 14, 2017, 08:09

OK, one more vote added—I'll definitely make the quad and/or individual outs version when I get a chance.

I am also planning to have 8 voices in a future version of Aalto. I could see wanting four individual outputs but not 8. So, are there going to be separate stereo, quad, octo versions? Having three separate plugins seems kind of messy. I'll try to find a way to provide the useful features without too much clutter.

Thu, Oct 08, 2015, 09:36


Here are some images from my most recent prototyping work. I'm working on a surface with thick keys that should provide very consistent mechanical behavior and a nice tactile quality for the instrument.

Here are some pieces of birch with v-grooves routed into them every inch.


With some fine router work on the flat sides of the strips, I made this profile with a 1/16" bump in the center.


Now sanding, too much sanding. I don't like sanding.


More sanding to get the profile I'm looking for. Maybe it's my years of C++ talking but these look kind of like curly braces.


The individual key pieces are cut and laid out side-by-side to make a larger surface. A finished instrument would have the grain continuous but for this prototype we don't care.


Next comes gluing to the sensor stack to test the feel.

Wed, Jun 07, 2017, 07:49

Yes, it's still planned. Sorry, I should never mention upcoming dates unless things are nearly done.

Mon, Jun 05, 2017, 09:41

Thanks for the report! Can't wait to try it out.

Mon, Jun 05, 2017, 09:40

First, can you confirm you look in the upper right of the plugin and it says version 1.3.2? There are a couple of location where plugins can hide, so you may have an old version around.

I just rechecked it with Logic 10.2.4 here with both stereo and mono inputs. I remember you wanted to use mono inputs so I'll give those steps:

  • make a new mono->stereo audio track. choose Input (for example) 1 and outputs 1-2.
  • put the Virta AU effect plugin on the track. The AU menu will offer only the choice for Virta Mono->Stereo.

Then the mono input turns into stereo audio within Virta.

You can try patching the oscillator direct to the output's AUX in and panning it, this should test to see if you have stereo outputs independent of the input.

Wed, May 31, 2017, 09:51

I messed around with a "both" mode when making the first version but didn't make anything I found really useful. I also felt like maybe having the three modes was veering too much towards emulating Buchla LPG as opposed to merely "inspired by."

Thanks for the feedback. I will revisit this for Aalto 2.0 and try some things. In particular there's been a good academic paper on the LPG and if that leads to a tastier sound all around, I may use a new algorithm.