OSC Out CHOP

From TouchDesigner 099 Wiki

Summary

The OSC Out CHOP sends all input channels to a specified network address and port. Each channel name and associated data is transmitted together to the specified location. TouchDesigner time stamps all outgoing Open Sound Control messages with the time of the outgoing frame relative to the system time when the first message was sent. OSC CHOPs in TouchDesigner use the udp transport protocol.

OSC Out will either send all the channels each cook or it will only send each channel depending on if it has changed at all since the last time it was sent. This is determined by the Send Events Every Cook flag.

See also OSC In CHOP, OSC In DAT, iOS and OSC, Touch Out CHOP, UDP Out DAT, TCP/IP Out DAT.

NOTE for Windows OS - If experiencing connection issues make sure Windows Firewall is disabled.

PythonIcon.png oscoutCHOP_Class

Technical Details

The channel names and data are bundled together into an OSC-Bundle based on OSC Specifications. The data can be sent with OSC-Time tags in the bundle. The time sent is in seconds based on the local clock and is sampled when the bundle is being created.

Parameters - OSC Out Page

Protocol - Selects the network protocol to use. Refer to the Network Protocols article for more information.

Network Address - The network address of the server computer. This address is a standard WWW address, such as 'foo' or 'foo.bar.com'. You can put an IP address (e.g. 100.123.45.78). If you put "localhost", it means the other end of the pipe is on the same computer.

Network Port - The port which OSC Out will send packets to.

Active - While On, the CHOP sends information to the network port. When Off, data is not sent.

Max Queue Size - Specifies the maximum number of messages OSC Out will try to send at a single time.

Cook Every Frame - Specifies that this CHOP should be cooked every frame regardless of CHOPs below it are cooking.

Format - specify how to format the outgoing messages.

  • Sample - sends the current sample in each channel.
  • Time Slice - sends all samples of the current Time Slice in each channel.
  • Transpose - sends the first sample in each channel transposed together into a single multi-sample channel.

Max Message Bytes - limits the size of the outgoing message packets and splits up the message accordingly.

Send Events Every Cook - When on, OSC Out will send all channels every cook regardless if the value has changed. When off, OSC Out only sends data which has changed.

Examples

TouchDesigner generated OSC-Bundle Example

#bundle (64-bit tag specifying this packet as a bundle)
23424.5234 (64-bit the time tag sent with the bundle, specified in seconds)
16 (32-bit integer, the number of bytes which makes up the first channel sent)
/chan1 (The name of the first channel)
,f (The OSC-Tag list)
0.243 (32-bit float, the value associated with the first channel)
16 (32-bit integer, the size of the second channel)
/chan2 (The name of the second channel)
,f (The OSC-Tag list)
0.6534 (32-bit float, the value associated with the second channel)

Note: all messages are word aligned (4 bytes).

For more help understanding how to construct OSC messages, please consult the OSC Home page.

Standard Options and Local Variables

None.