XOSC uses the Web MIDI API, which is built into Electron's Chromium runtime. Plug a USB MIDI device in, switch the capture source to MIDI, and bind.
Supported messages
- Note On / Note Off — Note On binds the key. The matching Note Off automatically counts as the "release" (used by Hold mode).
- Control Change (CC) — bound to the CC number on a given channel.
- Pitch Bend — channel-wide.
- Program Change — bound to the program number on a given channel.
Channel matching
Channel is part of the signature. Channel 1 Note 60 is a different binding from Channel 2 Note 60. If your hardware lets you change channels per pad, that's a quick way to get more bindings out of one device.
Pitchbend / CC values
For now, the value of a CC or pitchbend isn't forwarded; we trigger like a button. A future build will expose continuous-value mapping (CC 0–127 → OSC float 0.0–1.0) — the easiest place to add it is useMappingRouter.ts.