Platform Support
Support matrix
Section titled “Support matrix”| Platform | Transport | Minimum | Status |
|---|---|---|---|
| Web | navigator.requestMIDIAccess (browser Web MIDI passthrough) | Any Web-MIDI-capable browser | ✅ |
| iOS | CoreMIDI — USB-MIDI | iOS 14+ | ✅ |
| Android | android.media.midi — USB-MIDI | API 24+ (Android 7) | ✅ |
| BLE-MIDI | Bluetooth LE MIDI | — | 🔜 planned |
On Web, requestMIDIAccess delegates directly to navigator.requestMIDIAccess. This means:
- Chrome / Edge: full support, no extension needed.
- Firefox: no native Web MIDI support as of writing; a browser MIDI extension may help.
- Safari: no native Web MIDI support; a polyfill extension (e.g. Jazz-Plugin) may add it.
The browser handles all MIDI permission prompts itself.
- Minimum OS: iOS 14.
- Uses
MIDIInputPortCreateWithProtocol+kMIDIProtocol_1_0+MIDIEventList— modern CoreMIDI, no deprecated callback API. - No external native pod required (drops
@motiz88/react-native-midi’s external pod dependency). - USB-MIDI class-compliant devices are plug-and-play via the Lightning/USB-C camera adapter or directly on USB-C iPads.
- BLE-MIDI: not yet integrated natively. The consumer app can bridge BLE using
react-native-ble-managerin the interim.
Android
Section titled “Android”- Minimum SDK: API 24 (Android 7 Nougat).
- Uses
android.media.midi.MidiManager— the standard system MIDI API. - USB-MIDI class-compliant devices are plug-and-play via OTG adapter or directly on USB-C devices.
- BLE-MIDI: not yet integrated natively.
BLE-MIDI — planned
Section titled “BLE-MIDI — planned”Bluetooth LE MIDI (MIDI over BLE, per the MIDI Association spec) is not yet implemented natively in this library. It is explicitly on the roadmap.
Today’s workaround: use react-native-ble-manager in the consuming app to handle BLE MIDI discovery and data transfer, and pipe messages manually into the library’s event surface.
Want to contribute BLE-MIDI? Open an issue on GitHub to discuss the approach before sending a PR. The tracking issue is Odisei-Music/Odisei-Play#1143.