Mididash is an open source MIDI routing software with a node-based interface and Lua scripting. A modern take on programs like MIDI-OX.
- Cross-platform available on Windows, Linux and macOS
- Node-based MIDI routing allows for versatile configurations
- Hot-plugging reconnect or replace MIDI devices
- MIDI monitoring for inputs, outputs or individual nodes
- Pre-configured nodes for MIDI splitting, mapping and more
- Script nodes using Lua 5.4
- Lightweight installer under 10MB
- High performance built with Tauri and Rust
The latest version and others can be found on Github releases
MIDI-OX is the main reference for this program, this one offers more routing capabilities and practical scripting via Lua nodes, it does not contain the same amount of MIDI tools like bank selectors or NPRN calculators but those can be added over time.
In terms of performance, it's about the same CPU usage (e.g. 5% CPU on high midi throughput), the bundle size is small but cannot compete with 1MB of MIDI-OX, the memory footprint of the program is also similar but the webview can consume a few dozen MBs.
This software is under active development, the core features are ready but there may be changes in appearance, stability patches and other changes until version 1.0.
Signing licenses have associated costs and required setup, for now this software is unsigned which means that additional steps are required for installation:
- Windows: Skip the installation protection screen when prompted.
- macOS: Navigate to System Preferences → Privacy & Security → Unblock the app after attempting to open it.
MacOs builds are tested on a slow, unstable virtual machine using Ventura 13.7, other versions of the OS have not been tested and it's the least tested target, please open a ticket for new issues found.
New devices or disconnected devices are detected every few seconds. To add a new device to the project simply drag and drop it from the sidebar into the viewport. To replace a missing device or a device with changed ID click its node (if it exists) and then Replace device
from the sidebar - it will assign the device to that node and re-establish all previous connections.
Using Lua 5.4 it's possible to program nodes for any kind MIDI processing. A few examples have been included to demonstrate how to modify and forward bytes. To test a script press Ctrl+Enter
or Cmd+Enter
from the code editor. Once a script is loaded into a node, it will run every time a signal is received on its input port.
Scripts can be saved as global templates to be reused in projects, to do so
click the settings icon near the code editor and then Save as template
.
Make sure tauri 2 requirements are met for the target platform, hit npm install
and then npm start
should start the application in development mode.