help with osc recieve and send in max

    Aug 22 2011 | 4:17 am
    Hi there!
    I'm trying to do a few implementations on Ryan Challinor's brilliant Synapse for Kinect
    basically his app recieves data from a microsoft kinect, binds a skeleton to it and sends it out as osc. I'm trying to recieve the osc messages in osculator so I can send them out with a bit more control and via midi as well, but some of the messages just aint getting recieved by osculator.
    the problem is that synapse sends out a message called track joint, which tracks for instance your right hand and sends osc messages according to their possition on the screen in x,y,z values. I think osculator cant receive the osc properly because it contains 3 values rather than just the one.
    I am hoping to use max as an intermediate so I can split the one message into three, each containing one the positions (x OR y OR z).
    If you have a look at you will see synapse sends joint position in relation to the screen as
    /_pos_screen - The x,y,z position of the joint as projected onto the screen, in pixels.
    where instead of it would send which joint is specified, ie .
    You have to bang synapse to tell it to keep spewing out the joint possitions.
    The bang will send “/righthand_trackjointpos 1” to Synapse every 2 seconds, and cause messages like “/righthand_pos_screen 150 200 400” to be sent out by Synapse every frame.
    Synapse sends via osc ports 12345 and 12347, and recieves on 12346
    Osculator can receive on any joint you specify.
    My question is, how can I get max to recieve this “/righthand_pos_screen 150 200 400”, split up the message and send it out via osc as three seperate messages, ie
    /righthand_x_pos_screen 150 /righthand_x_pos_screen 200 /righthand_x_pos_screen 400
    Please bear in mind i'm relativily new to max, and havent used it for anything with osc before

    • Aug 22 2011 | 8:03 am
      hi, 1st go to and grab a copy of OSC-route (or their whole package, which is fantastic in various areas...) for your platform 2nd install the externals (there is a readme on the howto. 3rd here is a little demo, how it works (needs osc-route installed!)
      hope it helps hans
    • Aug 22 2011 | 4:20 pm
      Actually you don't need any externals for this. It also works with [route] from Max.
    • Aug 22 2011 | 4:23 pm
      definitely get the CNMAT objects, helpful for a ton of other good stuff too. But you can also split up your lists without OSCRoute, two examples in the patch below. Not sure how OSC wants the data then sent back out, but using [pack], maybe [prepend], and possibly [sprintf] you should have no problem.
    • Aug 22 2011 | 4:30 pm
      I can confirm that [prepend /name] works well for sending OSC data.
    • Aug 25 2011 | 5:04 am
      OSC-unroute, from CNMAT is also worth looking it. When possible, I would use a hierarchical namespace, like /righand/screen_pos
    • May 03 2014 | 1:40 pm
      Hi Guys!
      I'm new here and with Max. I saw this topic and I need a help on receiving these OSC numbers from /lefthand_pos_body, instead of setting them before, like the patches you've sent. I'd like to get these numbers from kinect-via and use as conditional thing. Also I want to use the /head forward action (0 or 1, or something like that), but I don't know to get this message. Can you help me, please? Thank you!