Skip to content

[WIP] Web MIDI implementation for React Native using Expo Modules

License

Notifications You must be signed in to change notification settings

motiz88/react-native-midi

Repository files navigation

@motiz88/react-native-midi

An experimental Web MIDI API polyfill for React Native.

Features

  • Android support (via android.media.midi)
  • iOS support (via Core MIDI)
  • Web support (on browsers that support the Web MIDI API)
  • Bluetooth scanning, virtual ports, and other nonstandard capabilities

API

requestMIDIAccess(options?)

Equivalent to Navigator.requestMIDIAccess in the Web MIDI API. Respects the sysex option.

import { requestMIDIAccess } from "@motiz88/react-native-midi";

requestMIDIAccess().then((midiAccess) => {
  // Use midiAccess.inputs and midiAccess.outputs
});

Refer to the Web MIDI API docs for details.

Installation

NOTE: This package is experimental and may not work out of the box for you. Please file an issue if you encounter a problem.

If using Expo: expo install @motiz88/react-native-midi

Otherwise, add the dependency normally with npm install @motiz88/react-native-midi, and follow the guide to installing Expo modules in bare React Native projects (one-time setup).

Configure for iOS

Run npx pod-install after installing the npm package.

Configure for Android

No additional setup necessary.

Contributing

This project is in its early stages, but please feel free to look at the code and send PRs.

About

[WIP] Web MIDI implementation for React Native using Expo Modules

Resources

License

Stars

Watchers

Forks

Packages

No packages published