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.
EventTarget MIDIPort
This interface also inherits methods from EventTarget .
MIDIPort.open() Makes the MIDI device connected to this MIDIPort explicitly available, and returns a Promise which resolves once access to the port has been successful.
MIDIPort.close() Makes the MIDI device connected to this MIDIPort unavailable, changing the state from "open" to "closed". This returns a Promise which resolves once the port has been closed.
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} ' ` ,
) ;
}
}
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 ( "inputportselector" ) . add ( opt) ;
} ) ;