https://github.com/tiagolr/mididash
Midi router with Lua scripting and a node based interface
https://github.com/tiagolr/mididash
audio audio-midi linux macos midi midi-events midi-router midi-router-linux midi-router-win router tauri windows
Last synced: 30 days ago
JSON representation
Midi router with Lua scripting and a node based interface
- Host: GitHub
- URL: https://github.com/tiagolr/mididash
- Owner: tiagolr
- License: gpl-3.0
- Created: 2024-12-14T18:26:11.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2025-01-03T01:02:52.000Z (4 months ago)
- Last Synced: 2025-02-09T21:45:16.722Z (3 months ago)
- Topics: audio, audio-midi, linux, macos, midi, midi-events, midi-router, midi-router-linux, midi-router-win, router, tauri, windows
- Language: Vue
- Homepage: https://mididash.com
- Size: 1.39 MB
- Stars: 15
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
Mididash
[](https://github.com/tiagolr/mididash/releases)
[](https://github.com/tiagolr/mididash/releases)
[](https://github.com/tiagolr/mididash/releases)[](https://github.com/tiagolr/mididash/releases/latest)


Mididash is an open source MIDI routing software with a node-based interface and Lua scripting. A modern take on programs like [MIDI-OX](http://www.midiox.com).

### Features
* **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### Download
The latest version and others can be found on [Github releases](https://github.com/tiagolr/mididash/releases)
### How does it compare with MIDI-OX?
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.
### Limitations
#### Beta software
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.
#### Unsigned software
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 Testing
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.
### Hot plugging
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.
### Scripts and templates
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`.### Development
Make sure [tauri 2 requirements](https://v2.tauri.app/start/prerequisites/) are met for the target platform, hit `npm install` and then `npm start` should start the application in development mode.
### License
[GPL 3](https://www.gnu.org/licenses/gpl-3.0.en.html)