- Control
- Operators
MIDI Capture
Purpose
Section titled “Purpose”MIDI Capture opens a hardware MIDI input (or all connected inputs) and streams decoded MIDI messages into the Cito engine as midi_event_v1 rows. It is the entry point for keyboards, controllers, drum pads, and any other MIDI hardware.
TouchDesigner Use
Section titled “TouchDesigner Use”Place MIDI Capture at the start of a MIDI processing chain. Select a specific device by name in the Device parameter, or leave it empty to capture from all connected MIDI inputs. Wire the output into MIDI Filter, MIDI Note, or MIDI Learn. The node handles device hotplug automatically.
Inputs And Outputs
Section titled “Inputs And Outputs”- No inputs. This is a source node.
- Output 0: out — midi_event_v1. One decoded MIDI message per engine frame. Empty frames carry a zero row (raw_status = 0) which downstream nodes skip.
Main Controls
Section titled “Main Controls”- Device — The MIDI input device name. Empty string captures from all connected devices. A dropdown menu lists available devices at placement time.
- Device open and hotplug detection happen on allocation, not on the audio thread.
- Uses a lock-free SPSC queue (8192 events) between the WinMM callback thread and the engine process thread.
- Reveal channels report devices_open, events_emitted, events_dropped, and per-block event count.
- Dropped events are rare under normal use; the counter is visible through reveal for diagnostics.
Parameters
Section titled “Parameters”This operator does not expose user parameters in the extracted schema.
Catalog metadata
Roles
- source
- capture
- io
Tags
- midi
- device
- events
- winmm
Search groups
- midi
- io