Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #37296

Re: Advanced logic "measure a bar"

Newsgroups comp.lang.javascript
Date 2019-09-18 18:17 -0700
References <d9319dae-f5c1-4023-9d26-a240dbfe8251@googlegroups.com>
Message-ID <910a51bb-98a4-44b3-bd72-9ea40bcbfdeb@googlegroups.com> (permalink)
Subject Re: Advanced logic "measure a bar"
From Jonas Thörnvall <jonas.thornvall@gmail.com>

Show all headers | View raw


Den torsdag 19 september 2019 kl. 03:15:02 UTC+2 skrev Jonas Thörnvall:
> You probably need a midiinterface.
> https://midisequenser.000webhostapp.com/
> 
> 1. Check RT NOTE RENDER
> 2. Press "REC"
> 3. USE VIRTUAL PIANO / OR MIDI PIANO "PRESS NOTE"
> 4. "RELEASE NOTE" watch what happen
> 5. Read the values of canvas rectangles in console log
> 
> 
> This logic escape me.
> 
> Now i blank out full key after each render which of course not right, but beyond point about what goes wrong. In console log i can clearly see that rightSide and leftSide keep paste "move parallell" that is not howerver what is going on at the screen. A hint please....
> 
> 
> var midiEv=0;
> var rightSide=[];
> var FRONTOFFSET=[];
> var barLength=[];
> var keyreleased=[]; 
> leftSide=50;
> for (var p=0;p<3000;p++) {rightSide[p]=0;FRONTOFFSET[p]=0;keyreleased[p]=false;}
> 
> function pianoSCROLL(){
> nbrOfEv = track[rectrack].midiMess.length;
>  while (nbrOfEv>0){
>     midiEv=nbrOfEv-1;
>    //INSIDE WHEN KEY PRESSED
>    if(track[rectrack].midiMess[midiEv].data0==NOTE_ON && keyreleased[midiEv]==false){
>       console.log("Pressed Key");
>       ctm.fillStyle = "magenta";
>       ctm.fillRect(leftSide,(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), rightSide[midiEv],keyHeight-2);
>       //When ***A NEW*** key pressed a startpoint relative the scrollbar created ***FRONTOFFSET***
>       if(FRONTOFFSET[midiEv]==0) {FRONTOFFSET[midiEv]=scrollBarPos;}
>       rightSide[midiEv]=scrollBarPos-FRONTOFFSET[midiEv];
> 	  barLength[midiEv]=rightSide[midiEv]-leftSide;
> 	  console.log("INSIDE HOLDKEY Barlength "+barLength[midiEv]+" =right  "+rightSide[midiEv]+" - left "+leftSide);
>    } 
>    //INSIDE KEY RELEADED
>    else if(track[rectrack].midiMess[midiEv].data0==NOTE_OFF && keyreleased[midiEv]==false){
>      for(var q=0;q<midiEv;q++){ 
>        if(track[rectrack].midiMess[q].data1==track[rectrack].midiMess[midiEv].data1) { 
> 	     console.log("midiEV data1"+track[rectrack].midiMess[midiEv].data1);
> 	     ctm.fillStyle = "red";
> 	     ctm.fillRect(leftSide,(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), rightSide[q],keyHeight-2);
> 	     keyreleased[q]=true;
> 	     
> 	  }
> 	  
> 	  console.log("INSIDE RELEASE Barlength "+barLength[q]+" =right  "+rightSide[q]+" - left "+leftSide);
>       keyreleased[midiEv]=true;
>     }
>    } 
>    //INSIDE  FULL BAR MOVING
>    
>    else if(track[rectrack].midiMess[midiEv].data0==NOTE_OFF && keyreleased[midiEv]==true) {
>       ctm.fillStyle = "black";
> 	  ctm.fillRect(keylength+1,(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), Mwidth,keyHeight);
> 	  for(var q=0;q<midiEv;q++){ 
>         if(track[rectrack].midiMess[q].data1==track[rectrack].midiMess[midiEv].data1) { 
> 		  //rightSide[q]=scrollBarPos-FRONTOFFSET[q];	
> 		  rightSide=scrollBarPos-FRONTOFFSET[q];
>           leftSide=rightSide-barLength[q];
> 	      ctm.fillStyle = "white";
> 		  console.log("INSIDE FULL BAR MOVING  Leftside "+leftSide+" =Rightside  "+rightSide+" - Barlength "+barLength[q]);
> 	      ctm.fillRect(leftSide,(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), rightSide,keyHeight-2);
> 	    }
>       } 
>    }
>    nbrOfEv--; 
>  }
> }

This problem seems old like real oldschool.

https://www.youtube.com/watch?v=mnTX2p22CWs

I don't think i ever solved it.

Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-18 18:14 -0700
  Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-18 18:17 -0700
  Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-18 18:28 -0700
    Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-18 18:36 -0700
      Re: Advanced logic "measure a bar" "Michael Haufe (TNO)" <tno@thenewobjective.com> - 2019-09-18 19:38 -0700
        Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-18 19:59 -0700
        Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-18 20:11 -0700
        Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-18 20:42 -0700
        Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-18 21:00 -0700
          Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-18 21:02 -0700
            Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-19 08:18 -0700
              Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-19 08:19 -0700
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-19 08:23 -0700
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-20 14:38 -0700
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-21 02:14 -0700
                Re: Advanced logic "measure a bar" John G Harris <niam@jghnorth.org.uk.invalid> - 2019-09-21 10:35 +0100
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-21 05:17 -0700
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-21 05:29 -0700
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-22 04:52 -0700
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-22 12:32 -0700
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-23 00:38 -0700
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-24 05:17 -0700
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-24 05:18 -0700
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-24 05:21 -0700
                Re: Advanced logic "measure a bar" Martin Leese <please@see.Web.for.e-mail.INVALID> - 2019-09-24 13:14 -0600
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-24 12:30 -0700
                Re: Advanced logic "measure a bar" Martin Leese <please@see.Web.for.e-mail.INVALID> - 2019-09-24 13:53 -0600
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-24 22:13 -0700
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-25 02:54 -0700
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-25 22:32 -0700
                Re: Advanced logic "measure a bar" Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-09-30 02:05 -0700

csiph-web