Articles

Content You Need: Sensel

We are happy to introduce the new Sensel package, providing access to the Morph multitouch surface, to the Max Package Manager.

When Sensel rolled out their Morph interactive surface, a lot of us in the Cycling ‘74 virtual office were very interested to see what this thing could do. While they offer several interesting interchangeable smart overlays, Max users will be most interested in the “Innovator’s” overlay, which is a blank, translucent rubber surface that allows you to use the Morph as a multitouch controller. The translucency allows you to print out a custom control layout to use as a guide underneath the overlay.

The package itself is pretty straightforward - simply install it from the Max Package Manager and open the Launch patcher to get started. You’ll notice there are 2 objects available, the sensel and jit.sensel objects. The sensel object provides rich information about surface touches as Max dictionaries. In addition to position, the output also provides force and surface area of the touch, as well as some other variables I wasn’t able to immediately put to use.

You may need to brush up on your dict objects a little bit (like me), but you can also just copy the work inside of the Three Sensel Sliders example patcher to get started. Several of us also found that adjusting the sensitivity attribute is pretty key to getting the right kind of data out of the morph.

The jit.sensel object provides a representation of the controller surface as a single-plane Jitter Matrix, showing touch force across the surface. This could be used along with cv.jit objects or directly drive video masking or OpenGL mesh manipulations.

Find the Sensel package in the Max Package Manager and visit the Sensel website for more info on their available hardware.

by Andrew Benson on November 7, 2017

Creative Commons License
tommyvt vt's icon

That sounds interesting. I will try it for first time.

peripatitis's icon

Very interesting indeed..Sensitivity?
edit: ok i read it, sensitivity seems great so the question is what is the resolution of the data sent..Midi, OSC, something else?

Roald Baudoux's icon

The data are not transmitted over MIDI or OSC. It's a serial connection (like most USB devices). So the resolution is not linked to the communication protocol but rather to the device itself (and to the refresh rate possibly).

peripatitis's icon

Great, thanks!

oli larkin's icon

this looks great!

Roald Baudoux's icon

I worked sth like one month on my own external this summer but with disappointing results (not enough experience in programming yet, especially when it comes to communicating with an external device), so I am happy to see that the sensel object seem to run fine under Windows 64 bit/Max 7. Yippee!

By the way, I have a few wishes for further development :
- a function to detect if one of several Morphs are connected to the computer and the possibility to select one among several;
- inclusion of the accelerometer data (as a separate output);
- restriction to a limited number of contacts to reduce the workload on the serial port whenever possible (and therefore increase the polling rate). Sometimes one or two contacts are plenty enough.
- a selection of the data to include in the contacts;
- an alternative mode to transmit data not per contact but per data type : force, position, etc.

PM me if you think my code might help you in any way...

Roald Baudoux's icon

Oh I forgot another wish: messages to control the LEDs.

AudioMatt's icon

This may be a better place to post. Is this object not yielding decent frame rates or resolution for anyone else?

Max Gardener's icon

Since, as Andrew's article says, working with the sensitivity attribute is key to getting the right kind of data out of the morph, perhaps you might wish to share what you're using or the patches involved....

AudioMatt's icon

@max

Well as far as I can tell the sensitivity attribute is only for the Z dimension. Right now with a timer hooked up to [sensel] I'm seeing mostly 50ms intervals come out of it with a few 16s thrown in.

The goal is simply to get useful information from the morph for real time performance. I haven't patched anything yet but you're certainly not triggering samples with 16ms lag time.

Increasing the dim attribute of jit.sensel only yeilds garbled output. so it seems 185x105 is the max resolution. Much lower than the capability of the unit.

bart at max (also BITter)'s icon

Hi
Can somebody, who has the Sensel Morph, explain how to touch (feel) is?
Also how it feels to type with the AZERTY/QWERTY keyboard overlay?
Don't know where to test in Belgium and if i buy i will use it also as normal keyboard.

Roald Baudoux's icon

The surface is hard, without elasticity. But the pressure range the device can sense is huge.

Don't know about the AZERTY/QWERTY.

Where are you located in Belgium?

bart at max (also BITter)'s icon

Never noticed or seen your reply because of e-mail problems.
Meanwhile changed e-mail address.
So, it's like tapping on wooden table?
Will answer your last question thru mail.

... no mail address visible in your Max profile?