Uncaught TypeError: Failed to execute 'send' on 'MIDIOutput': Overload
From
=?UTF-8?Q?Jonas_Th=C3=B6rnvall?=@21:1/5 to
All on Wed Nov 10 10:03:55 2021
I have an initiation function for recording, it contains a setInterval call to a countIn function and also a setInterval that start after countIn, without doing the countIn it works flawlessly but as soon the count in "done before" starting recording it
all fails with the error messages above. Why?
function recSomeNotes(){
//Recordings are stopped in DrawSCROLLBAR
REALTIME=performance.now()-browserLoadTIME;
while(REALTIME>schedTime){
outportarr[outportindex].send(noteMessage[playPos]);
if (echo && mode=="Play"){
pianoKeypressOut();
}
schedTime=copyEv[playPos]+schedTime;
playPos++;
}
}
function countIn(){
if (jint<8){
if (mvol==1 || mvol==noteval+1) { metvol=120; } else { metvol=50;}
if(SF2PLAY==false){
noteMessage = [153, 77, metvol];
outportarr[outportindex].send(noteMessage);
} else {
synth.NoteOn(153, 77, metvol);
synth.NoteOff(153,77);
}
ctT.fillStyle = "red";
ctT.fillRect(240+prog, 5, 10,10);
prog=prog+15;
jint++;
mvol++;
} else {
clearInterval(stopCount);
recScrollAnime();
browserLoadTIME=performance.now();
}
}
//CALLED WHEN REC PUSHED IN HTML DOCUMENT
function recINIT() {
console.log("recInit()"+activetrack);
mode="Record";
document.getElementById("keystream").value = "";
//If record mode replace remove notes within boundary
if (document.getElementById("recordmode").value == "REPLACE") {
console.log("REMOVING EVENTS");
removeTrackMessages(rectrack);
}
//Remember the active track, before change to temptrack for recording
savetrack=activetrack;
//Temptrack to record is 333 and "after cleanup" move the section into the realtrack.
rectrack=333;
track[rectrack].midiMess.length=0;
buildRecTrack(); //In mixdown
//Which device should playup metronome
metToUse();
drawnlines=0;
prog=0;//?????????
midEvent = 0;
waittime = 0;
myTime=waittime;
mode = "Record";
keepGoing = true;
recordmidi = true;
recProgMess();
recCCMess();
recUIupdate();
reshed=0;schedTime=0;playPos=0;oldPassedTime=0;
jint=0;mvol=1;
stopCount=setInterval(countIn,400);
if(SF2PLAY==false){
stopRec=setInterval(recSomeNotes,3200);
} else {
stopRec=setInterval(SF2RecSomeNotes,3200);
}
}
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)