m10x / midi2key-ng

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

midi2key-ng

Release Go Report Card GitHub go.mod Go version Fyne.io Gomidi License

About

Map Buttons, Knobs and Sliders of your Midi Controller to Different Functions. With GUI. Developed for Linux (x11 & wayland) and a Behringer X Touch Mini, but most features are also working on Windows/MacOS and with other Midi Controllers.

Features

Give your midicontroller the ability to:

  • emulate key presses or combos
    • wayland: use e.g. ydotool console command
  • write text
    • wayland: use e.g. ydotool console command
  • run console commands
  • control your audio (currently only for linux)
    • mute/unmute/toggle your input/output devices or even specific applications
    • increase/decrease/set volume of your input/output devices or even specific applications

Screenshots

Overview of Assignments image

New Assignment image

Edit an Assignment image

How to Install

Option 1: Download precompiled binary (Linux, Windows, MacOS)

Download a precompiled binary from the latest Release.

Option 2: Fetch using go (Linux, Windows, MacOS)

The repository can be fetched and installed using Go.
go install -v github.com/m10x/midi2key-ng@latest

Roadmap

  • update fyne (versions higher than 2.4.1 are throwing errors)
  • check why systray icon is missing after fyne has been updated
  • build midi2key-ng 1.1.0 executables (cross compiling didn't work anymore using the script)
  • warn if key is already assigend
  • reorder rows
  • multiple profiles
  • hotkeys to start/stop listening
  • implement soundboard functionality using beep
  • add mouse emulation functionalities
  • add optional textbox with log output
  • add code comments
  • export / import Key Mapping
  • improve design, layout etc.
  • test other midi controllers
  • add Windows Audio Control
  • add MacOS Audio Control

For Developers

  • sudo apt install libx11-dev xorg-dev libxtst-dev
  • sudo apt-get install libasound2-dev

For Wayland

Credits

Frontend Framework:

fyne
https://fyne.io/

MIDI Library:

gomidi
https://gitlab.com/gomidi/midi/ https://pkg.go.dev/gitlab.com/gomidi/midi/v2

Simulate Keyboard + Mouse

robot-go https://github.com/go-vgo/robotgo

About

License:Apache License 2.0


Languages

Language:Go 97.1%Language:Shell 2.9%