Senselosc — OSC interface for the morph (OSX, Linux)

An OSC interface for the sensel morph.
Exposes contact information for up to 16 regions of the sensel morph using the Sensel API.

This is an alternative implementation to @timthompson’s MorphOsc which is Windows-only.
senselosc is currently tested on OSX with SuperCollider.
OSC implementation is straight-forward, so this should also work with any other OSC-capable host (e.g. Reaktor/Pd/…).
The project is written to be cross-platform and should thus also work (with slight changes in the cmake configuration files) on Linux. I did not yet test this, though and would be happy for others to give it a try.

OSC interface

Usage: senselosc [options]
  -h [ --help ]           this help message
  -x [ --nobundle ]       send messages unbundled
  -d [ --scandetail ] arg set scanning detail (0: low, 1:med, 2:high), defaults
                          to high
  -p [ --port ] arg       set output port number (default: 7000)

OSC messages sent:
    /morph      <index> <id> <state> <x> <y> <force> <area> <orient> <major_axis> <minor_axis>
    /morphDelta <index> <id> <d_x> <d_y> <d_force> <d_area>
    /morphBB    <index> <id> <min_x> <min_y> <max_x> <max_y>
    /morphPeak  <index> <id> <peak_x> <peak_y> <peak_force>


index       [int]   device index (currently always 0)
id          [int]   contact id (0..15)

state       [int]   one of invalid(0), start(1), move(2), end(3) 
x           [float] x-coordinate in [mm]
y           [float] y-coordinate in [mm]
force       [float] sum of pressure applied [g] 
area        [int]   covered area [sensels]
orientation [float] orientation of bounding elipsis [deg] (0..360)
major_axis  [float] major axis length of bounding elipsis [mm]
minor_axis  [float] minor_axis length of bounding elipsis [mm]

delta_x     [float] x displacement [mm]
delta_y     [float] y displacement [mm]
delta_force [float] change of force [g]
delta_area  [int]   change of covered area [sensels]

min_x       [float] upper-left x-coordinate of bounding-box [mm] 
min_y       [float] upper-left y-coordinate of bounding-box [mm] 
max_x       [float] lower-right x-coordinate of bounding-box [mm] 
max_y       [float] lower-right y-coordinate of bounding-box [mm] 

peak_x      [float] x-coordinate of pressure peak [mm]
peak_y      [float] y-coordinate of pressure peak [mm]
peak_force  [float] force at pressur peak [g]

Comments, suggestions and PRs please via the github issue tracker.

Wow, thank you so much for sharing! We’re excited to test this out :slight_smile:

1 Like
Twitter RSS Facebook