ForumsHardware ← STICKY: Soundplane Client for Mac

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 .

The Soundplane application is open-source, available under a permissive license. For source code and more technical information see



  • fixed issue with excessive CPU use / repainting since 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


  • 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


  • 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


  • 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


  • 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


  • 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


  • [] 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


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


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


  • 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


  • 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

-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

Hi all,

Another client upload will be coming later today. Feel free to chime in on this topic with questions and feature requests.

Here are some features that I intend to release in the next couple of days:

[editing with status]

  • velocity sensitivity for MIDI (reworking)
  • MIDI pitch bend control (done)
  • MIDI retrigger option for slides (done)
  • note quantize with adjustable filtered snap time (done)
  • select different key->note maps (done)
  • auto state save from app

Some more features should also come very soon:

  • store multiple states as presets
  • MIDI selector for single channel / multiple channels
  • UI for making key->note maps
  • both note zones and controller zones

And fairly soon:

  • built-in test sound
  • select alternate carrier groups
  • secret new axis of control

"note quantize with adjustable filtered snap time"

what does adjustable filter snap time allow for?

thanks for all of your hard work madrona! it's appreciated. looking forward to watching the development over the next few weeks.

what does adjustable filter snap time allow for?

quantize with some motion allowed. selectable how much. think auto-tune for finger position!

Does "MIDI pitch bend control" mean control over what range of notes corresponds to the maximum range of pitch bend? It seems to be set up for about ±1 semitone right now. I can imagine for some playing styles you might want to be able to bend a note by an octave or more - so it's not so much bending a note, as using the surface as a continuous pitch device.


To be clear, there are some "features" of the current version, like always sending out controller 7 for y position, that are just there because they made the demo work! I'm replacing these with more configurable and usable features ASAP.

Thx for the new client and the new midi controls.

It would be very useful to me to have checkboxes to turn on or off the individual midi messages for the continuous controls such as pitch bend. That way, I can use a high data rate with OSC without overwhelming the midi buss which is way too easy to do. The midi note/on/off is still quite useful.

Maybe separate OSC and MIDI rate controls would be easiest? Although I can see an argument for wanting some kinds of data but not others.

I'm going to take a couple of days off to work on Aalto / Soundplanes, will think this over.

Looks like latest client turned off grid pitch mode and now pitches are only in x dimension. Going back to previous client.

Re midi, even with just using midi, it's useful to pair down the data stream. Eigenharp ran into same issue and you can control which messages are sent and what the update rate is.

Anyway, enjoy some space away from this. I think I will do a pure OSC impl for myself and then I can do whatever for the time being. Will share when I have something.

Hey, there's now a menu with two pitch modes. This and the other changes are noted in the release notes up above.

Plug and play Kyma support is in. Makes me wish I had a Kyma! How did I test it? We sent a Soundplane to Symbolic Sound in Champaign. Thanks Ben and Kurt and Carla!

Yay! SSC is shipping it today so I'll report more by the end of the week (with audio examples).

Out of town until next week but you can be sureI will be testing the KYMA support. How exciting.

I guess Expert Sleepers also has a Silent Way plugin for soundplane on the way for CV, really great news and shows that the simple approach soundplane is taking is working.

OMG,soundplane with the KYMA connection is crazy beautiful.

This is the controller KYMA was waiting for.

awesome job everyone.

We have Video

i would love to see some sort of preset system or user defined startup template for the soundplane client so when you set and save it every time you open the software it opens the same configuration.

i would love to see some sort of preset system or user defined startup template for the soundplane client so when you set and save it every time you open the software it opens the same configuration.

This is planned Real Soon Now but I've been working more than expected to get the few remaining Soundplanes out. Sorry, I know the lack of this feature is a little annoying. I'll get to it as soon as I can.

I just uploaded the new client software v0.99. Touch sensitivity over MIDI is finally, very good. I'm working on the additions to the manual to explain the new calibration. Before that I will post a quick walkthrough video. Before that I'll write this:

To get started with v0.99:

First, click "select carriers" on the Expert page to make sure you have the best, least noisy possible carrier set.

Then, click "calibrate tracker" on the expert page and follow the instructions in the status box to the right. Make sure your Soundplane is on a firm, level surface. The object of calibration is to capture the force response across the Soundplane, and capture the shape of a finger touch at each point.

When done calibrating, your Soundplane will return to normal operation. The calibration will be saved with the file "SoundplaneAppState.txt" in Application Support. You should not need to do this "deep" calibration more than one a month or so.

Your Soundplane is now much more sensitive, and also more tolerant to moving around while being played.

There are other new features, which may be self-explanatory. I'm working on the manual to explain them, but if you have any questions in the meantime, I'm here.

Hey Randy,

This thread does not include an attachment for the Soundplane 1.2 client.

Also, the 1.2 client does not have the custom mappings (zoneExample1, etc).

I am still using 1.1.2 here. I would recommend you stay with 1.1.2 until the next update.

ah, kk!

I'm always playing with 1.2, it so tempting as the 1.2 code is much more responsive :)
( the zone thing is a small issue introduced by changes in underlying ML lib they are usually pretty simple to fix if your a programmer)

1.3 ... like the splits, fun with Aalto! ... look forward to kaivo 1.2
btw: the note names are wrong, on at least split example 1, not checked others...
doesn't matter I will change the layout anyway, but perhaps might be worth correcting in a future release?

I am trying out an old school mac! lol.

Is it possible to run SP Client inn 32bit?

I have only been building for 64-bit. Adding 32-bit doubles the size of the app and I wouldn't have thought anyone wanted it. If this is a need you will be having regularly and not just a lark, I can look at adding a 32-bit version.

In honor of version 1.5.0 being released, I've updated my 'replacement' icon to make it more in line with Apple's standards.

In the unlikely case that anyone else is remotely interested, it is available here:

Hi, this thread is on the 'Hardware' forum but am I right in assuming that this is the client software for the Mac, rather than firmware and updates on the device itself? I'm new here and just trying to find my way around! :-)

Not sure why I missed the above message... Sorry about that, I hope you found the way by now.

I updated the Soundplane app to work with OS X Mojave. The signed 1.8.0 dmg is available at the above link.

This update also fixes recent bugs with controller messages and reduces redundant data output.

Version 1.8.3 is now available. I fixed a rendering issue that came up with 1.8.0, where it was eating lots of CPU.