qmidiroute(1) MIDI event processor and router


qmidiroute [OPTION] [file]
qmidiroute { --help | --version }


qmidiroute is a versatile MIDI event processor and router for the ALSA sequencer. The graphical interface is based on the Qt4 toolkit. qmidiroute permits setting up an unlimited number of MIDI maps in which incoming events are selected, modified or even changed in type before being directed to a dedicated ALSA output port. The maps work in parallel, and they are organized in tabs. With qmidiroute it is for example possible to change or invert the scale of a keyboard, to transform keyboard strokes into program changes or controller data into notes.

Incoming MIDI events can be logged in a list and are displayed in different colors according to their MIDI type. qmidiroute provides one ALSA input port and as default two ALSA output ports. The numerical ALSA client id is displayed as part of the window title.

General Usage

After starting the application, the Unmatched tab is presented (see below). To start MIDI routing setup, the New map... button can be clicked, which will create a new MIDI map appearing as a tab in the map area. The entire setup can be saved to and loaded from a QMidiRoute file (.qmr). Several maps can be created to work in parallel. The maps can be organized using the Map Rename, Remove and Clone buttons. The Event Log is displayed in the bottom area by default, but can be hidden if not needed or floated as a top-level window on the desktop. Logging can also be disabled generally or for MIDI Clock events only.

MIDI Input

The Input field represents the incoming event filter of each map. Handled event types are Note, Controller, Pitchbend and Program Change. The events can be filtered by their respective values or by MIDI channel. Events matching the conditions specified in the Input field are directed to the Output field.

MIDI Output

The Output field sets terms into which event type the matching events are transformed, how their channel and values are transformed, and to which ALSA port they are directed. Channels and Values can be set Fixed, Offset or Reverse Offset with respect to the input event. As an example, Reverse Offset will take the value specified and subtract the incoming event value from it to produce the output event value. If the output range for a value is different from its input counterpart, the input range will be smoothly scaled to the output range. Events will be sent to the ALSA port specified. The number of available ALSA ports can be set using the corresponding command-line option.

Unmatched MIDI events

In the Unmatched tab, the handling of events not matching any input filter of the defined maps is specified. These events can be discarded or sent to a specified ALSA port.


--portCount <num>
Set the number of available ALSA output ports to <num>. The default is 2.
Print possible command-line options and exit.
Print version information and exit.
Name of a valid QMidiRoute (.qmr) file to be loaded on start.


QMidiRoute files containing MIDI routing data in plain text format.


An example MIDI map file can be found in /usr/share/qmidiroute or in /usr/local/share/qmidiroute


Errors and warnings are written to stderr(3).


Matthias Nagorni, Frank Kober and Guido Scholz. This manual page was written by Frank Kober <[email protected]>.