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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

880a012 · Nov 25, 2023

History

39 Commits
Dec 21, 2022
Nov 25, 2023
Apr 11, 2023
Apr 9, 2023
Dec 23, 2022
Dec 21, 2022
Dec 21, 2022
Dec 9, 2022
Dec 9, 2022
Dec 21, 2022
Apr 7, 2023
Dec 21, 2022
Dec 9, 2022
Nov 25, 2023
Nov 25, 2023
Apr 7, 2023

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.