From TouchDesigner 099 Wiki


The MIDI Event DAT logs all MIDI messages coming into TouchDesigner from all MIDI devices. It outputs columns in a table format: message, type, channel, index, value.

The table is FIFO "first-in first-out" and limited to parameter-set number of lines. An optional script may be run for each packet received.

See also the MIDI In DAT, MIDI In Map CHOP, MIDI In CHOP, MIDI Out CHOP, midi command.

PythonIcon.png midieventDAT_Class

Parameters - Connect Page

Active /active - Logs MIDI events when turned on.

Parameters - Filter Page

Skip Sense /skipsense - Does not log sense messages when this is turned on.

Skip Timing /skiptiming - Does not report timing messages when this is turned on.

Filter Messages /filter - Turning this on enables the message filtering parameters below.

Message /message -

Type /type -

Channel /channel -

Index /index -

Value /value -

Parameters - Received Messages Page

Callbacks DAT script - Runs this script once for each row added to the table (ie. MIDI event recieved). See midieventDAT_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.
  • Callbacks DAT callbacks - The script is executed from the location of the DAT specified in the Callbacks 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()

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