dom / latest / navigator / requestmidiaccess.html /

Navigator.requestMIDIAccess()

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The requestMIDIAccess() method of the Navigator interface returns a Promise representing a request for access to MIDI devices on a user's system. This method is part of the Web MIDI API, which provides a means for accessing, enumerating, and manipulating MIDI devices.

This method may prompt the user for access to MIDI devices available to their system, or it may use a previously established preference to grant or deny access. If permission is granted then the Promise resolves and a MIDIAccess object is returned.

Syntax

requestMIDIAccess()
requestMIDIAccess(MIDIOptions)

Parameters

MIDIOptions Optional

An Object representing options to pass into the method. These options are:

sysex

A Boolean value that, if set to true, allows the ability to send and receive system exclusive (sysex) messages. The default value is false.

software

A Boolean value that, if set to true, allows the system to utilize any installed software synthesizers. The default value is false.

Return value

A Promise that resolves with a MIDIAccess object.

Exceptions

AbortError DOMException

If the document or page is closed due to user navigation.

InvalidStateError DOMException

If the underlying system raises any errors.

NotSupportedError DOMException

If the feature or options are not supported by the system.

SecurityError DOMException

If the user or system denies the application from creating a MIDIAccess object with the requested options, or if the document is not allowed to use the feature (for example, an iframe without the correct Permission Policy, or when the user has previously denied a permissions access to the feature).

Examples

In the following example, the Navigator.requestMIDIAccess() method returns the MIDIAccess object, which gives access to information about the input and output MIDI ports.

navigator.requestMIDIAccess().then(function (access) {
  // Get lists of available MIDI controllers
  const inputs = access.inputs.values();
  const outputs = access.outputs.values();

});

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
requestMIDIAccess
43
79
100
97-100
No
30
No
43
43
No
30
No
4.0
secure_context_required
43
79
100
Permission must be granted through a site permission add-on.
No
30
No
43
43
No
30
No
4.0

See also

© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/requestMIDIAccess