Manual: MIDI Input / Output Plugin

From OpenMPT Wiki
Jump to navigation Jump to search
MIDI Input / Output plugin window

The MIDI Input / Output Plugin is a versatile plugin for sending MIDI data to external devices or receiving MIDI input from external controllers. This plugin complements OpenMPT’s other MIDI capabilities by allowing to access multiple devices, creating routings between MIDI devices or plugins and offering an extended version of the MIDI Macro functionality.

Multiple instances of the plugin can be used to address different devices simultaneously, though most MIDI drivers do not allow a single device to be used by multiple plugin instances at the same time.

Configuration[edit]

MIDI Input Device[edit]

Selects the MIDI input device from which the plugin will receive MIDI messages. The received MIDI data can be sent to another plugin (through the plugin routing settings), or be recorded as pattern data through the Record Parameter Changes and Record MIDI Out to Pattern Editor options available from the plugin editor’s menu bar.

MIDI Output Device[edit]

Selects the destination for MIDI data sent by the plugin. This can be any external MIDI device, or virtual MIDI routing ports. The special Internal OpenMPT Output option sends MIDI data to the next plugin in the chain instead, allowing the extended MIDI macro system of this plugin (see below) to be used with other plugins.

By default, the MIDI data is sent out at roughly the same moment OpenMPT’s output is heard. To synchronize the MIDI data with other sound sources, you can delay the MIDI output further by entering a positive Output Latency if the MIDI data is heard too early. On the other hand, if the MIDI data is heard too late, you can also enter a negative latency amount, down to OpenMPT’s own configured latency, to compensate for any delays introduced by the MIDI port or target MIDI device.

When the Send timing messages box is checked, OpenMPT will send the following additional MIDI messages:

  • Song Start (FA) and Song Stop (FC).
  • Song Position Pointer (F2) on every manual position change or start of new measure, up to the maximum possible PPQ position of 16,383 sixteenth notes.
  • MIDI Clock (F8).

Initial MIDI Dump[edit]

This allows you to configure specific MIDI messages to be sent either when the module plays for the first time or every time playback restarts. Typical use cases include sending device-specific SysEx configuration messages to external MIDI devices, or setting up initial patch changes and controller values.

The Send Now button allows to test the entered MIDI messages immediately during playback.

You can import SysEx dump files (.syx) to avoid manual entry of long MIDI messages using the Import Dump... button.

Parameter Macros[edit]

1,000 plugin parameters are available to be configured to send arbitrary MIDI messages. These macros offer several advantages over regular MIDI Macros:

  • Obviously, you are no longer limited to just 16 different macros.
  • While regular MIDI macros have a 31-character limit, plugin macros can contain MIDI message sequences of any length.

The plugin macros follow the same macro syntax as regular MIDI macros. The z variable is controlled by the plugin parameter value.

You can use Parameter Control Events to control these parameters, or, maybe a bit pointlessly, Zxx MIDI macros.