Is there a way to restart "close webMidi API" i put my navigator midiaccess request in a file to be able to reload and select inports. "Because i am clueless howto drop an attached port". So i thought i just make a new call requesting midi after i listed inports with checkboxes selected.
However i noticed the new navigator midiaccess request is just layered above the old one double, tripple, quadrupple notes and so on....
So my checkbox solution, to reload midi do not work it is just layered on top, how to one close the requested midiAccess?
If not possible how do one drop a port?
//MIDI ACCESS TO PORTS INITIATED
function midiInitiation(){
if (navigator.requestMIDIAccess) {
navigator.requestMIDIAccess(
{sysex: true}
)
.then(success,failure );
}
}
//IF MIDI ACCESS FAIL
function failure() {
console.error('No access to your midi devices.' + +msg)
}
//IF MIDI ACCESS INITIATED
function success(midi) {
mid = midi;
if (firstrun==true){listInPorts(mid);listOutPorts(mid);init();firstrun=false;}
checkInPorts(mid);
outputs = mid.outputs.values();
for (var output = outputs.next(); output && !output.done; output = outputs.next()) {
outportarr.push(output.value);
}
}
function listInPorts(){
console.log("***********************listInPorts()"

;
var x=0; portstring="<table border='1' bgcolor=cyan width='199'>";
inputs = mid.inputs.values();
//List ports in and out
Lportin = mid.inputs.values();
for (listinput = Lportin.next(); listinput && !listinput.done; listinput = Lportin.next()) {
var deviceIn = listinput.value.name;
var optin = document.createElement("option"

;
optin.text = deviceIn;
//document.getElementById("in_portsel"

.add(optin);
portstring=portstring+"<tr><td align=right><b>"+optin.text+"<input id='inBox"+x+"' type='checkbox' onChange='midiInitiation()' checked></b></td></tr> ";
x++;
}
document.getElementById("ports"

.innerHTML=portstring+"</table>";
}
function checkInPorts(mid){
var x=0;
inputs = mid.inputs.values();
for (var input = inputs.next(); input && !input.done; input = inputs.next()) {
varString="document.getElementById('inBox"+x+"').checked";
console.log("********"+varString);
var myVar = eval(varString);
if(myVar==false){ }
else if(myVar==true){ input.value.onmidimessage = onMIDIMessage; }
x++;
}
}
//LISTPORTS AFTER MIDI SUCCESS "CALLED FROM MAIN INIT"
function listOutPorts() {
PORTout = outportarr[outportindex];
Lportout = mid.outputs.values();
for (listoutput = Lportout.next(); listoutput && !listoutput.done; listoutput = Lportout.next()) {
var deviceOut = listoutput.value.name;
var optout = document.createElement("option"

;
optout.text = deviceOut;
document.getElementById("out_portsel"

.add(optout);
}
}