DISCLAIMER: nearly 100% of everything you see on this repo was written with AI.
MIDIMaster is a desktop app that lets you bind MIDI controls (faders/knobs/buttons) to:
- System audio (master, focused app, per-app sessions)
- Audio devices (playback/recording)
- Integrations provided by runtime plugins (for example: OBS Studio, Elgato Wave Link)
Integrations are plugin-driven. Plugins can be installed at runtime (no rebuild required) and can ship their own:
- Target lists for the binding picker (including nested menus)
- Connection UI inside the Connections modal
- Runtime behavior when a binding triggers
- Feedback updates (UI + OSD + motor faders)
- Windows only (system audio + device control)
Plugins are distributed as .midimaster packages.
- Install from file:
Plugins -> Installed -> Install Plugin... - Install from the in-app Store:
Plugins -> Store
The in-app Store lists plugins from the official MIDIMaster catalog and installs them into your config directory.
- The app verifies Store downloads using a trusted public key.
- The Store service/catalog and signing keys are maintained separately (not in this repository).
- The official catalog is curated (plugins may be accepted/rejected/removed at the maintainer's discretion).
Third-party product names, trademarks, and logos are property of their respective owners and are used for identification purposes only.
This project is not affiliated with, endorsed by, or sponsored by OBS Project, Elgato, Discord, or any other third-party vendor.
Some third-party logos are included in this repository and shown in the UI (for example in the bundled integration plugins) purely to help users recognize the integration they are configuring. If you are a trademark owner and would like a logo removed or adjusted to comply with brand guidelines, please open an issue.
This repo is a Tauri v2 app. The frontend is plain static HTML/CSS/JS (no Node build step).
Prereqs (Windows)
- Rust (stable) and Cargo
- Visual Studio Build Tools / MSVC toolchain (required by Rust on Windows)
- Tauri CLI v2 (
cargo install tauri-cli --version "^2" --locked)
cargo tauri devBuild a release bundle locally
cargo tauri buildStore URL override (forks)
The in-app Store catalog URL can be overridden with MIDIMASTER_STORE_URL.
Example (PowerShell):
$env:MIDIMASTER_STORE_URL = "https://example.com/catalog.json"
cargo tauri devReleases are created from git tags.
- Update
src-tauri/tauri.conf.jsonversion. - Create and push a tag in the form
v<version>(example:v0.1.0).
Pushing the tag triggers the GitHub Actions release workflow, which builds the Windows bundle and attaches the installer artifacts to a GitHub Release.
Documentation
- User guide:
docs/USER_GUIDE.md - Plugin developer guide (API v1):
docs/PLUGIN_DEVELOPER_GUIDE.md
Plugin examples
- Demo plugin:
plugin-example/demo/ - Starter template:
plugin-example/template/
MIT. See LICENSE.