A small web application for sending random CC and NRPN values to MIDI devices.
Live at https://llozd.github.io/midi-randomiser/
Features configurable devices by creating sets of MIDI parameters (CC or NRPN, each with a number and a value range) - pick a MIDI output and channel, and hit Randomise to send a fresh random value to every enabled parameter.
Devices can be imported, saved, and exported, and are stored in JSON format.
- A Chromium-based browser (Chrome, Edge, Brave). MIDI output uses the Web MIDI API, which is not available in Firefox or Safari.
- The browser asks permission the first time the page requests MIDI access. The app can't list output ports until it is granted.
The app is plain static files with no build step. Serve the folder over HTTP and open it in Chrome/Edge:
npx serve
# or
python3 -m http.serverDev tooling is managed with npm. It is only needed for contributing - running the app itself needs no install.
npm install # installs linters and sets up the pre-commit hook
npm run lint # eslint + stylelint + json format + html + device files
npm run manifest # rebuild devices/index.json after adding a deviceLinting runs in CI on every pull request and must pass before merge.
Devices are plain JSON files in devices/. See CONTRIBUTING.md.
