Sending and Receiving OSC Values with TouchDesigner

I’m finally catching up on some of the documentation that I’ve been meaning to do as I’ve been learning TouchDesigner, and I wanted to share some of the approaches that I’ve used. If you’re looking to learn how to send data back to TouchOSC from TD this how-to is for you.

Would be nice if we had a tutorial section where you could put things like this. Good work!

Thanks elburz. I agree - I never feel like I’m putting these things in the right place.

Nice one>

I have made a component to do this to a bunch of channels at once. I don’t have the hard drive with me at the minute, but will try and post it up in the next day or so.

Bascially, you pass in the CHOP containing all the channels you want to remap/rename, and a table DAT with inputName, outputName, outputMin, outputMax columns. It then uses the replicator to do what you describe here for each incoming channel.

That’s awesome Leskos. I’d love to see what you put together.


I use OSC to control my project, but i have some problem with it.
I have two control panel (one is on the phone and another on the computer) for one visual project.
I would like to see the changing paramter(from the phone) on the computer control panel and also inversely. So i have two input panel for the same parameter and i want to use it like one in the same time. I tried a lot of different thing but it always make a feedback effect.
Is there any soultion to avoid this?

Hey losix,

can you share a tow file of the network that you’ve made? It will be easier to answer your question if I can see what you’ve made so far.

Hi raganmd!

Thanks for your help, here you can find the toe file.
I hope you can find out something.
Osc_feedback.toe (5.64 KB)

Hi losix -
Totally missed this reply here from November!
Here’s a poorly shot video that I think is doing what you’re after, as well as the changes I made to your network to make it work.


I did a fuller write-up about the approach I used, and how to apply this same idea to a larger control set-up. Hope this helps.
Osc_feedback_MR.toe (6.21 KB)

Hi raganmd!

I really appreciate your help!
This is exactly what i was looking for.
Thank you so much!


I was trying to follow the tutorial, because it’s exactly what I was looking for, but it seems that Derivative updated the toolset so I can’t find the elements used in tutorial. Is there any updated version of tutorial that I could miss? As far as I can understand now - binding was introduced to help dealing with sending values back and forth, but I don’t know where to start. Any help appreciated!

@psychodalice - binding helps wrangle this internally in Touch, but if you’re working with an outside device you’ll still have some scripting todo.

That said, there is a bind CHOP in the experimental build that’s designed to help work around this challenge. Once that’s out of experimental I’ll try to update the tutorial on this - it’ll change lots of otherwise complicated workfows, so I’m trying to hold off until the CHOP is finalized out of experimental.

Thanks, Matthew! So you’ve done the tutorial which was perfect a while ago and then Derivative messed things up so I can’t do this task without scripting ). Can you advise me some tutorials to move in right direction?

Can you say a little more about what your use case is? That would help me push you in the right direction . :slight_smile:

The goal is the same as in you tutorial - to make an interface in TouchDesigner and TouchOSC which updates in both directions. Maybe you’ll advise me what to watch and read to cope with my task - even if it involves scripting. So much information that sometimes I feel paralyzed. I thought I’ve chosen to accomplish quite a simple task, but still I cannot and that drives me mad.

The same concept should still work that’s in the tutorial - select a channel, rename it, and send it back to your device. What pieces are you currently missing - I think I used the TUIK toolkit in the tutorial, but you can widgets for sure to do the same thing.

I’d start by just getting a constant CHOP to work the way you want, then slowly work up to the interface in touch. I often find it’s easier to work with small test cases, and slowly build towards my final goal. That gives me little incremental steps along the way so I know I’ve made some progress.

Yeah, you worked with TUIK which already had input in slider containers, but now they don’t - there are nearly only scripts inside of them. Anyway, thank you, I’ll try to adopt your techniques the best way I can.