serialosc introduced both a new method of detection (via zeroconf) and an updated OSC protocol.
|/prefix/press x y s||/prefix/grid/key x y s|
|/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||/prefix/grid/led/map x_off y_off d||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:
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: