Skip to content

MIDI

The MIDI tab configures which MIDI messages are sent to and received from each connected device. Each device can independently route four types of MIDI traffic.

Open Settings with ⌘, (macOS) or Ctrl+, (Windows/Linux), then select MIDI in the sidebar.

Plinken automatically discovers connected MIDI input and output devices. For each device, you can enable or disable four message categories using checkboxes:

ColumnFull NameDescription
MIDIGeneral MIDINote on/off, CC, program change, pitch bend, aftertouch
MCMIDI ClockTempo sync pulses (24 ppqn clock, start, stop, continue)
MTCMIDI Time CodeSMPTE timecode for frame-accurate synchronization
MMCMIDI Machine ControlTransport commands (play, stop, record, locate)

Devices that send MIDI data into Plinken (keyboards, controllers, drum pads, etc.). Enable the relevant checkboxes to receive specific message types from each device.

  • MIDI — receive notes and CC from this controller
  • MC — sync Plinken’s tempo to this device’s clock
  • MTC — chase incoming timecode for video sync
  • MMC — accept transport commands from hardware

Devices that receive MIDI data from Plinken (synths, drum machines, lighting controllers, etc.). Enable checkboxes to send specific message types to each device.

  • MIDI — send notes and CC to this instrument
  • MC — transmit tempo clock so external gear stays in sync
  • MTC — broadcast timecode for synchronized playback
  • MMC — send transport commands to external recorders

MIDI devices are detected automatically when the settings panel opens. If a device is connected or disconnected while the panel is open, the list updates on the next scan. Devices are identified by a unique device ID (stable across sessions) and a human-readable name.

If no devices are found, the panel shows “No MIDI input devices detected” or “No MIDI output devices detected.”

MIDI routing settings are saved to the project and restored on next load. When you enable or disable a checkbox, the change is applied immediately to the MIDI engine — no restart required.

MIDI device routing is managed through the MIDI module rather than simple key-value settings. Changes made in the UI are applied directly to the engine:

-- Open MIDI settings
pl.cmd("settings:open", { tab = "midi" })
-- MIDI routing is configured per-device through the UI
-- The routing state is stored in the MidiModule and persisted with the project
CommandDescription
settings:openOpen settings panel