Send OSC string?

Is there any way to send a string over OSC? Or is the only output format a single float?


Bumping. We currently need Notch’s timecode to be relayed to TouchDesigner in order to activate an important part of an interactive exhibit at the right moment (a door). Notch does not understand how to open this door, whereas Touch does, however Touch does not know what Notch’s current time is (we are using the Loop node). I figured timecode over OSC as a string would be a simple implementation, something we do all the time between show pro apps.

Is there any way to convert Notch’s timecode to a float value (such as current frame?) or any way to send a string over OSC, as @zygmunt asked over two years ago?

Notch has a much better way to send data back to the host application, using the “Readable” option on exposed parameters. The fact Notch can run as an embedded process rather than a separate application is one of the major advantages of the system over other solutions, if you engineer for it properly of course. Marking a parameter like this will tell the host to grab the value and make it accessible, rather than set it. This is our preferred method for communication with the host and has a number of obvious & major benefits over OSC: data is exchanged more efficiently, in frame sync, and packets won’t go missing if another process (or indeed another Notch block) running at the same time has been set up to use the same ports. I can’t recall if TD supports this or not - I thought it did - so that would be the first thing to look into.
If that isn’t available, I’d presume that if you want to tell TD when to open a door you’d be better off sending a trigger value to TD telling it to open, than some timecode you’re hardcoding to? That would make it able to be moved around in time easily, without changing your code in TD to look for a new value. You can extract any value from a node in Notch using the Extractor modifier, and then send that via OSC as a number.
If you really do want to send time via OSC, you could try and rig a Timecode as Text node (set to frames, so it gives a nice numeric value) into a Text As Value node, and then send that to OSC.