zeroconf

files

to install zeroconf externals, copy the .mxo (mac) / .mxe (win) files to:

  • os x: /Applications/Max5/Cycling '74/max-externals/
  • win7: C:\Program Files (x86)\Cycling '74\Max 5.0\Cycling '74\max-externals\

serialosc.maxpat

you'll need to use the zeroconf version of serialosc.maxpat (in MaxMSP):

basic use

once installed, serialosc will always be running. device connection and disconnection is automatically detected.

when reconnected, the previous sessions settings (prefix, destination port, etc) will be restored.

your target application (polygome for example) will have device selection menu, which will be auto-populated with connected devices. you will simply need to “focus” the device on your app.

technical specifications

zeroconf

each new server is assigned a (semi-random) port. a zeroconf service is registered with the devices id (serial number in most cases), with the service type _monome-osc._udp

session data

configuration is saved when a monome is unplugged. configuration is stored in the following places:

  • os x: /Users/{you}/Library/Preferences/org.monome.serialosc/
  • linux: /home/{you}/.config/serialosc/
  • windows:
    • xp: C:\Documents and Settings\{you}\Application Data\Monome\serialosc
    • vista/7: C:\Users\{you}\AppData\Local\Monome\serialosc
    • or…
    • 7 32-bit: c:\Windows\System32\config\systemprofile\AppData\Local\Monome\serialosc
    • 7 64-bit: c:\Windows\SysWOW64\config\systemprofile\AppData\Local\Monome\serialosc

manual port specification

you can also manually specify the port number of your device server if needed. you can download one of the following zeroconf browsers to find the port number:

once found, specify your port number in your serialosc configuration file. your session configuration is stored in different places depending on your platform; see the next section.

on linux, you can specify your ports and the application prefix as shown:

$ cat ~/.config/serialosc/m128-000.conf
server {
  port = 17165
}
application {
  osc_prefix = "/rove"
  host = "127.0.0.1"
  port = 8000
}
device {
  rotation = 0
}

maybe the above isn't necessary; just build the port finder into the bridge patch.