- Audio
- Control
Capture
Purpose
Section titled “Purpose”MIDI Capture opens a hardware MIDI input (or all connected inputs) and streams decoded MIDI messages into the Voro engine as midi_event_v1 rows. It is the entry point for keyboards, controllers, drum pads, and any other MIDI hardware.
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.
Controls
Section titled “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.
Inputs
None
Outputs
-
outrow
Parameters
Section titled “Parameters” Device (Device) Str
op('midi_capture').par.Device - Default:
"" (Empty String)