Recieving bundled OSC-Message

So, the Client has a tracking system in place, sending the blobtracked position via OSC. When using WidgetDesigner (Christi) we can se incomming messages but, in fact, the header is not visible or states #bundled
When using OSC In CHOP, no input gets trhough and the CHOP stays empty.
With OscInDAT i could confirm that, in fact, messages get in, but seems like touch just cannot make sense of it, as they appear completly empty.
Except when I print out the byte data, looking like this:
image
The stable version is use has the “Blank Line for non-Scoped Bundles” but the Experimental version no longer has this parameter in the oscin DAT.
What is the best way to go now? We can change over ArtNET, but still, would be nice to know what is going on here and how to get it to work as intendet.

Hi.
Could you send the relevant part of the network to us at support@derivative.ca
Can’t determine if its a bug or alternate setup issue yet.

Thanks very much,
Rob.

Hi Rob, the sending side of things is not from touch, so the recieving network is just an OSC In node. I will find out what the sending software is called, as it is on a suppliers side of things.

Hey folks - I’m reviving this thread just for the title…

I want to make sure I understand how TD deals with OSC bundles in an OSC In DAT.

Let’s say we have an incoming bundle that consists of the following:
/thing/x 1
/thing/y 2
/thing/z 3

Then, in the onReceiveOSC callback:
address = the last address – in this case, “/thing/z”
args = [1, 2, 3]

If I am understanding this correctly, this seems hacky (or, not really designed to handle bundles). For one thing, the addresses of the first 2 messages in the bundle, which may contain important info) are lost. Is there another way I should be doing this? What is best practice?

  1. Get the full string using the dat and rowIndex and parse it myself?
  2. Use the byteData and parse it manually? (is there a built-in way to do this?)
  3. Scrap it all and use python-osc?
  4. Something else? Like a different callback signature that I’m missing?

Hi @jeffcrouse,

when sending a bundle from TouchDesigner to TouchDesigner, it does receive it with all addresses:

op('/project1/oscout1').sendOSC('/thing/x', [1], '/thing/y', [2], '/thing/z', [3], asBundle=True)

I toggled on the “Split Bundle into Messages” parameter and used debug(message, address) to get this output in the textport:

/thing/x 1 /thing/x 
  (Debug - DAT:/project1/oscin1_callbacks fn:onReceiveOSC line:21)
/thing/y 2 /thing/y 
  (Debug - DAT:/project1/oscin1_callbacks fn:onReceiveOSC line:21)
/thing/z 3 /thing/z 
  (Debug - DAT:/project1/oscin1_callbacks fn:onReceiveOSC line:21)

What is sending the osc messages?

cheers
Markus

Hey @snaut - thanks for your reply.
wow, I missed the “Split Bundle into Messages” toggle. I have Covid brain right now. Sorry to waste your time.

But to answer your question, the OSC sender is a program written by another dev, so I was trying to avoid having to bug them if possible. I did end up requesting a format more like “/thing [y] [z]” which is more efficient anyway. So I now have 2 ways to solve the problem.

Thanks again.

1 Like