Skip to content

Latest commit

Β 

History

45 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎹 Midirun

v0.2.1-beta Program and daemon for using any midi controller as a macro pad on Linux.

⭐ See Midirun Config for GUI configuration tool!

demo

πŸ–₯️ Support

🐧 Linux
  • Support for Wayland and X11

πŸ”‹ Dependencies

⬇️ Installing From AUR

yay -Syy midirun

# Logout and login to apply user group
sudo usermod -aG input $USER

πŸ”Œ Compiling and Installing

1. Install Dependencies

Arch Linux
sudo pacman -S rtmidi tomlplusplus gcc cmake
Fedora Linux
sudo dnf install rtmidi-devel tomlplusplus-devel meson
Debian
sudo apt update
sudo apt install librtmidi-dev meson

2. Clone the Project, Compile and Install

Clone the Project
git clone https://github.com/JackMechem/MidiRun.git

cd MidiRun
Compile and Install
meson setup build
meson compile -C build
meson install -C build

Permissions for /dev/uinput

MidiRun needs read and write access to /dev/uinput to simulate key strokes. This script creates a udev rule and gives users in the input group read and write access to /dev/uinput.

./create_udev_rule.sh

# Logout and login to apply user group
sudo usermod -aG input $USER

πŸ”§ Usage

Help Page

Help Page
midirun -h

Listing Midi Devices and Listen

Listing all devices

midirun --list-io
# OR
midirun -lio

Listening to a midi port

midirun -ln 2             # Replace the 2 with what ever port you are using
OR
midirun --listen 2        # Replace the 2 with what ever port you are using

πŸš— Run as User Service (Recomended)

systemctl --user enable midirun
systemctl --user start midirun

πŸš• Run Normally

Run With Default Config Path ~/.config/midirun/config.toml

midirun

Run With a Custom Config Path

midirun -c /path/to/config.toml
# or
midirun --config /path/to/config.toml

πŸ”§ Configuration

Default Configuration File Path

~/.config/midirun/config.toml

⭐ For GUI config tool see midirun-config (recomended)

Manual Configuration

Config Section

The config section only contains the input port.
To find the input port, see the listing io section.

[config]
inputPort = 2 # The port of your input device

Mapping Section

The mapping section is composed of an array of tables named mapping.

Overall Syntax

[[mapping]]
name = "Top Left Button"
byte0 = 144
byte1 = 38
key = [2, 3, 4] # Key codes can be found with showkey --keycode

About

Small and minimal program to simulate keystrokes and launch programs with a midi controller.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages