midi-hid
This software allows mapping and translating of MIDI commands to HID inputs on Linux.
Installation and Usage
Install with
go install github.com/d4t4l0r3/midi-hid@latest
and run it with midi-hid
. If no config file is specified, it reads ~/.config/midi-hid/config.yaml
.
Every configured midi controller will be represented by a virtual gamepad, and the inputs will be translated until SIGINT is received.
Configuration
See example-config.yaml
For an annotated configuration file.
The valid names for buttons are:
Button name | Description |
---|---|
north |
E.g. Y on XBox or triangle on PS |
east |
E.g. B on XBox or circle on PS |
south |
E.g. A on XBox or X on PS |
west |
E.g. X on XBox or square on PS |
l1 |
Left bumper |
l2 |
Left trigger |
l3 |
Left stick pressed down |
r1 |
Right bumper |
r2 |
Right trigger |
r3 |
Right stick pressed down |
select |
Select, or Back on XBox |
start |
Start button |
dpad-up |
Directional pad up |
dpad-down |
Directional pad down |
dpad-left |
Directional pad left |
dpad-right |
Directional pad right |
Valid axis are left-x
, left-y
, right-x
and right-y
.
Finding the MIDI channel and note / controller
Many vendors provide official documentation on the MIDI commands sent by their devices, but if you are unable to find them, you can use aseqdump -p <port>
to print all MIDI messages sent by your device. Simply interact with the controls you want to map and you will see the corresponding messages.