• 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)