MIDIPort
Limited availability
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 MIDIPort interface of the Web MIDI API represents a MIDI input or output port.
A MIDIPort instance is created when a new MIDI device is connected. Therefore it has no constructor.
Instance properties
MIDIPort.idRead only-
Returns a string containing the unique ID of the port.
MIDIPort.manufacturerRead only-
Returns a string containing the manufacturer of the port.
MIDIPort.nameRead only-
Returns a string containing the system name of the port.
MIDIPort.typeRead only-
Returns a string containing the type of the port, one of:
MIDIPort.versionRead only-
Returns a string containing the version of the port.
MIDIPort.stateRead only-
Returns a string containing the state of the port, one of:
"disconnected"-
The device that this
MIDIPortrepresents is disconnected from the system. "connected"-
The device that this
MIDIPortrepresents is currently connected.
MIDIPort.connectionRead only-
Returns a string containing the connection state of the port, one of:
Instance methods
This interface also inherits methods from EventTarget.
MIDIPort.open()-
Makes the MIDI device connected to this
MIDIPortexplicitly available, and returns aPromisewhich resolves once access to the port has been successful. MIDIPort.close()-
Makes the MIDI device connected to this
MIDIPortunavailable, changing thestatefrom"open"to"closed". This returns aPromisewhich resolves once the port has been closed.
Events
statechange-
Called when an existing port changes its state or connection.
Examples
>List ports and their information
The following example lists input and output ports, and displays information about them using properties of MIDIPort.
function listInputsAndOutputs(midiAccess) {
for (const entry of midiAccess.inputs) {
const input = entry[1];
console.log(
`Input port [type:'${input.type}'] id:'${input.id}' manufacturer: '${input.manufacturer}' name: '${input.name}' version: '${input.version}'`,
);
}
for (const entry of midiAccess.outputs) {
const output = entry[1];
console.log(
`Output port [type:'${output.type}'] id: '${output.id}' manufacturer: '${output.manufacturer}' name: '${output.name}' version: '${output.version}'`,
);
}
}
Add available ports to a select list
The following example takes the list of input ports and adds them to a select list, in order that a user can choose the device they want to use.
inputs.forEach((port, key) => {
const opt = document.createElement("option");
opt.text = port.name;
document.getElementById("port-selector").add(opt);
});
Specifications
| Specification |
|---|
| Web MIDI API> # MIDIPort> |
Browser compatibility
Loading...