MIDI FX

Pure-Dart MIDI processing in the rack: chain transforms between your controller and your instruments.

What MIDI FX are

MIDI FX slots run a graph of built-in node types declared in a .gfpd file with type: midi_fx (alias midifx). They do not generate audio by themselves — they reshape note, CC, and pitch-bend streams. Examples: transpose every note, harmonize in thirds, expand single notes into chords, arpeggiate held notes, reshape velocity, or gate events by threshold.

Wiring in the patch view

Open the back-of-rack view. Connect an instrument’s MIDI OUT (or a Virtual Piano / hardware path that feeds the chain) to the MIDI FX’s MIDI IN, then connect the FX’s MIDI OUT to the next instrument or another MIDI FX. Multiple chains and parallel branches follow the same rules as audio cables: compatible ports only.

MIDI and audio jacks on the back of rack slots with patch cables
Wire MIDI OUT → MIDI FX IN → MIDI OUT → instrument the same way you route audio — all in this rear view.

Bundled MIDI FX plugins

PluginRole
TransposerShift all note numbers by semitones; other MIDI passes through.
HarmonizerAdd parallel harmony voices from intervals.
Chord expandTurn single notes into chord shapes (voicing selectable in the panel).
ArpeggiatorStep through held notes with rate and order controls.
Velocity curveRemap note velocities along a curve.
GateSuppress notes below a velocity threshold.

Bypass & hardware MIDI

Each MIDI FX header includes a power / bypass toggle and optional MIDI CC learn for bypass. When bypassed, events do not traverse that plugin (arpeggiators stop as expected).

Author your own

MIDI FX graphs use the midi_nodes: section in .gfpd instead of graph: audio nodes. See Plugin descriptors (.gfpd) and the repository guide HOW_TO_CREATE_A_PLUGIN.md.

← Modules · VST3 →