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


Groups > comp.lang.javascript > #37310

Re: Advanced logic "measure a bar"

Newsgroups comp.lang.javascript
Date 2019-09-20 14:38 -0700
References (4 earlier) <95392c1e-40d1-49d7-9f38-3b38024cfdb2@googlegroups.com> <61344e74-c5a6-4856-8c25-3a0fe910f5c1@googlegroups.com> <e8a307f6-4a90-4870-9856-3892e69efceb@googlegroups.com> <eb778827-b283-4615-a4ae-d01064d3d424@googlegroups.com> <0c72bb0f-e6a2-4abe-b7c4-b2206b11cfa3@googlegroups.com>
Message-ID <e478f1a0-5df5-483d-b2b7-e65939ba72b0@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. 17:23:32 UTC+2 skrev Jonas Thörnvall:
> Den torsdag 19 september 2019 kl. 17:19:34 UTC+2 skrev Jonas Thörnvall:
> > Den torsdag 19 september 2019 kl. 17:18:55 UTC+2 skrev Jonas Thörnvall:
> > > Den torsdag 19 september 2019 kl. 06:02:11 UTC+2 skrev Jonas Thörnvall:
> > > > Den torsdag 19 september 2019 kl. 06:00:45 UTC+2 skrev Jonas Thörnvall:
> > > > > Den torsdag 19 september 2019 kl. 04:38:38 UTC+2 skrev Michael Haufe (TNO):
> > > > > > On Wednesday, September 18, 2019 at 8:36:22 PM UTC-5, Jonas Thörnvall wrote:
> > > > > > > [...]
> > > > > > > 
> > > > > > > Any comment????????????????
> > > > > > 
> > > > > > """
> > > > > > Visitor to a village stops a local and asks, "How do I get to Aberdeen from here?"
> > > > > > Local answers, "Och, if I were going to Aberdeen, I wouldn't start from here!"
> > > > > > """
> > > > > > 
> > > > > > http://wiki.c2.com/?WouldntStartFromHere
> > > > > 
> > > > > The idea behind the logic seem sound to me. Get scrollbar position get NOTE ON offset "distance" relative scrollbar, get NOTE OFF distance relative NOTE OFF "rectangle length"
> > > > > 
> > > > > Iterate and calculate NOTE ON and NOTE OFF relative the moving scrollbar again and again...
> > > > > 
> > > > > And the console log seems to indicate that the logic is correct?
> > > > > "THAT IS HOWEVER NOT WHAT IS GOING ON AT THE SCREEN??????"
> > > > > 
> > > > > So where does the flaw reside?
> > > > 
> > > > Ooops "distance relative NOTE ON"
> > > 
> > > I think i did throw this out before with out result. Maybe i simply move the keys that released into a new array. So new keypresses do not interfere, well that is my idea for now. Because when they are in that array new keypresses can't affect the ones in the saved and they only have a relation to scrollbar "and canvas end, i think that is it".
> > > 
> > > But then again how realtime rendering do effect the recording latency is a real problem, but you do not have to use it, since it starts unchecked.
> > 
> > A good rule if you can't solve the problem sidestep them.
> Baslcly i get a new array with start end values "a length" that only have a relation to the scrollbar. If that doesn't solve it, it must be something inherently wrong with the language.

Nah there is definitly a bug in javascript, probably same in other languages because i remember the quirk.

This is how far i got, i could added the limits for only paint the bar within canvas timeslot, but since it not working there is no point to it.

I think this is basicly the code i started with a year back or so, back at square one.

var midiEv=0;
var rightSide=[];
var FRONTOFFSET=[];
var barLength=[];
var keyreleased=[]; 

for (var p=0;p<3000;p++) {rightSide[p]=0;FRONTOFFSET[p]=0;keyreleased[p]=false;}

function pianoSCROLL(){
nbrOfEV = track[rectrack].midiMess.length;
var x=0;
 while (x<nbrOfEV){
   midiEv=x;
   //INSIDE KEY PRESSED
   if(track[rectrack].midiMess[midiEv].data0==NOTE_ON && keyreleased[midiEv]==false){
      console.log("Pressed Key");
      ctm.fillStyle = "magenta";
	  ctm.fillRect(50,(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), rightSide[midiEv],keyHeight);
	  //When ***A NEW*** key pressed a startvoint relative the scrollbar created ***FRONTOFFSET***
      if(FRONTOFFSET[midiEv]==0) {FRONTOFFSET[midiEv]=scrollBarPos;}
	  rightSide[midiEv]=scrollBarPos-FRONTOFFSET[midiEv];
	  barLength[midiEv]=rightSide[midiEv]-50;      
   } 
   //INSIDE KEY RELEASED
   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 = "#000a4d";
	     ctm.fillRect(50,(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)),rightSide[q],keyHeight);
		 keyreleased[q]=true;
	   }
	 keyreleased[midiEv]=true;
    }
   } 
   //INSIDE MOVE BAR
   else if(track[rectrack].midiMess[midiEv].data0==NOTE_ON && keyreleased[midiEv]==true){
	  z=midiEv+1;
      while(z<nbrOfEV){
		//console.log("z= "+z+" midiEv= "+midiEv+" Avar "+ track[rectrack].midiMess[z].data1+" Bvar "+track[rectrack].midiMess[midiEv].data1);	  
      	if(track[rectrack].midiMess[z].data1==track[rectrack].midiMess[midiEv].data1){
	    ctm.fillStyle = "#000a4d";
		ctm.fillRect(scrollBarPos-FRONTOFFSET[midiEv]-barLength[midiEv]-6,(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)),scrollBarPos-FRONTOFFSET[midiEv]+6 ,keyHeight+1);
	 	ctm.fillStyle = "white";
	    ctm.fillRect(scrollBarPos-FRONTOFFSET[midiEv]-barLength[midiEv],(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), scrollBarPos-FRONTOFFSET[midiEv],keyHeight);
        }
	   z++;
     }
   } 
  x++;
 }
}

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