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) ;
} ) ;