PluginUI

Keyboard and MIDI input

Display note input with the shared keyboard while keeping device access in your host.

The piano keyboard renders note input and reports note-on and note-off gestures. Its component page includes the live preview, source and installation instructions.

Visual input without an engine

Supply onNoteOn, onNoteOff and a controlled held map to inspect note events in your application. This can be entirely silent. The keyboard does not need to open an audio device or acquire a MIDI device.

Bind the keyboard to Maru

Inside a hosted module face, pass the existing host note callbacks and host-observed active notes:

tsx
<PianoKeyboard
  onNoteOn={face.onNoteOn}
  onNoteOff={face.onNoteOff}
  held={face.activeNotes}
/>

Device ownership

Physical MIDI ingress, permissions, channel routing and audio activation belong to the host. A visual keyboard forwards gestures through the public face contract; it does not become another device or signal path.