Not a python question, just programming logic trap?
jonas.thornvall at gmail.com
jonas.thornvall at gmail.com
Wed Mar 13 04:30:34 EDT 2019
Den onsdag 13 mars 2019 kl. 09:23:50 UTC+1 skrev jonas.t... at gmail.com:
> Anyone who is good at see logic traps in programming? comp.lang.javascript is defunct so i try here.
>
> Using the metronome.
>
> https://midisequenser.000webhostapp.com
>
> I've tried to understand how following code can lead to that after the keyreleased the front of the keyed scrollbar raise/extend faster while the backend stay correct "in sync". One could think/imagine xFrontStart=scrollBarPos-FRONTOFFSET; somehow executed more then once after release, but how could it, the keyrelease is true only in that part of code and only done once???
>
> var FRONTOFFSET=0;
> var xKeylength=0;
> var xFrontStart=0;
> var xBackEnd=0;
> var keyreleased=false;
> function pianoSCROLL(){
>
> if(mess.data[0]==NOTE_ON && keyreleased==false){
> xBackEnd=keylength;
> ctm.fillStyle = "magenta";
> ctm.fillRect(xBackEnd,(PistartX+keyHeight*88)-(keyHeight*(mess.data[1]-8)), xFrontStart, keyHeight);
> if(FRONTOFFSET==0) {FRONTOFFSET=scrollBarPos;}
> xFrontStart=scrollBarPos-FRONTOFFSET;
> } else if(mess.data[0]==NOTE_OFF && keyreleased==false){
> console.log("keyreleased!");
> keyreleased=true;
> xBarLength=Math.round(xFrontStart-xBackEnd);
> ctm.fillStyle = "black";
> ctm.fillRect(keylength, (PistartX+keyHeight*88)-(keyHeight*(mess.data[1]-8)), Mwidth, keyHeight+2);
> }
> if (keyreleased) {
> //console.log("timebar backend moving");
> ctm.fillStyle = "black";
> ctm.fillRect(keylength, (PistartX+keyHeight*88)-(keyHeight*(mess.data[1]-8)), Mwidth, keyHeight+2);
> ctm.fillStyle = "orange";
> ctm.fillRect(xBackEnd,(PistartX+keyHeight*88)-(keyHeight*(mess.data[1]-8)),xFrontStart, keyHeight);
> xFrontStart=scrollBarPos-FRONTOFFSET;
> xBackEnd=Math.round(xFrontStart-xBarLength);
> console.log("xBackEnd="+xBackEnd+" xBarLength="+xBarLength+" xFrontStart="+xFrontStart);
> }
> }
Yes i am aware i should buffer keystrokes in range of canvas in an array, but first i want the actual logic to sync keystrokes with scrollbar.
More information about the Python-list
mailing list