• I try to serialise midi calls in time but it breaks down.

    From =?UTF-8?Q?Jonas_Th=C3=B6rnvall?=@21:1/5 to All on Wed Nov 10 10:20:45 2021
    Without doing a countIn setInterval function that is closed "well in time" before rec is loaded it works perfect.

    But as soon one try to run the countIn
    MAINrecordMid.js:141 Uncaught TypeError: Failed to execute 'send' on 'MIDIOutput': Overload resolution failed.

    //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);
    setTimeout(mainREC,4000);
    }

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

    function mainREC(){
    recScrollAnime();
    browserLoadTIME=performance.now();
    if(SF2PLAY==false){
    stopRec=setInterval(recSomeNotes,5);
    } else {
    stopRec=setInterval(SF2RecSomeNotes,5);
    }
    }

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)