Skip to content
Voro
  1. Audio
  2. Control

Capture

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.

  • 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.
  • 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

  • out row
    midi_event_v1
Device (Device) Str op('midi_capture').par.Device
Default:
"" (Empty String)