Introduction
This document describes the built-in Flow Graph modules of the following categories for compounds:
- Controlling / MIDI - Modules that receive and send MIDI events for external device control.
- Controlling / OSC - Modules that receive and send OSC messages for network-based control.
- Controlling / DMX - Modules that handle DMX data for lighting and stage-control integration.
- Controlling / GPIO - Modules that read and drive GPIO pins for hardware-level control tasks.
- Controlling / Game - Modules that integrate game controllers and gameplay-style input signals.
- Controlling / Windows - Modules that interact with Windows applications, windows, and OS-level events.
Controlling / MIDI
This section describes the built-in Flow Graph modules that receive and send MIDI events for external device control.
MIDI Controller
- Category: Controlling / MIDI
- Access: All editions.
- Function: Reads a MIDI controller and maps its position to the configured value range.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the MIDI input device.
- ⏺ Device (text) - Name of the MIDI input device to read messages from.
- ⏺ Channel (integer) - MIDI channel to read incoming events from.
- ⏺ Controller (integer, MIDI Module Controller) - Controller message to track, including CC, pitch bend, or aftertouch selections.
- ⏺ Min Value (scalar) - Output value used when the controller is at its minimum position.
- ⏺ Max Value (scalar) - Output value used when the controller is at its maximum position.
- ⏺ Init Value (scalar) - Initial output value used until the selected controller changes from its startup position.
- Output pins:
- ⏺ Value (scalar) - Mapped controller value between MinValue and MaxValue.
MIDI Controller Out
- Category: Controlling / MIDI
- Access: All editions.
- Function: Sends the selected controller value to a MIDI output channel.
- Input pins:
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the MIDI output device.
- ⏺ Device (text) - Name of the MIDI output device to send messages to.
- ⏺ Channel (integer) - MIDI channel used for outgoing messages.
- ⏺ Controller (integer, MIDI Module Controller) - Controller message to send, including CC, pitch bend, or aftertouch selections.
- ⏺ Value (scalar) - Normalized controller value to transmit.
- Output pins:
MIDI Note
- Category: Controlling / MIDI
- Access: All editions.
- Function: Tracks MIDI note activity and outputs note, gate, and aftertouch values.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the MIDI input device.
- ⏺ Device (text) - Name of the MIDI input device to read messages from.
- ⏺ Channel (integer) - MIDI channel to read incoming events from.
- ⏺ Poly Count (integer) - Maximum polyphony count used when ordering active notes.
- ⏺ Poly Index (integer) - Position of the active note to output within the current polyphony list.
- ⏺ Velo Sens (scalar) - Blends gate output between full gate and incoming velocity.
- Output pins:
- ⏺ Note (integer) - Note number of the selected active note.
- ⏺ Gate (scalar) - Gate level derived from the note velocity.
- ⏺ Aftertouch (scalar) - Polyphonic aftertouch value of the selected active note.
MIDI Note Out
- Category: Controlling / MIDI
- Access: All editions.
- Function: Sends note gate and aftertouch values for the selected MIDI note.
- Input pins:
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the MIDI output device.
- ⏺ Device (text) - Name of the MIDI output device to send messages to.
- ⏺ Channel (integer) - MIDI channel used for outgoing messages.
- ⏺ Note (integer, MIDI Note) - MIDI note number to control.
- ⏺ Gate (scalar) - Normalized velocity for note on; set to 0 to turn the note off.
- ⏺ Aftertouch (scalar) - Normalized polyphonic aftertouch value sent for the selected note.
- Output pins:
MIDI Note Range
- Category: Controlling / MIDI
- Access: All editions.
- Function: Maps MIDI notes from a selected note range into a custom output value range.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the MIDI input device.
- ⏺ Device (text) - Name of the MIDI input device to read messages from.
- ⏺ Channel (integer) - MIDI channel to read incoming events from.
- ⏺ Min Note (integer, MIDI Note) - Lowest MIDI note included in the active mapping range.
- ⏺ Max Note (integer, MIDI Note) - Highest MIDI note included in the active mapping range.
- ⏺ Min Value (scalar) - Output value mapped from MinNote.
- ⏺ Max Value (scalar) - Output value mapped from MaxNote.
- ⏺ Init Value (scalar) - Initial Value output used until a new note event arrives.
- ⏺ Velo Sens (scalar) - Blends gate output between full gate and incoming velocity.
- Output pins:
- ⏺ Value (scalar) - Range-mapped value for the current note when it falls between MinNote and MaxNote.
- ⏺ Note (integer) - Current MIDI note number when it falls in range.
- ⏺ Gate (scalar) - Gate level derived from the current note velocity when the note is in range.
- ⏺ Aftertouch (scalar) - Polyphonic aftertouch value of the current note when the note is in range.
MIDI Note To Freq
- Category: Controlling / MIDI
- Access: All editions.
- Function: Converts a MIDI note number to frequency using a configurable reference note and frequency.
- Input pins:
- ⏺ Note (scalar) - MIDI note number to convert.
- ⏺ Base Note (integer, MIDI Note) - Reference MIDI note used as the conversion anchor.
- ⏺ Base Freq (double precision scalar) - Frequency of BaseNote used as the conversion anchor.
- Output pins:
- ⏺ Out (double precision scalar) - Converted frequency value.
MIDI Passthru
- Category: Controlling / MIDI
- Access: All editions.
- Function: Forwards incoming MIDI messages to another MIDI output device with optional channel remapping.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the MIDI input device.
- ⏺ Device (text) - Name of the MIDI input device to read messages from.
- ⏺ Channel (integer) - MIDI channel to read incoming events from.
- ⏺ Out Device (text) - Target MIDI output device that receives forwarded messages.
- ⏺ Out Channel (integer) - Destination channel used when channel remapping is active.
- ⏺ All Channels (logical) - When on, forwards all channels unchanged; when off, forwards only the selected input channel to OutChannel.
- Output pins:
MIDI Program
- Category: Controlling / MIDI
- Access: All editions.
- Function: Reads current MIDI bank and program values from the selected channel.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the MIDI input device.
- ⏺ Device (text) - Name of the MIDI input device to read messages from.
- ⏺ Channel (integer) - MIDI channel to read incoming events from.
- Output pins:
- ⏺ Bank (integer) - Current bank number on the selected MIDI channel.
- ⏺ Program (integer) - Current program number on the selected MIDI channel.
MIDI Program Out
- Category: Controlling / MIDI
- Access: All editions.
- Function: Sends bank and program selection messages on the selected MIDI output channel.
- Input pins:
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the MIDI output device.
- ⏺ Device (text) - Name of the MIDI output device to send messages to.
- ⏺ Channel (integer) - MIDI channel used for outgoing messages.
- ⏺ Bank (integer) - Bank number to send.
- ⏺ Program (integer) - Program number to send.
- Output pins:
MIDI Trigger
- Category: Controlling / MIDI
- Access: All editions.
- Function: Emits a trigger when the selected MIDI controller receives a non-zero value.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the MIDI input device.
- ⏺ Device (text) - Name of the MIDI input device to read messages from.
- ⏺ Channel (integer) - MIDI channel to read incoming events from.
- ⏺ Controller (integer, MIDI Module Controller) - Controller message to watch, including CC, pitch bend, or aftertouch selections.
- Output pins:
- ⏺ Out (trigger) - Pulses when the selected controller receives a non-zero value.
Controlling / OSC
This section describes the built-in Flow Graph modules that receive and send OSC messages for network-based control.
Controller Forwarder
- Category: Controlling / OSC
- Access: All editions.
- Function: Forwards values from a selected controller device to OSC addresses and keeps a rolling text log of sent messages.
- Input pins:
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the selected controller or OSC output device.
- ⏺ Device (text) - Controller input device whose values are monitored and forwarded.
- ⏺ Out Device (text) - OSC output device that receives forwarded values.
- ⏺ Forward (logical) - Turns forwarding on or off.
- ⏺ Address Prefix (text) - Prefix prepended to forwarded controller addresses.
- ⏺ Max Log Items (integer) - Maximum number of recent forwarded messages kept in Log.
- Output pins:
- ⏺ Log (text) - Recent forwarded OSC addresses and values as text lines.
OSC Method
- Category: Controlling / OSC
- Access: All editions.
- Function: Receives OSC messages on a selected address and outputs their arguments as a collection.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Address (text) - OSC address pattern to listen for.
- Output pins:
- ⏺ Out (collection) - Received OSC arguments indexed as collection items.
OSC Out
- Category: Controlling / OSC
- Access: All editions.
- Function: Sends OSC messages with arguments taken from a collection input.
- Input pins:
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the OSC output device.
- ⏺ Device (text) - OSC output device that receives sent messages.
- ⏺ Address (text) - OSC address pattern used for outgoing messages.
- ⏺ Auto Send (logical) - When on, sends automatically when input values change.
- ⏺ Send (trigger) - Triggers sending one OSC message immediately.
- ⏺ Arguments (collection) - Collection of OSC arguments where numeric keys starting from 1 map to argument positions.
- Output pins:
OSC Scalar
- Category: Controlling / OSC
- Access: All editions.
- Function: Receives OSC messages and outputs the first argument as a scalar value.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Address (text) - OSC address pattern to listen for.
- Output pins:
- ⏺ Out (scalar) - First OSC argument converted to a scalar value.
OSC Scalar Out
- Category: Controlling / OSC
- Access: All editions.
- Function: Sends OSC messages with one scalar argument.
- Input pins:
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the OSC output device.
- ⏺ Device (text) - OSC output device that receives sent messages.
- ⏺ Address (text) - OSC address pattern used for outgoing messages.
- ⏺ Auto Send (logical) - When on, sends automatically when input values change.
- ⏺ Send (trigger) - Triggers sending one OSC message immediately.
- ⏺ Argument (scalar) - Scalar argument sent as the first OSC argument.
- Output pins:
OSC Trigger
- Category: Controlling / OSC
- Access: All editions.
- Function: Emits a trigger when a received OSC message has its first argument on.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Address (text) - OSC address pattern to listen for.
- Output pins:
- ⏺ Out (trigger) - Pulses when the first OSC argument is on.
OSC Vector
- Category: Controlling / OSC
- Access: All editions.
- Function: Receives OSC messages and outputs all arguments as a vector.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Address (text) - OSC address pattern to listen for.
- Output pins:
- ⏺ Out (vector) - OSC arguments converted to vector components.
OSC Vector Out
- Category: Controlling / OSC
- Access: All editions.
- Function: Sends OSC messages using vector components as arguments.
- Input pins:
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the OSC output device.
- ⏺ Device (text) - OSC output device that receives sent messages.
- ⏺ Address (text) - OSC address pattern used for outgoing messages.
- ⏺ Auto Send (logical) - When on, sends automatically when input values change.
- ⏺ Send (trigger) - Triggers sending one OSC message immediately.
- ⏺ Argument (vector) - Vector whose components are sent as OSC arguments in order.
- Output pins:
Controlling / DMX
This section describes the built-in Flow Graph modules that handle DMX data for lighting and stage-control integration.
DMX Array Input
- Category: Controlling / DMX
- Access: All editions.
- Function: Reads up to ten DMX values from the selected port and channel range.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the DMX input device.
- ⏺ Device (text) - DMX input device to read values from.
- ⏺ Net (integer) - Art-Net Net value of the input port.
- ⏺ Subnet (integer) - Art-Net Subnet value of the input port.
- ⏺ Universe (integer) - Art-Net Universe value of the input port.
- ⏺ Channel (integer) - Starting DMX channel used for reading values.
- ⏺ Mode 1 (integer, Dmx Value Mode) - Read mode for Value1.
- ⏺ Mode 2 (integer, Dmx Value Mode) - Read mode for Value2.
- ⏺ Mode 3 (integer, Dmx Value Mode) - Read mode for Value3.
- ⏺ Mode 4 (integer, Dmx Value Mode) - Read mode for Value4.
- ⏺ Mode 5 (integer, Dmx Value Mode) - Read mode for Value5.
- ⏺ Mode 6 (integer, Dmx Value Mode) - Read mode for Value6.
- ⏺ Mode 7 (integer, Dmx Value Mode) - Read mode for Value7.
- ⏺ Mode 8 (integer, Dmx Value Mode) - Read mode for Value8.
- ⏺ Mode 9 (integer, Dmx Value Mode) - Read mode for Value9.
- ⏺ Mode 10 (integer, Dmx Value Mode) - Read mode for Value10.
- Output pins:
- ⏺ Value 1 (scalar) - First DMX value read from the configured input.
- ⏺ Value 2 (scalar) - Second DMX value read from the configured input.
- ⏺ Value 3 (scalar) - Third DMX value read from the configured input.
- ⏺ Value 4 (scalar) - Fourth DMX value read from the configured input.
- ⏺ Value 5 (scalar) - Fifth DMX value read from the configured input.
- ⏺ Value 6 (scalar) - Sixth DMX value read from the configured input.
- ⏺ Value 7 (scalar) - Seventh DMX value read from the configured input.
- ⏺ Value 8 (scalar) - Eighth DMX value read from the configured input.
- ⏺ Value 9 (scalar) - Ninth DMX value read from the configured input.
- ⏺ Value 10 (scalar) - Tenth DMX value read from the configured input.
DMX Array Out
- Category: Controlling / DMX
- Access: All editions.
- Function: Sends up to ten DMX values to the selected port and channel range.
- Input pins:
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the DMX output device.
- ⏺ Device (text) - DMX output device to send values to.
- ⏺ Net (integer) - Art-Net Net value of the output port.
- ⏺ Subnet (integer) - Art-Net Subnet value of the output port.
- ⏺ Universe (integer) - Art-Net Universe value of the output port.
- ⏺ Channel (integer) - Starting DMX channel used for writing values.
- ⏺ Mode 1 (integer, Dmx Value Mode) - Write mode for Value1.
- ⏺ Value 1 (scalar) - First DMX value to send.
- ⏺ Mode 2 (integer, Dmx Value Mode) - Write mode for Value2.
- ⏺ Value 2 (scalar) - Second DMX value to send.
- ⏺ Mode 3 (integer, Dmx Value Mode) - Write mode for Value3.
- ⏺ Value 3 (scalar) - Third DMX value to send.
- ⏺ Mode 4 (integer, Dmx Value Mode) - Write mode for Value4.
- ⏺ Value 4 (scalar) - Fourth DMX value to send.
- ⏺ Mode 5 (integer, Dmx Value Mode) - Write mode for Value5.
- ⏺ Value 5 (scalar) - Fifth DMX value to send.
- ⏺ Mode 6 (integer, Dmx Value Mode) - Write mode for Value6.
- ⏺ Value 6 (scalar) - Sixth DMX value to send.
- ⏺ Mode 7 (integer, Dmx Value Mode) - Write mode for Value7.
- ⏺ Value 7 (scalar) - Seventh DMX value to send.
- ⏺ Mode 8 (integer, Dmx Value Mode) - Write mode for Value8.
- ⏺ Value 8 (scalar) - Eighth DMX value to send.
- ⏺ Mode 9 (integer, Dmx Value Mode) - Write mode for Value9.
- ⏺ Value 9 (scalar) - Ninth DMX value to send.
- ⏺ Mode 10 (integer, Dmx Value Mode) - Write mode for Value10.
- ⏺ Value 10 (scalar) - Tenth DMX value to send.
- Output pins:
DMX Color Input
- Category: Controlling / DMX
- Access: All editions.
- Function: Reads DMX values and outputs them as color channels with optional white output.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the DMX input device.
- ⏺ Device (text) - DMX input device to read values from.
- ⏺ Net (integer) - Art-Net Net value of the input port.
- ⏺ Subnet (integer) - Art-Net Subnet value of the input port.
- ⏺ Universe (integer) - Art-Net Universe value of the input port.
- ⏺ Channel (integer) - Starting DMX channel used for reading values.
- ⏺ Mode (integer, Dmx Value Mode) - Read mode used for the color and white channels.
- ⏺ Use W (logical) - When on, reads and outputs the white channel value.
- Output pins:
- ⏺ Color (color) - Color value built from incoming DMX channel data.
- ⏺ W (scalar) - White channel value when UseW is on.
DMX Color Out
- Category: Controlling / DMX
- Access: All editions.
- Function: Sends color channels as DMX output values with optional white channel output.
- Input pins:
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the DMX output device.
- ⏺ Device (text) - DMX output device to send values to.
- ⏺ Net (integer) - Art-Net Net value of the output port.
- ⏺ Subnet (integer) - Art-Net Subnet value of the output port.
- ⏺ Universe (integer) - Art-Net Universe value of the output port.
- ⏺ Channel (integer) - Starting DMX channel used for writing values.
- ⏺ Mode (integer, Dmx Value Mode) - Write mode used for color and white channel output.
- ⏺ Color (color) - Color value sent to DMX output channels.
- ⏺ Use W (logical) - When on, also writes the white channel value from W.
- ⏺ W (scalar) - White channel value sent when UseW is on.
- Output pins:
DMX Input
- Category: Controlling / DMX
- Access: All editions.
- Function: Reads one DMX value from the selected input port and channel.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the DMX input device.
- ⏺ Device (text) - DMX input device to read values from.
- ⏺ Net (integer) - Art-Net Net value of the input port.
- ⏺ Subnet (integer) - Art-Net Subnet value of the input port.
- ⏺ Universe (integer) - Art-Net Universe value of the input port.
- ⏺ Channel (integer) - Starting DMX channel used for reading values.
- ⏺ Mode (integer, Dmx Value Mode) - Read mode used for Value.
- Output pins:
- ⏺ Value (scalar) - DMX value read from the configured input.
DMX Out
- Category: Controlling / DMX
- Access: All editions.
- Function: Sends one DMX value to the selected output port and channel.
- Input pins:
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the DMX output device.
- ⏺ Device (text) - DMX output device to send values to.
- ⏺ Net (integer) - Art-Net Net value of the output port.
- ⏺ Subnet (integer) - Art-Net Subnet value of the output port.
- ⏺ Universe (integer) - Art-Net Universe value of the output port.
- ⏺ Channel (integer) - Starting DMX channel used for writing values.
- ⏺ Mode (integer, Dmx Value Mode) - Write mode used for Value.
- ⏺ Value (scalar) - DMX value to send.
- Output pins:
Controlling / GPIO
This section describes the built-in Flow Graph modules that read and drive GPIO pins for hardware-level control tasks.
GPIO Input
- Category: Controlling / GPIO
- Access: All editions.
- Function: Reads the logical state of a selected GPIO input channel.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the GPIO device.
- ⏺ Device (text) - GPIO device used for input.
- ⏺ Mode (text) - Device mode applied before reading input values.
- ⏺ Channel (integer) - GPIO channel index to read.
- Output pins:
- ⏺ State (logical) - Logical state read from the selected channel.
GPIO Out
- Category: Controlling / GPIO
- Access: All editions.
- Function: Sets the selected GPIO output channel to the requested logical state.
- Input pins:
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the GPIO device.
- ⏺ Device (text) - GPIO device used for output.
- ⏺ Mode (text) - Device mode applied before writing output values.
- ⏺ Channel (integer) - GPIO channel index to write.
- ⏺ State (logical) - Logical output state written to the selected channel.
- Output pins:
Controlling / Game
This section describes the built-in Flow Graph modules that integrate game controllers and gameplay-style input signals.
Game Controller
- Category: Controlling / Game
- Access: All editions.
- Function: Reads a selected game controller input and maps it to an output value range.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the game input device.
- ⏺ Device (text) - Game input device to read controller data from.
- ⏺ Controller (integer, Game Module Controller) - Controller axis, slider, or button channel to read.
- ⏺ Min Value (scalar) - Output value when the controller is at its minimum position.
- ⏺ Max Value (scalar) - Output value when the controller is at its maximum position.
- ⏺ Init Value (scalar) - Initial output value used until the selected controller moves from its startup position.
- ⏺ Backlight 1 (integer, Game Controller Backlight) - Backlight state sent to backlight output 1 of the selected controller.
- ⏺ Backlight 2 (integer, Game Controller Backlight) - Backlight state sent to backlight output 2 of the selected controller.
- Output pins:
- ⏺ Value (scalar) - Mapped controller value between MinValue and MaxValue.
Game Pose
- Category: Controlling / Game
- Access: All editions.
- Function: Outputs the current pose reported by the selected game input device.
- Input pins:
- ⏺ Learn (logical) - When on, captures incoming controller activity to set learnable input parameters.
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not open the game input device.
- ⏺ Device (text) - Game input device to read controller data from.
- Output pins:
- ⏺ Pose (transformation) - Current tracked pose of the selected game device.
Controlling / Windows
This section describes the built-in Flow Graph modules that interact with Windows applications, windows, and OS-level events.
Crash Tester
- Category: Controlling / Windows
- Access: All editions.
- Function: Triggers controlled crash, freeze, frame-drop, CPU-load, and log-flood test paths for diagnostics.
- Input pins:
- ⏺ Engine (integer, Engine) - Selects which machine runs this module in a multi-machine setup (All selects every machine). On other machines the module stays idle and does not execute crash-test actions.
- ⏺ Force Render Queue (logical) - Forces a render-queue request on each run when on.
- ⏺ Assertion Failed (trigger) - Triggers an assertion failure.
- ⏺ Unhandled Exception (trigger) - Throws an unhandled exception.
- ⏺ Access Violation (trigger) - Triggers an access violation crash.
- ⏺ Division By Zero (trigger) - Triggers a division-by-zero fault.
- ⏺ Freeze (trigger) - Triggers an infinite freeze loop.
- ⏺ Unreal Exception (trigger) - Flags the Unreal exception test path.
- ⏺ Frame Drop (trigger) - Blocks execution long enough to drop frames.
- ⏺ Frame Drop Count (integer) - Number of frame periods to block when FrameDrop is triggered.
- ⏺ CPU Load (integer) - Extra CPU load percentage to burn during each frame.
- ⏺ Log Flood (logical) - When on, writes repeated log messages each frame.
- ⏺ Logs Per Frame (integer) - Number of log messages written per frame when LogFlood is on.
- Output pins:
Link Launcher
- Category: Controlling / Windows
- Access: All editions.
- Function: Opens the specified file, folder, or URL in the Windows default handler when triggered.
- Input pins:
- ⏺ Link (text) - File path, folder path, or URL to open.
- ⏺ Maximized (logical) - Opens the target window maximized when supported.
- ⏺ Launch (trigger) - Triggers opening the Link target.
- Output pins:
Mouse
- Category: Controlling / Windows
- Access: All editions.
- Function: Tracks mouse movement, wheel, and button state and outputs absolute and incremental control values.
- Input pins:
- ⏺ Active (logical) - Turns mouse tracking on or off.
- ⏺ On Channel (integer) - Video output channel to listen on; negative values disable mouse events.
- ⏺ Button (integer, Mouse Buttons) - Mouse button required for drag tracking.
- ⏺ Modifiers As Speed (logical) - Uses Shift and Control modifier keys as movement speed multipliers when on.
- ⏺ Shift (logical) - Required Shift key state when ModifiersAsSpeed is off.
- ⏺ Control (logical) - Required Control key state when ModifiersAsSpeed is off.
- ⏺ Alt (logical) - Required Alt key state when ModifiersAsSpeed is off.
- ⏺ Space (logical) - Required Space key state when ModifiersAsSpeed is off.
- ⏺ Scale Mode (integer, Mouse Scale Mode) - Coordinate scaling mode for mouse position conversion.
- ⏺ Scale (scalar) - Custom scale factor used when ScaleMode is Custom.
- ⏺ Z Scale (scalar) - Scale factor applied to mouse wheel movement.
- ⏺ Init Absolute X (scalar) - Initial AbsoluteX value used after reset.
- ⏺ Init Absolute Y (scalar) - Initial AbsoluteY value used after reset.
- ⏺ Init Incremental X (scalar) - Initial IncrementalX value used after reset.
- ⏺ Init Incremental Y (scalar) - Initial IncrementalY value used after reset.
- ⏺ Init Incremental Z (scalar) - Initial IncrementalZ value used after reset.
- ⏺ Min X (scalar) - Minimum clamp for X outputs.
- ⏺ Max X (scalar) - Maximum clamp for X outputs.
- ⏺ Min Y (scalar) - Minimum clamp for Y outputs.
- ⏺ Max Y (scalar) - Maximum clamp for Y outputs.
- ⏺ Min Z (scalar) - Minimum clamp for wheel output.
- ⏺ Max Z (scalar) - Maximum clamp for wheel output.
- ⏺ Position (vector) - Manual position input merged into output calculations.
- ⏺ Reset (trigger) - Resets tracked mouse state to initial values.
- ⏺ Auto Snapshot (logical) - Automatically stores the current outputs as new initial values after drag release when on.
- Output pins:
- ⏺ Absolute X (scalar) - Current absolute X position value.
- ⏺ Absolute Y (scalar) - Current absolute Y position value.
- ⏺ Incremental X (scalar) - Accumulated incremental X movement value.
- ⏺ Incremental Y (scalar) - Accumulated incremental Y movement value.
- ⏺ Incremental Z (scalar) - Accumulated incremental wheel movement value.
- ⏺ Button Down (logical) - On while the selected mouse button is down.
Touch General Mover
- Category: Controlling / Windows
- Access: All editions.
- Function: Drives position, scale, and rotation from multi-touch motion with configurable inertia, ranges, and finger-count rules.
- Input pins:
- ⏺ Parent (paint object child reference) - Connects this paint object to a parent paint node in the scene hierarchy.
- ⏺ Active (logical) - Turns this paint object on or off.
- ⏺ Grouping (vector) - Per-group visibility control values: negative ignores a group, 0 hides it, and positive keeps it visible.
- ⏺ Z Order (scalar) - Sets this object's drawing order relative to sibling paint objects.
- ⏺ Enabled (logical) - Turns this touch client on or off.
- ⏺ Area (vector) - Interactive area rectangle; zero width or height expands to the receiver output size.
- ⏺ Init Position (vector) - Initial position output value.
- ⏺ Init Scale (scalar) - Initial scale output value.
- ⏺ Init Rotation (scalar) - Initial rotation output value in degrees.
- ⏺ Motion Rate (scalar) - Rate multiplier for position movement.
- ⏺ Scale Dep Rate (logical) - Makes movement speed depend on current scale when on.
- ⏺ Position Inertia (vector) - Position inertia and elasticity values.
- ⏺ Scale Inertia (vector) - Scale inertia and elasticity values.
- ⏺ Rotation Inertia (vector) - Rotation inertia and elasticity values.
- ⏺ Position Range (vector) - Minimum and maximum bounds for position output.
- ⏺ Scale Range (vector) - Minimum and maximum bounds for scale output.
- ⏺ Rotation Range (vector) - Minimum and maximum bounds for rotation output.
- ⏺ Position Fingers (vector) - Finger counts that can control position.
- ⏺ Scale Fingers (vector) - Finger counts that can control scale.
- ⏺ Rotation Fingers (vector) - Finger counts that can control rotation.
- ⏺ Touch Min Dist (scalar) - Minimum spacing between touches before scale and rotation are enabled.
- ⏺ Reset (trigger) - Resets outputs to initial values.
- ⏺ Area Brush (brush) - Brush used to render the interactive area.
- Output pins:
- ⏺ Position (vector) - Current touch-driven position output.
- ⏺ Scale (scalar) - Current touch-driven scale output.
- ⏺ Rotation (scalar) - Current touch-driven rotation output in degrees.
- ⏺ Fingers (integer) - Current number of active touches in this object.
Touch Gestures
- Category: Controlling / Windows
- Access: All editions.
- Function: Recognizes configured stroke patterns in its touch area and pulses the matching gesture output.
- Input pins:
- ⏺ Parent (paint object child reference) - Connects this paint object to a parent paint node in the scene hierarchy.
- ⏺ Active (logical) - Turns this paint object on or off.
- ⏺ Grouping (vector) - Per-group visibility control values: negative ignores a group, 0 hides it, and positive keeps it visible.
- ⏺ Z Order (scalar) - Sets this object's drawing order relative to sibling paint objects.
- ⏺ Enabled (logical) - Turns this touch client on or off.
- ⏺ Area (vector) - Interactive area rectangle; zero width or height expands to the receiver output size.
- ⏺ Pattern 1 (text) - Gesture pattern string recognized as Gesture1.
- ⏺ Pattern 2 (text) - Gesture pattern string recognized as Gesture2.
- ⏺ Pattern 3 (text) - Gesture pattern string recognized as Gesture3.
- ⏺ Pattern 4 (text) - Gesture pattern string recognized as Gesture4.
- ⏺ Pattern 5 (text) - Gesture pattern string recognized as Gesture5.
- ⏺ Pattern 6 (text) - Gesture pattern string recognized as Gesture6.
- ⏺ Pattern 7 (text) - Gesture pattern string recognized as Gesture7.
- ⏺ Pattern 8 (text) - Gesture pattern string recognized as Gesture8.
- ⏺ Pattern 9 (text) - Gesture pattern string recognized as Gesture9.
- ⏺ Pattern 10 (text) - Gesture pattern string recognized as Gesture10.
- ⏺ Pattern 11 (text) - Gesture pattern string recognized as Gesture11.
- ⏺ Pattern 12 (text) - Gesture pattern string recognized as Gesture12.
- ⏺ Pattern 13 (text) - Gesture pattern string recognized as Gesture13.
- ⏺ Pattern 14 (text) - Gesture pattern string recognized as Gesture14.
- ⏺ Pattern 15 (text) - Gesture pattern string recognized as Gesture15.
- ⏺ Pattern 16 (text) - Gesture pattern string recognized as Gesture16.
- ⏺ Strict (logical) - Uses stricter pattern matching when on.
- ⏺ Min Movement (scalar) - Minimum stroke movement required before recognition.
- ⏺ Left Button (logical) - Requires left mouse button for mouse-based gesture input when on.
- ⏺ Middle Button (logical) - Requires middle mouse button for mouse-based gesture input when on.
- ⏺ Right Button (logical) - Requires right mouse button for mouse-based gesture input when on.
- ⏺ Shift (logical) - Required Shift modifier state for gesture input.
- ⏺ Control (logical) - Required Control modifier state for gesture input.
- ⏺ Alt (logical) - Required Alt modifier state for gesture input.
- ⏺ Area Brush (brush) - Brush used to render the gesture input area.
- Output pins:
- ⏺ Gesture 1 (trigger) - Pulses when Pattern1 is recognized.
- ⏺ Gesture 2 (trigger) - Pulses when Pattern2 is recognized.
- ⏺ Gesture 3 (trigger) - Pulses when Pattern3 is recognized.
- ⏺ Gesture 4 (trigger) - Pulses when Pattern4 is recognized.
- ⏺ Gesture 5 (trigger) - Pulses when Pattern5 is recognized.
- ⏺ Gesture 6 (trigger) - Pulses when Pattern6 is recognized.
- ⏺ Gesture 7 (trigger) - Pulses when Pattern7 is recognized.
- ⏺ Gesture 8 (trigger) - Pulses when Pattern8 is recognized.
- ⏺ Gesture 9 (trigger) - Pulses when Pattern9 is recognized.
- ⏺ Gesture 10 (trigger) - Pulses when Pattern10 is recognized.
- ⏺ Gesture 11 (trigger) - Pulses when Pattern11 is recognized.
- ⏺ Gesture 12 (trigger) - Pulses when Pattern12 is recognized.
- ⏺ Gesture 13 (trigger) - Pulses when Pattern13 is recognized.
- ⏺ Gesture 14 (trigger) - Pulses when Pattern14 is recognized.
- ⏺ Gesture 15 (trigger) - Pulses when Pattern15 is recognized.
- ⏺ Gesture 16 (trigger) - Pulses when Pattern16 is recognized.
Touch Menu
- Category: Controlling / Windows
- Access: All editions.
- Function: Implements a touch menu with trigger, select, multi-select, and check modes over configurable item regions.
- Input pins:
- ⏺ Parent (paint object child reference) - Connects this paint object to a parent paint node in the scene hierarchy.
- ⏺ Active (logical) - Turns this paint object on or off.
- ⏺ Grouping (vector) - Per-group visibility control values: negative ignores a group, 0 hides it, and positive keeps it visible.
- ⏺ Z Order (scalar) - Sets this object's drawing order relative to sibling paint objects.
- ⏺ Enabled (logical) - Turns this touch client on or off.
- ⏺ Area (vector) - Interactive area rectangle; zero width or height expands to the receiver output size.
- ⏺ Items (integer) - Number of menu items to create.
- ⏺ Horizontal (logical) - Lays out items horizontally when on, vertically when off.
- ⏺ Margins (vector) - Inner margins of the menu area.
- ⏺ Item Gap (scalar) - Gap size between neighboring items.
- ⏺ Mode (integer, Touch Menu Mode) - Interaction mode for triggering, selecting, or checking items.
- ⏺ Init Items Selected (vector) - Initially selected item indices used on reset.
- ⏺ Reset (trigger) - Resets item states and reapplies InitItemsSelected.
- ⏺ Area Brush (brush) - Brush used to render the menu background area.
- ⏺ Item Brush (brush) - Brush used for normal item rendering.
- ⏺ Item Over Brush (brush) - Brush used for hovered item rendering.
- ⏺ Item Down Brush (brush) - Brush used for pressed item rendering.
- ⏺ Item Checked Brush (brush) - Brush used for selected or checked item rendering.
- ⏺ Show Item Over (logical) - Shows hover highlighting when on.
- Output pins:
- ⏺ Items Selected (vector) - Vector of selected item indices.
- ⏺ Item Over (integer) - Currently hovered item index, or 0 when none.
- ⏺ Items Down (vector) - Vector of currently pressed item indices.
- ⏺ Item Areas (vector) - Item rectangles packed as vector values.
- ⏺ Item 1 (logical) - State or trigger output for item 1 according to Mode.
- ⏺ Item 2 (logical) - State or trigger output for item 2 according to Mode.
- ⏺ Item 3 (logical) - State or trigger output for item 3 according to Mode.
- ⏺ Item 4 (logical) - State or trigger output for item 4 according to Mode.
- ⏺ Item 5 (logical) - State or trigger output for item 5 according to Mode.
- ⏺ Item 6 (logical) - State or trigger output for item 6 according to Mode.
- ⏺ Item 7 (logical) - State or trigger output for item 7 according to Mode.
- ⏺ Item 8 (logical) - State or trigger output for item 8 according to Mode.
- ⏺ Item 9 (logical) - State or trigger output for item 9 according to Mode.
- ⏺ Item 10 (logical) - State or trigger output for item 10 according to Mode.
- ⏺ Item 11 (logical) - State or trigger output for item 11 according to Mode.
- ⏺ Item 12 (logical) - State or trigger output for item 12 according to Mode.
- ⏺ Item 13 (logical) - State or trigger output for item 13 according to Mode.
- ⏺ Item 14 (logical) - State or trigger output for item 14 according to Mode.
- ⏺ Item 15 (logical) - State or trigger output for item 15 according to Mode.
- ⏺ Item 16 (logical) - State or trigger output for item 16 according to Mode.
Touch Mover
- Category: Controlling / Windows
- Access: All editions.
- Function: Transforms offset, scale, and rotation from one- or two-finger touch dragging within the active area.
- Input pins:
- ⏺ Parent (paint object child reference) - Connects this paint object to a parent paint node in the scene hierarchy.
- ⏺ Active (logical) - Turns this paint object on or off.
- ⏺ Grouping (vector) - Per-group visibility control values: negative ignores a group, 0 hides it, and positive keeps it visible.
- ⏺ Z Order (scalar) - Sets this object's drawing order relative to sibling paint objects.
- ⏺ Enabled (logical) - Turns this touch client on or off.
- ⏺ Area (vector) - Interactive area rectangle; zero width or height expands to the receiver output size.
- ⏺ Init Offset (vector) - Initial offset output value.
- ⏺ Init Scale (scalar) - Initial scale output value.
- ⏺ Init Rotation (scalar) - Initial rotation output value in degrees.
- ⏺ Min Offset (vector) - Minimum offset bounds.
- ⏺ Max Offset (vector) - Maximum offset bounds.
- ⏺ Min Scale (scalar) - Minimum allowed scale.
- ⏺ Max Scale (scalar) - Maximum allowed scale.
- ⏺ Touch Min Dist (scalar) - Minimum distance between touches to start two-finger scaling and rotation.
- ⏺ Reset (trigger) - Resets offset, scale, and rotation to initial values.
- Output pins:
- ⏺ Offset (vector) - Current touch-driven offset.
- ⏺ Scale (scalar) - Current touch-driven scale.
- ⏺ Rotation (scalar) - Current touch-driven rotation in degrees.
Touch Node
- Category: Controlling / Windows
- Access: All editions.
- Function: Routes touch input to child touch-client modules while acting as a paint-scene node rendered through PaintView.
- Input pins:
- ⏺ Parent (paint object child reference) - Connects this paint object to a parent paint node in the scene hierarchy.
- ⏺ Active (logical) - Turns this paint object on or off.
- ⏺ Grouping (vector) - Per-group visibility control values: negative ignores a group, 0 hides it, and positive keeps it visible.
- ⏺ Z Order (scalar) - Sets this object's drawing order relative to sibling paint objects.
- ⏺ Transformation (transformation) - Local transformation applied to this paint object.
- ⏺ Brush (brush) - Brush assigned to this node and inherited by attached paint objects.
- ⏺ Pen (pen) - Pen assigned to this node and inherited by attached paint objects.
- ⏺ Text Format (text format) - Text format assigned to this node and inherited by attached paint objects.
- ⏺ Touch Receiver (touch reference) - Touch receiver source whose events are forwarded to child touch clients.
- Output pins:
- ⏺ World Transf (transformation) - World transformation of this paint object after parent transforms are applied.
- ⏺ World Pos (vector) - World-space position of this paint object.
- ⏺ Children (paint object child reference) - Connect child paint objects here so this node updates and propagates tools to them.
Touch Point
- Category: Controlling / Windows
- Access: All editions.
- Function: Tracks one selected touch contact and outputs its down, long-down, and position state.
- Input pins:
- ⏺ Parent (paint object child reference) - Connects this paint object to a parent paint node in the scene hierarchy.
- ⏺ Active (logical) - Turns this paint object on or off.
- ⏺ Grouping (vector) - Per-group visibility control values: negative ignores a group, 0 hides it, and positive keeps it visible.
- ⏺ Z Order (scalar) - Sets this object's drawing order relative to sibling paint objects.
- ⏺ Enabled (logical) - Turns this touch client on or off.
- ⏺ Area (vector) - Interactive area rectangle; zero width or height expands to the receiver output size.
- ⏺ Index (integer) - One-based active-touch index to track when multiple touches are present.
- ⏺ Left Button (logical) - Requires left button state for matching mouse-based touch input when on.
- ⏺ Middle Button (logical) - Requires middle button state for matching mouse-based touch input when on.
- ⏺ Right Button (logical) - Requires right button state for matching mouse-based touch input when on.
- ⏺ Shift (logical) - Required Shift modifier state for matching touch input.
- ⏺ Control (logical) - Required Control modifier state for matching touch input.
- ⏺ Alt (logical) - Required Alt modifier state for matching touch input.
- ⏺ Area Brush (brush) - Brush used to render the touch area.
- Output pins:
- ⏺ Down (logical) - On while the tracked touch is down.
- ⏺ Long Down (logical) - On after the tracked touch reaches long-down state.
- ⏺ Position (vector) - Current position of the tracked touch point.
Touch Point Emul
- Category: Controlling / Windows
- Access: All editions.
- Function: Emulates a touch point from input pins and sends down, move, long-down, and up events to a touch receiver.
- Input pins:
- ⏺ Touch Receiver (touch reference) - Target touch receiver reference that receives emulated events.
- ⏺ Down (logical) - Starts or ends the emulated touch contact.
- ⏺ Long Down (trigger) - Signals a long-down event for the emulated touch while active.
- ⏺ Position (vector) - Current emulated touch position.
- ⏺ Left Button (logical) - Includes left button state on the emulated touch event when on.
- ⏺ Middle Button (logical) - Includes middle button state on the emulated touch event when on.
- ⏺ Right Button (logical) - Includes right button state on the emulated touch event when on.
- ⏺ Shift (logical) - Includes Shift modifier state on the emulated touch event when on.
- ⏺ Control (logical) - Includes Control modifier state on the emulated touch event when on.
- ⏺ Alt (logical) - Includes Alt modifier state on the emulated touch event when on.
- Output pins:
Touch Receiver
- Category: Controlling / Windows
- Access: All editions.
- Function: Collects mouse and touch input, converts it to receiver coordinates, and dispatches events to connected touch clients.
- Input pins:
- ⏺ Active (logical) - Turns touch reception and dispatching on or off.
- ⏺ On Channel (integer) - Video output channel to listen on for mouse and touch events.
- ⏺ Mouse Mode (logical) - Uses mouse input as touch input when on.
- ⏺ Pixel Mode (logical) - Uses pixel coordinates instead of normalized coordinates when on.
- ⏺ Render Out Size (vector) - Render output size used for coordinate conversion.
- Output pins:
- ⏺ Clients (touch reference) - Reference output used to connect touch receiver clients.
Touch Slider
- Category: Controlling / Windows
- Access: All editions.
- Function: Outputs a double value from touch interaction using horizontal, vertical, or circular slider behavior.
- Input pins:
- ⏺ Parent (paint object child reference) - Connects this paint object to a parent paint node in the scene hierarchy.
- ⏺ Active (logical) - Turns this paint object on or off.
- ⏺ Grouping (vector) - Per-group visibility control values: negative ignores a group, 0 hides it, and positive keeps it visible.
- ⏺ Z Order (scalar) - Sets this object's drawing order relative to sibling paint objects.
- ⏺ Enabled (logical) - Turns this touch client on or off.
- ⏺ Area (vector) - Interactive area rectangle; zero width or height expands to the receiver output size.
- ⏺ Shape (integer, Touch Slider Shape) - Slider shape: horizontal, vertical, or circular.
- ⏺ Handle Width (scalar) - Handle width for relative non-circular sliders; 0 uses fill-style handle.
- ⏺ Circ Start (scalar) - Start angle for circular slider range.
- ⏺ Circ End (scalar) - End angle for circular slider range.
- ⏺ Mode (integer, Touch Slider Mode) - Slider control mode: absolute, relative, or continuous.
- ⏺ Init Value (double precision scalar) - Initial slider value used on reset.
- ⏺ Min Value (double precision scalar) - Minimum slider output value.
- ⏺ Max Value (double precision scalar) - Maximum slider output value.
- ⏺ Continuous Speed (double precision scalar) - Speed multiplier for continuous mode dragging.
- ⏺ Reset (trigger) - Resets the slider to InitValue.
- ⏺ Area Brush (brush) - Brush used to render the slider background area.
- ⏺ Area Over Brush (brush) - Brush used when pointer is over the slider area.
- ⏺ Area Down Brush (brush) - Brush used while the slider is actively pressed.
- ⏺ Strip Brush (brush) - Brush used to render the slider strip or handle.
- ⏺ Strip Over Brush (brush) - Brush used for strip rendering while hovered.
- ⏺ Strip Down Brush (brush) - Brush used for strip rendering while pressed.
- ⏺ Show Over (logical) - Shows hover highlight visuals when on.
- Output pins:
- ⏺ Value (double precision scalar) - Current slider output value.
- ⏺ Over (logical) - On while pointer is over the slider control.
- ⏺ Down (logical) - On while the slider is actively pressed.