This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
The statechange event of the MIDIAccess interface is fired when a new MIDI port is added or when an existing port changes state.
Use the event name in methods like addEventListener(), or set an event handler property.
addEventListener("statechange", (event) => { })
onstatechange = (event) => { }
A MIDIConnectionEvent. Inherits from Event.
MIDIConnectionEvent.port Read only
Returns a reference to a MIDIPort instance for a port that has been connected or disconnected.
The Navigator.requestMIDIAccess() method returns a promise that resolves with a MIDIAccess object. When a port changes state, information about that port is printed to the console.
navigator.requestMIDIAccess().then((access) => {
access.onstatechange = (event) => {
console.log(event.port.name, event.port.manufacturer, event.port.state);
};
});
| Specification |
|---|
| Web MIDI API> # dom-midiaccess-onstatechange> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
statechange_event |
43 | 79 | 108 | 30 | No | 43 | No | 30 | No | 4.0 | 43 | No |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/MIDIAccess/statechange_event