From TouchDesigner 088 Wiki


The OSC In DAT receives and parses full Open Sound Control packets using UDP. Each packet is parsed and appended as a row in the DAT's table. The table is FIFO "fisrt-in first-out" and limited to parameter-set number of lines. An optional script may be run for each packet received. Each packet/row represents either one OSC message, or an entire OSC bundle. Each argument is translated into readable ASCII text.

See also OSC, OSC Out DAT, OSC In CHOP, OSC Out CHOP, iOS and OSC, Network Protocols.

The supported argument tag types are:

  • i int32
  • f float32
  • s OSC-string
  • b OSC-blob
  • h 64 bit big-endian two's complement integer
  • t OSC-timetag
  • d 64 bit ("double") IEEE 754 floating point number
  • S alternate type represented as an OSC-string
  • c ASCII character
  • r 32 bit RGBA color
  • m 4 byte MIDI message
  • T True
  • F False
  • N Nil
  • I Infinitum
  • [ Beginning of an array
  • ] End of an array

In the case of multi-vectored arguments (example "blob", "midi", "rgb", etc), the list of values is enclosed in double quotes. In the case of unknown argument types, a quoted list of decimal values representing the bytes of that argument are included instead.

PythonIcon.png oscinDAT_Class

Parameters - OSC In Page

Protocol protocol - Select which protocol to use, refer to the Network Protocols article for more information.

Network Address address - For multi-cast protocol, this is the multi-cast address to listen for. For UDT protocol this is the IP address of the server.

Port port - The port which OSC-In will accept packets on.

Active active - While on, the DAT receives information sent to the network port. While Off, no updating occurs. Data sent to the port is lost.

OSC Address Scope addscope - To reduce which channels are generated, you can use channel name patterns to include or exclude channels. For example, ^*accel* will exclude accelerometer channels coming in from an iOS or iPhone app like mrmr. See Pattern Matching for the syntax of the possible channel name patterns.

Include Type Tag typetag - Includes the argument list type tag in each message. It includes the parameter type keywords (in case the parsing application needs to identify parmameter types).

Split Bundle into Messages splitbundle -

Split Message into Columns splitmessage -

Bundle Timestamp Column bundletimestamp -

Parameters - Received Messages Page

Script DAT script - the Script DAT will execute once for each message coming in. See oscinDAT_Class for usage.

Execute From executeloc - Determines the location the script is run from.

  • Current Node current - The script is executed from the current node location (for example, where 'cc' points to).
  • Script DAT script - The script is executed from the location of the DAT specified in the Script DAT parameter.
  • Specified Operator op - The script is executed from the operator specified in the From Operator parameter below.

From Operator fromop - The operator whose state change will trigger the DAT to execute its script when Execute is set to Specified Operator. This operator is also the path that the script will be executed from if the Execute From parameter is set to Specified Operator.

Clamp Output clamp - The DAT is limited to 100 messages by default but with Clamp Output, this can be set to anything including unlimited.

Maximum Lines maxlines - Limits the number of messages, older messages are removed from the list first.

Clear Output clear - Deletes all lines except the heading. To clear with a python script op("opname").par.clear.pulse()

Keep First Row firstrow - Keeps first row in table.

Bytes Column bytes - Outputs the raw bytes of the message in a separate column.