thetechnobear's Recent Posts

Im working on a project that will hopefully see the Soundplane 'untethered' from the computer :)

Im going to be posting images/updates etc over at the axoloti forum, as this will provide the synth engine, but I think Soundplane connectivity will be interesting to those here:

AxoCube project

basic details so far are:

  • Soundplane and Eigenharps controlled via a BeagleBone Black (recently changed!)
  • 4 Axoloti boards for virtual modular synth voices, fx, and sequencers
  • Ableton push for 'configuration' , sequencing UI etc
  • STM32F7Disco board - touch sensitive UI , for control when Push not connected, patch loading etc.

(it may be I eventually move the Soundplane/Eigenharp 'drivers' to the STM32 boards)

Beaglebone black is using the libusb drivers for the Soundplane developed by Per Eckerdal , Eigenharp libusb driver i put together, and a new app that will utilise Randy's Touch Tracker code.

Early days, but its looking promising...

more news/updates on the above thread.... and I guess I'll cross post a demo once things are developed a little further :)

I have Aalto (1.7) and Kaivo (1.2) running on El Capitan using Live (64 bit) so far doesn't appear to be a problem. (tested both VSTs and AUs)

(not on my main machine, but a machine Im using for 10.11 testing, so (I've not tried Numerology yet)

Does the soundplane suffer issues during the summer with warmer temperatures?
(Ive got about 29C during the day in my studio, though no direct sun)

I ask, as I play my soundplane daily, and its become noticeable over the past few weeks, its tracking seems to have really deteriorated... (and Ive spent an unhealthy amount of time trying to recalibrate/tune parameters to sort it out :( )

Ive always got some ghosts notes, and dubious track arrange the edges, but now even row 2 and 4 and the 3 outer columns seem to all be suffering... either by the tracking being inaccurate in the X/Y direction by nearly half a cell, or introducing additional touches.

I perhaps notice it more as I play in fourths, so the Y being out can really be heard when is modulating things and sometimes its bad enough to think its in the next cell, so triggers the wrong note ... I guess I'm also potentially notice the X tracking more, as I am playing un-quantized.

(of course, Im only talking about issue which are for touches > 1" apart, as per current spec)

Ive tried both the official release of the soundplane software, and the current development branch, both behave the same :(

Is there any hope of seeing a new version of the soundplane software soon, that might improved the calibration routine, or the tracking software... I know it was mentioned many months back ... perhaps this will help resolve the issues?

I really cant think of anything else to try, to gets its tracking more accurate. :(

Im really disappointed, as for 6 months its been the controller i always just turn to, it lets me relax and noodle, and just enjoy the flow - but this has turned to frustration as I hear it glitching, and I find myself again trying (in vain) to recalibrate it.

Looking really good here :)

a couple of questions:

  • is the canDo(MPE) now in place?
    (if so, its still not working in bitwig, so we can throw it back into their court)

  • "+/-" pitch, has this changed? for a patch I've recently created, it seems a bit more 'choppy' than before. could be I just need to tone it down a bit in my patches now.

looking interesting... the formant filter could be fun :)

hey, I'll be buying verta too ( have to have all ML products ;) ) and completely understand new products (and upgrades, aalto 2.0? ) pays the bills, we all need to eat and make a living
(and as developers we all need to do new things too, to keep fresh!)

and I also completely understand maintaining/improving existing software is hard given operating system changes etc (I just spent a day fixing EigenD for el capitan),
then there are feature requests etc... its never ending (I know been there too!)

as i said, no criticism intended... just a request.

perhaps, soundplane software 2.0, could be a paid upgrade? that could help fund its development? ( though i suspect time is more the issue, but its a thought)

@rastkopravi , cool music and video :)

interesting i dont have air conditioning, and actualities a very dry (low humidity) climate here... but id guess high humidity would be more a problem than low.

I will say, Im not 100% sure if my issues are common, perhaps its also partly comes down to type of pieces played or technique? unfortunately there is little feedback from other soundplane owners (either one way or the other)

anyway, it has improved, so I'm back to playing the soundplane each day, so thats cool.

... and Im looking forward to virta :)

@andrewbird... I think we all have similar problems.

mine had recently improved slightly, I suspect partly due to reduced ambient temperatures... but I'm still getting stray touches. but I think, we all know that these are due to limitations within the touch tracker.

(unfortunately, due to family/work pressures Ive not had time to take apart the soundplane yet to see if mechanical changes can help)

Its a bit frustrating, some days/times the Soundplane feels like the perfect instrument, you feel in touch with it... but then this is spoilt by it false touches/glitching and the moment is 'lost'... it would be a dream to have it behave perfectly all the time :)

(I'll point out, for me, the ghosts notes/glitch tend to make midi mode pretty pointless, if your on the edge of the board, or close multiple touches... as it causes gate triggers, its not so bad with T3D/Aalto/Kaivo, as I avoid gates... its why I pretty much only use Aalto/Kaivo with the soundplane which is a real shame!)

Randy, is your plan to give the touch tracker some 'quality' time after Virta's release?

This is what Ive been impressed with on Geerts development on the Linnstrument, they have not added many features, but over 6 months they have consistently been improving response, consistency and 'feel', and Roger has clearly stated this is his #1 priority, to ensure the feel is 100% , as why most users buy these instruments.

this is no 'criticism', I completely understand the competing time pressures, more just a plea to give the soundplane software some priority, over perhaps the more 'lucrative' plugin development... but improved consistency in the touch detection would be enormous for soundplane users.
(to be clear I only want consistent to the 1"/non-adjacent cell, and over the whole board... Id much prefer this over any attempt to 'add features' e.g adjacent cell detection.)

anyway, fingers crossed...

"appreciation pattern" = arpeggiated ?

could the synth not be clocked to do the arp?

but yeah, tricky if your trying to arp manually... if the sound has strong enough transients, Id have thought Live could do this even with a audio clip.

for sure though, easier to do with midi. doing the above in Live for one or two tracks is not really a problem... its just a pain if you do it routinely, as you'll find every time you change the VST you have to reset the routing of the midi tracks. (I actually have a small M4L object that does this)

Bitwig have said they do support MPE for VSTs, I'm just waiting for a new version of Aalto which will support the 'canDo' operation (see separate post) to see if this fixes MPE within Bitwig.

Personally though, if midi editing of MPE/Voice per channel data was important to me (and I did it a lot), Id seriously consider Cubase. but for the odd time here and there, Live (or any other daw) is fine once you know how to do it.

@yorke, if you are trying to record multi channel midi (rather than just play it, i.e. hosting) , there appear to be only 2 solutions that offer proper support.

  • Cubase (Artist and Pro) , not the basic package
  • Bitwig 1.2 in beta BUT this currently is not working properly with MPE in VSTs only built-in instruments.

outside, these, the solution is either to:

  • record audio (this is what I do)
  • create separate midi tracks and route them to the VST this is what you can see in the above, and is a technique that works in most hosts, Live and Logic included.

its not a fault of MPE (as Voice per Channel midi suffers the same issues), nor Soundplane (its the same with Linnstrument/Seaboard/Continuum/Eigenharp)... its just the DAWs have not yet 'caught up'.

Hopefully with the new Seaboard RISE, and ROLIs marketing, we might see more widespread use, and so there the DAW developers will sit up and notice the demand :)

STM32F7 (and Axoloti) has both FS and HS support.

the advantage of using a hub, is not only being able to connect multiple devices, is that I'm using it as a single power source... which is not only convenient but also will help when I add a USB batter pack to power the whole thing :)
I guess later, I might put in a power rail, but for now this make its easy to get on with the software side :)

it should be noted, the PI2 and Axoloti's can deliver 500mA to USB devices, so its feasible to use these without a hub with the soundplane, however the BBB, can only deliver 100mA so currently you need a powered hub for use with soundplane

(Id need to check the STM32F7 disco, for what it can supply as a USB host)

(I wonder if there is a device, thats a straight thru USB-USB, but can add external power? this might alleviate the need for the hub in some scenarios!)

Im also assuming that once the soundplane software is on-board that will pretty much max out a CPU/board. (perhaps excluding PI2) ... so you need another USB (or midi din) to get the data to another device... so devices with only one usb port will need a hub for that purpose

MTT, well every (2.0/3.0) hub has a translator in it to do 2.0 to 1.x... the MTT just has one per port, important IF you connect multiple 1.x devices.

does a translator create latency... I don't think any more than any hub will...
Im pretty sure they are 'protocol' aware, so the translation function is not used HS to HS,
only HS to FS.
Id have thought (may be wrong though) the latency is 0.125 (due to HS leg), e.g.:

w/o hub computer < 1.0ms FS < device

w/ hub computer < 0.125 HS < hub < 1.0ms FS < device

but honestly, id need to read the USB hub specification to see if this is true.

But, in practice Ive used my Eigenharp Alpha (HS) for quite some time through a MTT hub , and never noticed any latency difference to plugging it directly into the Mac. so technically perhaps some increase, but I've never felt it.
(and since last year, put the soundplane in the same hub, and also not noticed any extra latency)

but perhaps because the latency is 'constant' we just cope, we are generally very good at dealing with constant delays... its more jitter we 'feel'

hard to describe a feeling ... but here goes :)

if you quickly 'strike'* the surface then I don't think you really 'feel' the initial surface give, but as you then then apply a pressure, you do feel it 'give' and provide resistance , this means you can grade the pressure quite easily. (its controllable the amount of force to pressure in software)

saying you cannot feel the 'strike' give is not a criticism, its really not necessary, as your initial velocity is already determine by you before contact... so there is no need for a feedback element.

if however, you slowly touch the surface, then you basically move straight to the second phase (pressure), so you can feel the give immediately. (this way you can play a slow attack pad type sound)

Roli have coined this idea of 5 expressions which I think works reasonably well

  • Strike - traditionally called velocity, initial force
  • Pressure (Z) / Glide (X) / Slide (Y)

  • Lift - traditionally 'release velocity', how fast you release a key

amount of give... its a few millimeters... more like pressing a surface that gives but is rigid, like a plastic lid i suppose.
BUT you have to remember, its a musical instrument, so the feedback obviously is given by sound, the feel is highly correlated.

so, when the soundplane is unplugged, you might think.. "oh that doesn't give much feedback" but when you connect it to a sound source, the feel takes on a different dimension, the sound means you can feel the give more (odd i know, but its completely unlike playing say on an iPad)

then of course it also depends how/what you play...

I tend to think i play in two styles...

  • tapping - this is quite fun, almost like finger tapping. quick strikes, it kind of bounces.

  • deliberate touch - i.e. slow approach/softer, far feel the pressure from the start.

(of course you can also kind of combine this i.e. quick strike then play the pressure)

fatigue, I play with it for hours, and never feel fatigued, the tapping would probably get tiring if you did it for a long time ... but i think the give perhaps helps reduce the impact ...if you have a medical complaint perhaps not advisable (e.g. Rheumatism)

compared to Continuum (I've tried one, there is a post here somewhere on my comparison), yeah completely different... not better or worst, just different, I prefer the slide on the soundplane, but the Continuums dynamics is incredible (actually quite difficult to control initial velocity... but thats probably something you get used to)

sorry, lots of words, but probably inevitable when trying to describe how something feels.

summary: you can feel the give and combined with sound source its plenty of feedback, both physically and 'emotionally'

awesome stuff , and good news all around :)

Dom from Bitwig is saying that BWS does support VSTs with MPE.;t=445754

but they must support the canDo() operation specified at the end of the MPE spec,
can you confirm that Aalto 1.7 has implemented this?


k, if you could possibly get me a beta at some point, then I can re-test with BWS, and so help 'move the ball along' :)

not got one, but the manual implies it should work well...

it appears you can make the pad send x/y/pressure on different channels. (using the editor) so that should give you independent control for each pad.
(pity it doesn't allow appear to allow pitchbend for x, but you should be able to use mod and mod+1)

then the other controls on the Neo you should be able to map to Aalto controls using automation in your DAW.

should be fun .... anyone actually tried it?

@mcgreave ... yes, Max can receive x/y/z/note via OSC (this is higher precision that using midi)

one note, if you use X, the you will to do your own 'quantisation' (its not that hard, but the SP has a few extras for things like vibrato), however you could also use the note parameter, and 'rescale' this to 2 notes per cell, this will allow you to use the quantisation from the SP software.

the only disadvantage is that you need to ensure Max knows the midi note for the row start. (since you need to calc with x = 2x-root)

(its a pity the soundplane software doesn't broadcast this meta information to clients )

ok, some success, and some failure on the PI2 :)

first I got it all compiling, main bit was figuring a way to make MadronaLib compile, as I needed to go from SSE to NEON fpu instructions (Intel vs ARM) . after that all proceeded pretty smoothly.


  • UI is very sluggish, unsurprising, I have the same on EigenD... basically for these machines you will want a headless setup.

    (Its not helped by the fact that I use remote X, probably would be better if I connected via HDMI, but still, not what you want.

  • Soundplane is detected, and connected to... I get power and serial numbers but no pressure data, it looks like its all zeros, but without errors. this was also confirmed using HelloSoundplane

Ive not double checked this, but I fear this is going to be the same issue Ive hit with the Eigenharp Pico.... basically there appears to be a bug in the PI usb kernel module, that means its not waiting for data correctly on iso traffic.

i raised an issue on the kernel here..

odd though, I thought the issue was 1.1 vs 2.0 devices, but the Eigenharp Alpha (usb 2.0) works fine, and the soundplane is a 2.0 device. (the Pico which didnt work is 1.1)

hmmmmm.... food for thought.

EDIT: cool, have this version running on both Mac OS X and Ubuntu :)
btw, but you have issues with your merge...
you have created a git submodule dependancy to bitbucket which is private...
I changed this to point to your github repo in ./gitmodules.

linux, yeah I have 32 and 64 bit versions of debian and ubuntu here, so I can test these, I can also test it on a PI2 which i run a debian derivative on.

axoloti, is not unix based... it uses a real time OS, as do all micro-controllers, this actually is a real advantage as it means you get much more reliable timing :)

cmake... cool, no problem familiar with this.

(Ubuntu has some issues with performance/packet counts, but Im sure you know this, and its work in progress... but looking good)

these are private repos, so no access ... no issue, I think I got the gist of whats going on in the Mac OSX versions.

There's also a Linux port in the works using libusb

is it possible to get a look at the 'work in progress' of this, I don't care if its working or not, its just I'm more familiar with libusb than the OS X api, so this would help me figure out the STM implementation.
(either send me a copy, or just chuck it in a branch in github and I can take a look from there)

14 bit CC support added to Axoloti ... will be in next release (but can supply if required)
Ive also added 14 bit MPE support, using the Continuums low data CC number (85,86,87).
it uses the principles as described by Leepold H, to ensure we don't get stepping.

I also added 14 bit MPE support to my version of the soundplane client, only took about 15 minutes :)


MPE implementation

X - CC 85, used to extend PB to 21 bits, useful for large slide ranges (think 96 note continuum)
Y - CC 87, combines with CC 75 to give 14 bit
Z - CC 86, combines with channel pressure to give 14 bit

additional CC 14 bit support in Axoloti

new CC object, defaults to CC + 32 = low data

new CC object, specify CC for use with high and low data (useful where 14 bit 'standard' is not followed

yeah, I plan to do the usb hosting, partly as once i figure out how to do iso for the SP, I can also then add the eigenharp, which has more complex surrounding code, as it needs to upload firmware etc (though no complexity with tracking etc)... so SP is a good start for me.

as for touch, yeah, my current 'assumption' is i will dedicate one board (F4 or F7) to USB handling/touch, and then initially spit out midi (including mpe) data, but Axoloti will also later have support an inter-board protocol so we can connect other boards in a ring (hardware support is there, just needs firmware support added)

(of course the low level code will be compatible with any STM32F4/7 chipset, not just axoloti)

so initially Axoloti will be a standalone midi bridge... (it has usb midi host and device, and midi din support) ... some people are also working on a CV interface which they have connected to a modular, so once thats finished we will get that 'for free' :)


if you checkout the forum you will see, we are seeing a lot of excitement / involvement.. and thats with I think about 60% of boards delivered, and many still 'finding their feed' with the platform - so looking promising.

(note: Im just an early contributor and a 'fan' of axoloti, no financial connection etc. but do think its got an exciting future :))

I'll keep you posted.

DAWs tend to support 14 bit CC, which is cool for automation of VSTs (since this is don't using floats) , but this of course is not voice per channel.
u-he synths which support voice per channel, I think only do this for CCs and these are fixed and are 7bit only.

Its a good idea I'll add 14 bit support in Axoloti, for all midi modes, i.e. mono, poly, multi channel and mpe ... quite simple to do.
then I'll add it to my SP client.

useful as Axoloti, doesn't have OSC (as its usb/midi din) only... and also I know a few continuum users with Axoloti so they will appreciate it :)

Hi @rsdio and @scottwilson
Id also be interested if any progress has been made on this...

Im interested in getting the SP to directly connect to Axoloti, which is based on STMF4 using Chibios + STM host lib (etc), I helped get the USB host midi working on Axoloti, so have some experience on this.

Ive now got a full debugging environment for axoloti, and I also have an F7 discovery board here,
so im setup to go... the only thing i don't have (as outrageously expensive) is a USB analyser

(Im also pretty familiar with the soundplane software)

I see there are two tasks:

a) writing USB level
I've look at the SP driver, doesn't look particular complex, main new thing for me is getting iso working on STM. (Ive done using libusb before, but not the STM lib)

b) touch tracker
Whilst the SP software may be portable, having done a bit of work on the STM32F4 now, Id be concerned that its going to be a bit heavy.
and of course there is potential to use the cortex instructions to significantly increase performance.
(this is no criticism to the SP code, code for a modern computer makes different compromises for when we come to footprint, efficiency, flexibility, readability ... as it has much more leeway)

as Ive already said to Randy, I'm happy doing (a) but to do a reasonable job of (b) is difficult, I could probably getting it tracking single touches ok, but thats useless (to me) , and going beyond that gets complex very quickly.

so I think (b) is where ML could really help out... as I assume you will need this for your eurorack module.. and the STM32F4 (or F7, which is compatible) is the most obvious choice.

perhaps we could collaborate?

I think you still need to be a member of MMA to have seen the draft HD midi spec.
(unless someone here knows of a draft in the public domain?)

yeah, adding 14 bit CC to soundplane client is easy.
(mpe spec stupidly (imho) didn't cater for this... as at least continuum/eigenharp can already deal with it)

to be honest though, Ive not bothered adding it to my version of the soundplane client yet, simple because my experience with the eigenharp software (eigend) which does support 14bit, is very few synths support it.

Id be amazed if there are any hardware synths out there that can support 14 bit midi and voice per channel.

saying that, I can easily add this to Axoloti ( if there is a demand... i added mpe already, and I could do a 14 bit mpe extension, as well as a multi 14 bit version.

one 'issue' with the current soundplane software, is its really tight on UI space to put extra options, in my version, I've removed the buttons (like mpe/pressure) and replaced with a combo dropdown which allows me to switch between different mode (single w/ channel pressure, single w/ poly pressure, mpe, multi 11/74/76, multi cp/1/3 etc).

@spunkytoofers, do you mean the arppegiator on the linnstrument?
(as you don't appear to be using the sequencer in this patch, so cant see its aalto)

if you mean there is a difference between using aalto with the linnstrument's arp on and off, Id say its most likely to be an issue with how the linnstruments arp code is working with MPE... i.e. Id talk to Geert.
(also he either has Aalto or can use the demo, so easy enough for him to test it out)

Id suspect (without looking at its code, and not having a linnstrument) its something to do with how the arp on the linnstrument is doing voice allocation, and sending the relevant pressures. (the difference in using an envelope is your using note_on gates, rather than channel pressure on the channel)

its a pity that we cannot blend the gate of the internal sequencer with Z, then you could just have your arp using the aalto sequencer.

(oh, for being able to choose the mixing mode on the inlets, and simple multiple would allow use to to this mixing, but the current add doesnt)

Ok. Yes, I use a simple max patch that duplicate and route the OSC.

yeah, but we don't really want to be running multiple applications, not only creates overhead but also points for failure (and hassle setting up, e.g. remembering to start multiple things)

Now.. if Soundplane driver and tracker were placed into a Max external, then that would be very interesting, no overhead and the power to do whatever OSC mapping you want... or even just send MPE straight to a VST etc.

I did this with the Eigenharp driver, wasn't difficult, basically write a C to C++ layer, but we have all written these countless times, so not hard :) , and you have to be careful of threading in Max.

(again another reason to structure code, such that the low level stuff should be cross platform, not too heavy, so that it can be pulled out from the UI, and used in different contexts)

here a video of some noodling using Axoloti, and my Soundplane (and also Eigenharp later).

Axoloti is a hardware board, a virtual modular programmed in a similar way to Max/Nord Modular, which you can then remove from the computer a play 'standalone', really fun and easy to use, and opens so many possibilities with the Soundplane.

I also implemented MPE (included in shipping) , and here I use Midi Expression (MPE) to control each voice independently, so we can do 'unusual' things like alter LFO rates per voice.... and of course 'normal stuff' like per voice control of vca/filter...

things we are 'used' to in Aalto/Kaivo, but now this is in hardware.

Axoloti Noodling video

1.3 seems to be spamming my computer :)
it is broadcasting 16 touches continuously (with zero data) even when no touches are active ... whereas it used to only be sending data for active touches (and of course 'off')
not only creates more traffic, but more processing requirements on the client (as osc packet has to be parsed)

a bug I assume? ( as seems unnecessary)

id like to be able to change midi port with a midi pedal :)

but osc port/midi channel and zone setup would all be useful

Ideally, what Id like is the midi output/osc output/zones (and transpose/quantise would be nice ) to be bundled as a 'setup', and then I could flip between these setups with program change messages :)