The MIDI 2.0 Workbench is a free tool from MIDI Association Members to help developers develop, debug (and deploy) MIDI 2.0 Applications and Devices. It runs on Windows, Mac and Linux. The Workbench connects to your device or software to test various MIDI 2.0 implementation features against the currently released specifications.
It provides a comprehensive debug of:
- UMP messages
- Stream Messages
- Channel Voice Messages
- System Messages
- Utility Messages
- System Exclusive
- MIDI-CI v1.1 and 1.2
- Discovery
- Property Exchange
- Profiles
- Process Inquiry
- Protocol Negotiation (MIDI-CI 1.1 only)
- Standard MIDI File 2 - Processor and validator
The MIDI 2.0 Workbench also test various UMP transports where possible.
To test USB MIDI 2.0 please make sure you use either:
- OSX 14+
- Linux with a 6.5+ Kernel and ALSA libs 1.2.10+
Some prior version may work with mixed results.
This project uses a lot of raw data, as such it may not use available OS API's. It is recommended to use OS API's where available, and this project should not been seen as reference code.
Use version 18.x of Node.js. Later versions have issues with the C++ plugins. On Mac please make sure the Xcode command line tools are installed.
After you cloned this repository please run:
yarn
yarn run build
To run the application:
yarn run start
Q: Why are there no binary releases?
A: This will happen eventually. Once code-signing is set up and working this will occur.
Q: Later Ubuntu distro's don't support Node 18. How do I get it work?
A: Use yarn and nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install 18
nvm use 18
git clone https://github.com/midi2-dev/MIDI2.0Workbench.git
cd MIDI2.0Workbench
sudo apt-get install libasound2-dev
sudo npm -g install yarn
yarn
yarn run build
yarn run start
If you have issues with running electron then the following commands may help:
cd node_modules/electron/dist
node_modules/electron/dist $ sudo chown root:root chrome-sandbox
node_modules/electron/dist $ sudo chmod 4755 chrome-sandbox
This Project aims to follow the current public MIDI specifications. Please use the GitHub Issues to log any bugs, suggestions etc.
This project is supported and copyrighted by Yamaha Corporation 2020 under MIT.
