files/en-us/web/api/midiaccess/index.md
{{securecontext_header}}{{APIRef("Web MIDI API")}}
The MIDIAccess interface of the Web MIDI API provides methods for listing MIDI input and output devices, and obtaining access to those devices.
MIDIAccess is a transferable object.
{{InheritanceDiagram}}
The {{domxref("Navigator.requestMIDIAccess()")}} method returns a promise that resolves with a MIDIAccess object. Information about the input and output ports is returned.
When a port changes state, information about that port is printed to the console.
navigator.requestMIDIAccess().then((access) => {
// Get lists of available MIDI controllers
const inputs = access.inputs.values();
const outputs = access.outputs.values();
access.onstatechange = (event) => {
// Print information about the (dis)connected MIDI controller
console.log(event.port.name, event.port.manufacturer, event.port.state);
};
});
{{Specifications}}
{{Compat}}