serialosc introduced both a new method of detection (via zeroconf) and an updated OSC protocol.
from device:
| old | new |
|---|---|
| /prefix/press x y s | /prefix/grid/key x y s |
to device:
| old | new | note |
|---|---|---|
| /prefix/led x y s | /prefix/grid/led/set x y s | |
| /prefix/clear s | /prefix/grid/led/all s | s now required |
| /prefix/frame d[8] | /prefix/grid/led/map x_off y_off d[8] | offsets now required |
| /prefix/led_row y d[..] | /prefix/grid/led/row x_off y d[..] | offset required, multiple d allowed |
| /prefix/led_col x d[..] | /prefix/grid/led/col x y_off d[..] | offset required, multiple d allowed |
| /sys/intensity i | /prefix/grid/led/intensity i | i is now 0-15, not 0-1 (float) |
while previous patches were referred to by a unique prefix (eg. /flin) serialosc now uses unique UDP ports to identify patches and devices. when migrating apps, it is encouraged to use the /monome prefix by default unless otherwise necessary.
you'll need the standard 'serialosc.maxpat' file inside your Max5/patches folder. See 4. here for more info.
the easiest update method is to use the serialosc.maxpat as a bpatcher. the serialosc.maxpat file blocks your patch from sending data when focus is lost. this is good practice. for other best practice info, see serialosc dev tools.
create a serialosc bpatcher by making a new object box and typing:
bpatcher @name serialosc @args /monome
here's mlr as it existed before, with udpsend and udpreceive objects:
new version, with serialosc.maxpat:
detects!
now you have to go through your patch and replace the protocol changes above— for example, where ever you see /prefix/press, change it to /prefix/grid/key etc.
we could probably write a regex script for this if someone is ambitious.
use monomebridge instead:
it'll make old patches think they're connecting to monomeserial, converting the protocol, etc. support for two monome devices.