Touch Sensors

I would like to affordably and accurately detect XY position and pressure over as large a surface as reasonably possible.

An FSR matrix array would be pretty sweet, but 2" x 3" at $30 is less affordable than I’d prefer.

Another idea is to use four piezos but I’m not sure how accurate it will be. Cheap enough to feel comfortable playing around with though, so I’ll try it in the very near future.

But I’m curious if folks have any other ideas? Bonus points for transparency (allowing LEDs to shine through the touch surface).

Nice thing about the FSR matrix array is multi-touch support (near the end of the video, the 4-piezo approach can’t do this):

Useful info about FSR implementation:

Force Sensing Resistor Integration Guide

Would a ForcePad work?

Maybe? My google-fu failed in my efforts to find a way to buy them.

How about capacitive sensing? See, for example, how they do it in the “touch keys” project:
(also used in the Manta:
The continuum finger board uses hall-effect sensors (which might be another option to look into).

1 Like

I had forgotten how detailed the TouchKey papers are. Their solution is ultimately based on CapSense capacitive sensors.

The continuum has a fascinating design. I wish I had read this page much sooner, it is very thought provoking.

The instrument I want to make could be thought of as a variation on the manta idea.

If you haven’t yet, I’d definitely recommend reading @randy’s paper on designing the soundplane:

Also worth reading is section 3 of Ilya Rosenberg (cofounder of Touchco)'s thesis, focusing on IFSR:

I spoke briefly with Roger Linn about their hardware at Superbooth last year. He mentioned that they had basically done their own take on IFSR, and implied that it should be possible to replicate some of the interpolation techniques with off-the-shelf FSRs.


one thing to bare in mind is if you want multi touch, is how are you going to process them?

so things like the linnstrument, have discrete pads, so its ‘trivial’ for it to know a touch is on one pad.
(ok, a touch can straddle 2 pads, but even then you, know its one touch)

in contrast, the soundplane, sees the surface as one continuous surface in 3d, which makes it much harder for it to differentiate different touches. ML has their code, open source, its worth look at this (in particular ‘the touch tracker’) to see its far from trivial.

also worth noting madrona labs, linnstrument, haken, roli, eigenlabs spent a lot of time refining their touch, materials used etc… so i suspect its not that easy to get it ‘right’

another tech, which looks interesting… is Sensel Morph

ok, this is ‘finished’ solution, and we don’t have reports of sensitivity, latency , but its an interesting solution as a multi touch surface.

Thanks so much for the link to Rosenberg’s paper. He does a great job of describing the advantages of the force sensing resistance (FSR) approach. The IFSR technique appears to simply be a very fine mesh FSR array. Sensel Morph (a product from Rosenberg’s latest company!) appears to be a very high quality IFSR implementation with an extremely high resolution array and a refined manufacturing technique.

I have no doubt about this at all. It’s something that fascinates me though, and I figure I might as well get around to gaining some first-hand experience with it.

That being said, the Sensel Morph is being sold at an extremely affordable price. It’s almost inexpensive enough at retail to consider inclusion as-is in a a bespoke musical instrument. That’s an amazing accomplishment. But we do need more first-hand experience with it before we can draw conclusions about its musicality.

It’s interesting how much more complex @randy’s TouchTracker.cpp is from anything I could find in the Sensel repository. Maybe I’m just not looking in the right place.

I’m not at all opposed to the idea of discrete pads. Pretty open right now to any approach I can make work with reasonable musicality. I would very much like to be able to have both quantized and unquantized note modes. My experiences playing the Roli Seaboard compared with experiences with various iPad apps tell me that much of the feeling of “notes” has to do with tactile response from the playing surface. The trick is to create a surface that supports both quantized modes (you can feel the “frets”) without interfering with the unquantized mode (you can slide freely). I think Roli went a bit overboard trying to appease keyboard players, leaving them with an overly quantized (in the sense of tactile response) result. By contrast I’ve heard multiple musicians complain that it can be difficult to hit notes “correctly” on the smooth surface of the Haken Continuum.

But I am guessing that those issues, while not entirely independent of sensor design, are more likely to be more of a factor of playing surface design. As far as touch tracking algorithms go, we are blessed to have a choice of giant’s shoulders to stand on. A pretty amazing situation to find ourselves in.

Even without pressure sensing, it’s not impossible to get some sense of “force” from blob detection/interpretation in multitouch systems that only track X/Y. However, the sensitivity (and thus the musicality) of such approaches is greatly reduced. I find myself coming back to FSR-like implementations because they have such a direct approach to detecting pressure.

I’ve hesitated to pursue the Madrona Labs DIY Soundplane approach because I don’t happen to have a spare 16 channels of audio I/O laying around. That’s a somewhat expensive bit of kit for experimentation.

I’ve been writing this while reading the Rosenberg paper. As I continue to read I realize IFSR is not simply a very fine grain FSR array. It’s more complex than that. Still quite inexpensive to manufacture (obviously, based on the price of the Sensel Morph) but I haven’t read enough yet to realize exactly what the process is. However, I did arrive at the point where the algorithm for touch tacking is described (diagram on p.115), and it is of similar complexity to SoundPlane touch tracking.

Just went back and re-read the description of Rosenberg’s manufacturing technique (p.70-73) and I must confess I didn’t grok it thoroughly enough to understand how to replicate the process. I’ll keep mentally digging at that point in hopes of a breakthrough.

Meanwhile, I’m also reading the Getting Started with CapSense guide. CapSense is the technology behind TouchKeys. I can easily imagine using a sandwich of CapSense sensors (for X/Y) and FSR (for pressure). Might be a very quick/easy/cheap way to build a set of discrete keys.

Thanks so much to all of you for your responses so far! I <3 llllllll!

1 Like

Ive not tried a Roli… but I have a Soundplane (which is smooth) and also had a go with a Continuum, and Id don’t think, Id agree with the comment on the continuum.
there are two sides, quantising is often used for initial touch (especially on percussive sounds), and then you do get used to playing ‘fretless’ (without quantising) with practice.
one other huge different on the continuum, is the amount of dynamics (with pressure) since its go so much more ‘give’ than other surfaces… this was actually the biggest difference i was aware, initially finding almost too much dynamics - though now, I really do want a continuum because of this (and its awesome eagan matrix!)


I definitely want to experiment with hall effect sensors. It’s something I have no direct experience with, and it seems pretty interesting. I’ve never played a Continuum, but it looks extremely responsive.

yeah, im wondering what to try for sensors for building something with bbb+bela, so very interested in ideas surfacing here.
this was one of the reasons, processing overheads, Im currently running the touch tracker of the soundplane on a bbb+bela, and it does eat a large % of cpu available, which means sound generation would be compromised if you were to run both on the same box.

not a big concern for me, as Ive planned one BBB for controller processing, and separate BBB/Axolotis for synthesis and fx … the advantage of using fairly cheap micro-controllers, it becomes a modular approach :slight_smile:

bbb+Bela is definitely going to be the platform upon which I will be experimenting with these ideas.

Absolutely open to the idea of using multiples (with the caveat that I can’t readily buy another Bela until a more general release!)

Oh wow, I hadn’t heard about Sensel, but I will definitely be preordering one.

Re: touch/pad/images, it’s worth noting that the Linnstrument isn’t actually implemented as discrete pads-- it’s not a tabletop Eigenharp. Each row is continuous, so you can pitch-bend smoothly across the whole thing, and you can articulate up and down within a row regardless of where the touch originated, and regardless of where you’re gesturing. I was informed, however, that the rows are discrete in hardware, so it isn’t fully 3D in the way that the soundplane is. (I haven’t tested, but I’m guessing that you can’t bend two touches in the same row together and still distinguish y-axis movement between them, but maybe you can?)

Anyways, you will have to do some kind of blob detection, tracking, and separation if you roll your own. It’s non-trivial stuff for sure. At the cost of the Sensel, I’m personally happy to punt that hard work to them and figure out how to adapt it to my interests :slight_smile:


Actually reading that blog post instead of just looking at the pictures and pre sale cost, my gut reaction is “Oh! Touchco is back!”

Hopefully with amazon’s blessing

1 Like

both linnstrument and soundplane allow bends of two touches in same row, whilst allowing Y axis movement.

sorry, your right, discrete pads was bad wording… as i understand it, there are sensor strips in rows/columns, the intersection of these forming cells. thats kind of what i meant, but yeah the strips are continuous so ‘discrete’ is probably misleading.

(there have been tidbits of discussion on the linnstrument kvr forum over time, which I kind of remember bits of it, and probably mis-remember other bits :wink: they are difficult to find as they are fragmented, and often embedded in other discussions…)

@jasonw22, you might find the following interesting, basically someone who describes how he believes (given characteristic/firmware) the linnstrument is constructed… regardless if its 100% accurate, its an interesting idea.


@thetechnobear that’s really excellent, thank you so much!

I won’t try to say that DIY capacitive touch is easy, but you don’t need 16 channels of audio I/O. Randy’s prototype used 8 channels of I/O and is very impressive! Also, folks have used his DIY instructions with as little as the stereo headphone jack and stereo microphone jack of the typical laptop. That’s enough for 4 capacitive plates and pure interpolation to sense position and pressure up to the limits of the signal-to-noise and bit depth used.

Granted, if you want to build something as large as the Soundplane Model A, you’ll need more than stereo I/O. The Soundplane has a 64x8 grid using 32 output and 16 input channels, stacked.


I’d rather not use Max and and audio interface for this. Would prefer a more permanent solution.

Can’t argue with that. I merely wanted to point out that it’s easier than finding a 16-channel audio interface. But, yes, much better to spend less time building your instrument so you’ll have more time to play it.