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


Groups > comp.lang.javascript > #37295 > unrolled thread

Advanced logic "measure a bar"

Started byJonas Thörnvall <jonas.thornvall@gmail.com>
First post2019-09-18 18:14 -0700
Last post2019-09-30 02:05 -0700
Articles 11 on this page of 31 — 4 participants

Back to article view | Back to comp.lang.javascript


Contents

  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

Page 2 of 2 — ← Prev page 1 [2]


#37336

FromJonas Thörnvall <jonas.thornvall@gmail.com>
Date2019-09-23 00:38 -0700
Message-ID<17cf6e8b-977d-41e6-ad6f-6c8bac96f34a@googlegroups.com>
In reply to#37334
Den söndag 22 september 2019 kl. 21:32:55 UTC+2 skrev Jonas Thörnvall:
> Den söndag 22 september 2019 kl. 13:52:44 UTC+2 skrev Jonas Thörnvall:
> > Den lördag 21 september 2019 kl. 14:29:28 UTC+2 skrev Jonas Thörnvall:
> > > Den lördag 21 september 2019 kl. 14:17:14 UTC+2 skrev Jonas Thörnvall:
> > > > Den lördag 21 september 2019 kl. 11:35:59 UTC+2 skrev John G Harris:
> > > > > On Fri, 20 Sep 2019 14:38:30 -0700 (PDT), Jonas Thörnvall
> > > > > <jonas.thornvall@gmail.com> wrote:
> > > > > 
> > > > >   <snip>
> > > > > >Nah there is definitly a bug in javascript, probably same in other languages because i remember the quirk.
> > > > >   <snip>
> > > > > 
> > > > > Please tell us what the problem is. Avoid talking about MIDI as most
> > > > > of us know nothing about MIDI access.
> > > > > 
> > > > >   John
> > > > 
> > > > Well there is really no midi to the problem but i am not sure the script start without a midi device.
> > > > 
> > > > 1.So scrollbarPos is just a moving target using the **clock** "main reference point".
> > > > 2. FRONTOFFSET when you press a key it has a distance to scrollbar "the front".
> > > > 3. When you release **same key** that is also a distance vs scroolbar thus you get a notelength "barLength" for note.
> > > > 
> > > > As you can see they are save in arrays.
> > > > So....
> > > > 
> > > > The cases starting with.
> > > > Pressed/Note On | Released/Note Off
> > > >       *
> > > >       *                   *
> > > > 
> > > > But we have to keep track if the note released, because if not the backend still stuck to the painted keyboard "bar expanding with stuck backend" Ok?
> > > > 
> > > > Or same note could have been released, so we must have a boolean for each pair that is released right. keyReleased[midiEv]
> > > > 
> > > > Then at each clocking "depending on FPS" the function called.
> > > > The problem is that internally in "some assembler code" or "machine code" something goes wrong, this is not just Javascript because i remember same problem from probably turbo pascal, some 30 years ago.
> > > > 
> > > > So it is some reference close to hardware that goes wrong "or my logic".
> > > > What basicly happen is that the wavefront of released note "rightside rectangle", moving twice the speed of backend "leftside rectangle". And if you try compensate by subtract also the backend, from the front "half speed", it affacts the leftside x of rectangle the first argument. So the backend to not move at all.
> > > > 
> > > > The values are linked at some fundamental level, but if you write out in console before write the rectangle the values come out correct.
> > > > 
> > > > That is it.
> > > > 
> > > > 
> > > >       *                 
> > > >       *
> > > 
> > > If you just want to try you probably do not need a midi interface cable, you could install a virtual midicable i use Tobias Erichsens loopMIDI, and then you use the virual keyboard.
> > > 
> > > You have to check RT render note, and press record. Press note on and release and watch what happens.
> > 
> > Well i added a break statement to the while z look, so if same keys pressed twice it do not step on to next keyrelease event 
> > 
> > But that is not the problem because the fault is there with just a single press and release of note, when only 2 events recorded.
> 
> Well this is the fastest variant i can do, anyone can to the looping and condition faster?
> But the reference bug in canvas still there.
> 
> 	var midiEv=0;
> 	var rightSide=[];
> 	var FRONTOFFSET=[];
> 	var barLength=[];
> 	var keyreleased=[]; 
>     
> 	function initPianoScroll(){
> 	for (var p=0;p<20000;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){
> 		keyreleased[midiEv]=true;	
> 		for (var q=midiEv-1;q>=0;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;
> 		    break;
>     		}
> 		}
>         /*
> 		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);
> 			break;
> 			}
> 		   z++;
> 		 }
> 	   } 
> 	  x++;
> 	 }
> 	}

I fixed the annoying bad rendering stripes, so could please someone at least throw an idea howto step around this annoying "double adding pixels to canvas?" at "lowlevel?" bug, because i can't even think out something to avoid it. Is this related to hardware or software?

	var midiEv=0;
	var rightSide=[];
	var FRONTOFFSET=[];
	var barLength=[];
	var keyreleased=[]; 
    
	function initPianoScroll(){
	for (var p=0;p<20000;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){
		keyreleased[midiEv]=true;	
		for (var q=midiEv-1;q>=0;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))-1,rightSide[q],keyHeight+2);
			 keyreleased[q]=true;
		    break;
    		}
		}
        /*
		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){
			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))-1,scrollBarPos-FRONTOFFSET[midiEv]+6 ,keyHeight+2);
			ctm.fillStyle = "white";
			ctm.fillRect(scrollBarPos-FRONTOFFSET[midiEv]-barLength[midiEv],(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), scrollBarPos-FRONTOFFSET[midiEv],keyHeight);
			break;
			}
		   z++;
		 }
	   } 
	  x++;
	 }
	}

[toc] | [prev] | [next] | [standalone]


#37358

FromJonas Thörnvall <jonas.thornvall@gmail.com>
Date2019-09-24 05:17 -0700
Message-ID<8d7586ed-7809-4b8b-85be-3969f145ce05@googlegroups.com>
In reply to#37336
Den måndag 23 september 2019 kl. 09:38:40 UTC+2 skrev Jonas Thörnvall:
> Den söndag 22 september 2019 kl. 21:32:55 UTC+2 skrev Jonas Thörnvall:
> > Den söndag 22 september 2019 kl. 13:52:44 UTC+2 skrev Jonas Thörnvall:
> > > Den lördag 21 september 2019 kl. 14:29:28 UTC+2 skrev Jonas Thörnvall:
> > > > Den lördag 21 september 2019 kl. 14:17:14 UTC+2 skrev Jonas Thörnvall:
> > > > > Den lördag 21 september 2019 kl. 11:35:59 UTC+2 skrev John G Harris:
> > > > > > On Fri, 20 Sep 2019 14:38:30 -0700 (PDT), Jonas Thörnvall
> > > > > > <jonas.thornvall@gmail.com> wrote:
> > > > > > 
> > > > > >   <snip>
> > > > > > >Nah there is definitly a bug in javascript, probably same in other languages because i remember the quirk.
> > > > > >   <snip>
> > > > > > 
> > > > > > Please tell us what the problem is. Avoid talking about MIDI as most
> > > > > > of us know nothing about MIDI access.
> > > > > > 
> > > > > >   John
> > > > > 
> > > > > Well there is really no midi to the problem but i am not sure the script start without a midi device.
> > > > > 
> > > > > 1.So scrollbarPos is just a moving target using the **clock** "main reference point".
> > > > > 2. FRONTOFFSET when you press a key it has a distance to scrollbar "the front".
> > > > > 3. When you release **same key** that is also a distance vs scroolbar thus you get a notelength "barLength" for note.
> > > > > 
> > > > > As you can see they are save in arrays.
> > > > > So....
> > > > > 
> > > > > The cases starting with.
> > > > > Pressed/Note On | Released/Note Off
> > > > >       *
> > > > >       *                   *
> > > > > 
> > > > > But we have to keep track if the note released, because if not the backend still stuck to the painted keyboard "bar expanding with stuck backend" Ok?
> > > > > 
> > > > > Or same note could have been released, so we must have a boolean for each pair that is released right. keyReleased[midiEv]
> > > > > 
> > > > > Then at each clocking "depending on FPS" the function called.
> > > > > The problem is that internally in "some assembler code" or "machine code" something goes wrong, this is not just Javascript because i remember same problem from probably turbo pascal, some 30 years ago.
> > > > > 
> > > > > So it is some reference close to hardware that goes wrong "or my logic".
> > > > > What basicly happen is that the wavefront of released note "rightside rectangle", moving twice the speed of backend "leftside rectangle". And if you try compensate by subtract also the backend, from the front "half speed", it affacts the leftside x of rectangle the first argument. So the backend to not move at all.
> > > > > 
> > > > > The values are linked at some fundamental level, but if you write out in console before write the rectangle the values come out correct.
> > > > > 
> > > > > That is it.
> > > > > 
> > > > > 
> > > > >       *                 
> > > > >       *
> > > > 
> > > > If you just want to try you probably do not need a midi interface cable, you could install a virtual midicable i use Tobias Erichsens loopMIDI, and then you use the virual keyboard.
> > > > 
> > > > You have to check RT render note, and press record. Press note on and release and watch what happens.
> > > 
> > > Well i added a break statement to the while z look, so if same keys pressed twice it do not step on to next keyrelease event 
> > > 
> > > But that is not the problem because the fault is there with just a single press and release of note, when only 2 events recorded.
> > 
> > Well this is the fastest variant i can do, anyone can to the looping and condition faster?
> > But the reference bug in canvas still there.
> > 
> > 	var midiEv=0;
> > 	var rightSide=[];
> > 	var FRONTOFFSET=[];
> > 	var barLength=[];
> > 	var keyreleased=[]; 
> >     
> > 	function initPianoScroll(){
> > 	for (var p=0;p<20000;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){
> > 		keyreleased[midiEv]=true;	
> > 		for (var q=midiEv-1;q>=0;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;
> > 		    break;
> >     		}
> > 		}
> >         /*
> > 		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);
> > 			break;
> > 			}
> > 		   z++;
> > 		 }
> > 	   } 
> > 	  x++;
> > 	 }
> > 	}
> 
> I fixed the annoying bad rendering stripes, so could please someone at least throw an idea howto step around this annoying "double adding pixels to canvas?" at "lowlevel?" bug, because i can't even think out something to avoid it. Is this related to hardware or software?
> 
> 	var midiEv=0;
> 	var rightSide=[];
> 	var FRONTOFFSET=[];
> 	var barLength=[];
> 	var keyreleased=[]; 
>     
> 	function initPianoScroll(){
> 	for (var p=0;p<20000;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){
> 		keyreleased[midiEv]=true;	
> 		for (var q=midiEv-1;q>=0;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))-1,rightSide[q],keyHeight+2);
> 			 keyreleased[q]=true;
> 		    break;
>     		}
> 		}
>         /*
> 		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){
> 			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))-1,scrollBarPos-FRONTOFFSET[midiEv]+6 ,keyHeight+2);
> 			ctm.fillStyle = "white";
> 			ctm.fillRect(scrollBarPos-FRONTOFFSET[midiEv]-barLength[midiEv],(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), scrollBarPos-FRONTOFFSET[midiEv],keyHeight);
> 			break;
> 			}
> 		   z++;
> 		 }
> 	   } 
> 	  x++;
> 	 }
> 	}

When there finally is a thing to go analretentive over you guys don't want anything to do with it. I guess your besserwisser attitude just faked.
Come on give me a lesson, show me how it is done LoL

[toc] | [prev] | [next] | [standalone]


#37359

FromJonas Thörnvall <jonas.thornvall@gmail.com>
Date2019-09-24 05:18 -0700
Message-ID<ed4d1c85-2799-4440-bd30-b0a8337e40b7@googlegroups.com>
In reply to#37358
Den tisdag 24 september 2019 kl. 14:17:44 UTC+2 skrev Jonas Thörnvall:
> Den måndag 23 september 2019 kl. 09:38:40 UTC+2 skrev Jonas Thörnvall:
> > Den söndag 22 september 2019 kl. 21:32:55 UTC+2 skrev Jonas Thörnvall:
> > > Den söndag 22 september 2019 kl. 13:52:44 UTC+2 skrev Jonas Thörnvall:
> > > > Den lördag 21 september 2019 kl. 14:29:28 UTC+2 skrev Jonas Thörnvall:
> > > > > Den lördag 21 september 2019 kl. 14:17:14 UTC+2 skrev Jonas Thörnvall:
> > > > > > Den lördag 21 september 2019 kl. 11:35:59 UTC+2 skrev John G Harris:
> > > > > > > On Fri, 20 Sep 2019 14:38:30 -0700 (PDT), Jonas Thörnvall
> > > > > > > <jonas.thornvall@gmail.com> wrote:
> > > > > > > 
> > > > > > >   <snip>
> > > > > > > >Nah there is definitly a bug in javascript, probably same in other languages because i remember the quirk.
> > > > > > >   <snip>
> > > > > > > 
> > > > > > > Please tell us what the problem is. Avoid talking about MIDI as most
> > > > > > > of us know nothing about MIDI access.
> > > > > > > 
> > > > > > >   John
> > > > > > 
> > > > > > Well there is really no midi to the problem but i am not sure the script start without a midi device.
> > > > > > 
> > > > > > 1.So scrollbarPos is just a moving target using the **clock** "main reference point".
> > > > > > 2. FRONTOFFSET when you press a key it has a distance to scrollbar "the front".
> > > > > > 3. When you release **same key** that is also a distance vs scroolbar thus you get a notelength "barLength" for note.
> > > > > > 
> > > > > > As you can see they are save in arrays.
> > > > > > So....
> > > > > > 
> > > > > > The cases starting with.
> > > > > > Pressed/Note On | Released/Note Off
> > > > > >       *
> > > > > >       *                   *
> > > > > > 
> > > > > > But we have to keep track if the note released, because if not the backend still stuck to the painted keyboard "bar expanding with stuck backend" Ok?
> > > > > > 
> > > > > > Or same note could have been released, so we must have a boolean for each pair that is released right. keyReleased[midiEv]
> > > > > > 
> > > > > > Then at each clocking "depending on FPS" the function called.
> > > > > > The problem is that internally in "some assembler code" or "machine code" something goes wrong, this is not just Javascript because i remember same problem from probably turbo pascal, some 30 years ago.
> > > > > > 
> > > > > > So it is some reference close to hardware that goes wrong "or my logic".
> > > > > > What basicly happen is that the wavefront of released note "rightside rectangle", moving twice the speed of backend "leftside rectangle". And if you try compensate by subtract also the backend, from the front "half speed", it affacts the leftside x of rectangle the first argument. So the backend to not move at all.
> > > > > > 
> > > > > > The values are linked at some fundamental level, but if you write out in console before write the rectangle the values come out correct.
> > > > > > 
> > > > > > That is it.
> > > > > > 
> > > > > > 
> > > > > >       *                 
> > > > > >       *
> > > > > 
> > > > > If you just want to try you probably do not need a midi interface cable, you could install a virtual midicable i use Tobias Erichsens loopMIDI, and then you use the virual keyboard.
> > > > > 
> > > > > You have to check RT render note, and press record. Press note on and release and watch what happens.
> > > > 
> > > > Well i added a break statement to the while z look, so if same keys pressed twice it do not step on to next keyrelease event 
> > > > 
> > > > But that is not the problem because the fault is there with just a single press and release of note, when only 2 events recorded.
> > > 
> > > Well this is the fastest variant i can do, anyone can to the looping and condition faster?
> > > But the reference bug in canvas still there.
> > > 
> > > 	var midiEv=0;
> > > 	var rightSide=[];
> > > 	var FRONTOFFSET=[];
> > > 	var barLength=[];
> > > 	var keyreleased=[]; 
> > >     
> > > 	function initPianoScroll(){
> > > 	for (var p=0;p<20000;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){
> > > 		keyreleased[midiEv]=true;	
> > > 		for (var q=midiEv-1;q>=0;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;
> > > 		    break;
> > >     		}
> > > 		}
> > >         /*
> > > 		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);
> > > 			break;
> > > 			}
> > > 		   z++;
> > > 		 }
> > > 	   } 
> > > 	  x++;
> > > 	 }
> > > 	}
> > 
> > I fixed the annoying bad rendering stripes, so could please someone at least throw an idea howto step around this annoying "double adding pixels to canvas?" at "lowlevel?" bug, because i can't even think out something to avoid it. Is this related to hardware or software?
> > 
> > 	var midiEv=0;
> > 	var rightSide=[];
> > 	var FRONTOFFSET=[];
> > 	var barLength=[];
> > 	var keyreleased=[]; 
> >     
> > 	function initPianoScroll(){
> > 	for (var p=0;p<20000;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){
> > 		keyreleased[midiEv]=true;	
> > 		for (var q=midiEv-1;q>=0;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))-1,rightSide[q],keyHeight+2);
> > 			 keyreleased[q]=true;
> > 		    break;
> >     		}
> > 		}
> >         /*
> > 		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){
> > 			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))-1,scrollBarPos-FRONTOFFSET[midiEv]+6 ,keyHeight+2);
> > 			ctm.fillStyle = "white";
> > 			ctm.fillRect(scrollBarPos-FRONTOFFSET[midiEv]-barLength[midiEv],(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), scrollBarPos-FRONTOFFSET[midiEv],keyHeight);
> > 			break;
> > 			}
> > 		   z++;
> > 		 }
> > 	   } 
> > 	  x++;
> > 	 }
> > 	}
> 
> When there finally is a thing to go analretentive over you guys don't want anything to do with it. I guess your besserwisser attitude just faked.
> Come on give me a lesson, show me how it is done LoL

You are not much of bug fixers in the "javascript engine" are you?

[toc] | [prev] | [next] | [standalone]


#37360

FromJonas Thörnvall <jonas.thornvall@gmail.com>
Date2019-09-24 05:21 -0700
Message-ID<bfa80ad5-e1e4-4333-bbd0-b09e718bdace@googlegroups.com>
In reply to#37359
Den tisdag 24 september 2019 kl. 14:18:41 UTC+2 skrev Jonas Thörnvall:
> Den tisdag 24 september 2019 kl. 14:17:44 UTC+2 skrev Jonas Thörnvall:
> > Den måndag 23 september 2019 kl. 09:38:40 UTC+2 skrev Jonas Thörnvall:
> > > Den söndag 22 september 2019 kl. 21:32:55 UTC+2 skrev Jonas Thörnvall:
> > > > Den söndag 22 september 2019 kl. 13:52:44 UTC+2 skrev Jonas Thörnvall:
> > > > > Den lördag 21 september 2019 kl. 14:29:28 UTC+2 skrev Jonas Thörnvall:
> > > > > > Den lördag 21 september 2019 kl. 14:17:14 UTC+2 skrev Jonas Thörnvall:
> > > > > > > Den lördag 21 september 2019 kl. 11:35:59 UTC+2 skrev John G Harris:
> > > > > > > > On Fri, 20 Sep 2019 14:38:30 -0700 (PDT), Jonas Thörnvall
> > > > > > > > <jonas.thornvall@gmail.com> wrote:
> > > > > > > > 
> > > > > > > >   <snip>
> > > > > > > > >Nah there is definitly a bug in javascript, probably same in other languages because i remember the quirk.
> > > > > > > >   <snip>
> > > > > > > > 
> > > > > > > > Please tell us what the problem is. Avoid talking about MIDI as most
> > > > > > > > of us know nothing about MIDI access.
> > > > > > > > 
> > > > > > > >   John
> > > > > > > 
> > > > > > > Well there is really no midi to the problem but i am not sure the script start without a midi device.
> > > > > > > 
> > > > > > > 1.So scrollbarPos is just a moving target using the **clock** "main reference point".
> > > > > > > 2. FRONTOFFSET when you press a key it has a distance to scrollbar "the front".
> > > > > > > 3. When you release **same key** that is also a distance vs scroolbar thus you get a notelength "barLength" for note.
> > > > > > > 
> > > > > > > As you can see they are save in arrays.
> > > > > > > So....
> > > > > > > 
> > > > > > > The cases starting with.
> > > > > > > Pressed/Note On | Released/Note Off
> > > > > > >       *
> > > > > > >       *                   *
> > > > > > > 
> > > > > > > But we have to keep track if the note released, because if not the backend still stuck to the painted keyboard "bar expanding with stuck backend" Ok?
> > > > > > > 
> > > > > > > Or same note could have been released, so we must have a boolean for each pair that is released right. keyReleased[midiEv]
> > > > > > > 
> > > > > > > Then at each clocking "depending on FPS" the function called.
> > > > > > > The problem is that internally in "some assembler code" or "machine code" something goes wrong, this is not just Javascript because i remember same problem from probably turbo pascal, some 30 years ago.
> > > > > > > 
> > > > > > > So it is some reference close to hardware that goes wrong "or my logic".
> > > > > > > What basicly happen is that the wavefront of released note "rightside rectangle", moving twice the speed of backend "leftside rectangle". And if you try compensate by subtract also the backend, from the front "half speed", it affacts the leftside x of rectangle the first argument. So the backend to not move at all.
> > > > > > > 
> > > > > > > The values are linked at some fundamental level, but if you write out in console before write the rectangle the values come out correct.
> > > > > > > 
> > > > > > > That is it.
> > > > > > > 
> > > > > > > 
> > > > > > >       *                 
> > > > > > >       *
> > > > > > 
> > > > > > If you just want to try you probably do not need a midi interface cable, you could install a virtual midicable i use Tobias Erichsens loopMIDI, and then you use the virual keyboard.
> > > > > > 
> > > > > > You have to check RT render note, and press record. Press note on and release and watch what happens.
> > > > > 
> > > > > Well i added a break statement to the while z look, so if same keys pressed twice it do not step on to next keyrelease event 
> > > > > 
> > > > > But that is not the problem because the fault is there with just a single press and release of note, when only 2 events recorded.
> > > > 
> > > > Well this is the fastest variant i can do, anyone can to the looping and condition faster?
> > > > But the reference bug in canvas still there.
> > > > 
> > > > 	var midiEv=0;
> > > > 	var rightSide=[];
> > > > 	var FRONTOFFSET=[];
> > > > 	var barLength=[];
> > > > 	var keyreleased=[]; 
> > > >     
> > > > 	function initPianoScroll(){
> > > > 	for (var p=0;p<20000;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){
> > > > 		keyreleased[midiEv]=true;	
> > > > 		for (var q=midiEv-1;q>=0;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;
> > > > 		    break;
> > > >     		}
> > > > 		}
> > > >         /*
> > > > 		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);
> > > > 			break;
> > > > 			}
> > > > 		   z++;
> > > > 		 }
> > > > 	   } 
> > > > 	  x++;
> > > > 	 }
> > > > 	}
> > > 
> > > I fixed the annoying bad rendering stripes, so could please someone at least throw an idea howto step around this annoying "double adding pixels to canvas?" at "lowlevel?" bug, because i can't even think out something to avoid it. Is this related to hardware or software?
> > > 
> > > 	var midiEv=0;
> > > 	var rightSide=[];
> > > 	var FRONTOFFSET=[];
> > > 	var barLength=[];
> > > 	var keyreleased=[]; 
> > >     
> > > 	function initPianoScroll(){
> > > 	for (var p=0;p<20000;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){
> > > 		keyreleased[midiEv]=true;	
> > > 		for (var q=midiEv-1;q>=0;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))-1,rightSide[q],keyHeight+2);
> > > 			 keyreleased[q]=true;
> > > 		    break;
> > >     		}
> > > 		}
> > >         /*
> > > 		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){
> > > 			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))-1,scrollBarPos-FRONTOFFSET[midiEv]+6 ,keyHeight+2);
> > > 			ctm.fillStyle = "white";
> > > 			ctm.fillRect(scrollBarPos-FRONTOFFSET[midiEv]-barLength[midiEv],(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), scrollBarPos-FRONTOFFSET[midiEv],keyHeight);
> > > 			break;
> > > 			}
> > > 		   z++;
> > > 		 }
> > > 	   } 
> > > 	  x++;
> > > 	 }
> > > 	}
> > 
> > When there finally is a thing to go analretentive over you guys don't want anything to do with it. I guess your besserwisser attitude just faked.
> > Come on give me a lesson, show me how it is done LoL
> 
> You are not much of bug fixers in the "javascript engine" are you?

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

[toc] | [prev] | [next] | [standalone]


#37367

FromMartin Leese <please@see.Web.for.e-mail.INVALID>
Date2019-09-24 13:14 -0600
Message-ID<qmdpve$rkp$1@dont-email.me>
In reply to#37358
Jonas Thörnvall wrote:
> Den måndag 23 september 2019 kl. 09:38:40 UTC+2 skrev Jonas Thörnvall:
>> Den söndag 22 september 2019 kl. 21:32:55 UTC+2 skrev Jonas Thörnvall:
>>> Den söndag 22 september 2019 kl. 13:52:44 UTC+2 skrev Jonas Thörnvall:
>>>> Den lördag 21 september 2019 kl. 14:29:28 UTC+2 skrev Jonas Thörnvall:
>>>>> Den lördag 21 september 2019 kl. 14:17:14 UTC+2 skrev Jonas Thörnvall:
>>>>>> Den lördag 21 september 2019 kl. 11:35:59 UTC+2 skrev John G Harris:
>>>>>>> On Fri, 20 Sep 2019 14:38:30 -0700 (PDT), Jonas Thörnvall
>>>>>>> <jonas.thornvall@gmail.com> wrote:
...
> When there finally is a thing to go analretentive over you guys don't want anything to do with it. I guess your besserwisser attitude just faked.
> Come on give me a lesson, show me how it is done LoL

This thread has 24 posts, 22 of them by you.
You just waste everyone's time by posting
over and over and over.  I feel no
inclination to help you.  Why would I?  Why
would anyone?

-- 
Regards,
Martin Leese
E-mail: please@see.Web.for.e-mail.INVALID
Web: http://members.tripod.com/martin_leese/

[toc] | [prev] | [next] | [standalone]


#37368

FromJonas Thörnvall <jonas.thornvall@gmail.com>
Date2019-09-24 12:30 -0700
Message-ID<5821d344-cf65-49e6-846f-fdc046168fbd@googlegroups.com>
In reply to#37367
Den tisdag 24 september 2019 kl. 21:15:03 UTC+2 skrev Martin Leese:
> Jonas Thörnvall wrote:
> > Den måndag 23 september 2019 kl. 09:38:40 UTC+2 skrev Jonas Thörnvall:
> >> Den söndag 22 september 2019 kl. 21:32:55 UTC+2 skrev Jonas Thörnvall:
> >>> Den söndag 22 september 2019 kl. 13:52:44 UTC+2 skrev Jonas Thörnvall:
> >>>> Den lördag 21 september 2019 kl. 14:29:28 UTC+2 skrev Jonas Thörnvall:
> >>>>> Den lördag 21 september 2019 kl. 14:17:14 UTC+2 skrev Jonas Thörnvall:
> >>>>>> Den lördag 21 september 2019 kl. 11:35:59 UTC+2 skrev John G Harris:
> >>>>>>> On Fri, 20 Sep 2019 14:38:30 -0700 (PDT), Jonas Thörnvall
> >>>>>>> <jonas.thornvall@gmail.com> wrote:
> ...
> > When there finally is a thing to go analretentive over you guys don't want anything to do with it. I guess your besserwisser attitude just faked.
> > Come on give me a lesson, show me how it is done LoL
> 
> This thread has 24 posts, 22 of them by you.
> You just waste everyone's time by posting
> over and over and over.  I feel no
> inclination to help you.  Why would I?  Why
> would anyone?
> 
> -- 
> Regards,
> Martin Leese
> E-mail: please@see.Web.for.e-mail.INVALID
> Web: http://members.tripod.com/martin_leese/

You think people here to help other people, you think i am here to get help LoL Nah we are here to complain all os us LoL, i never get any help from here, unless it so trivial a five year old could fix it.

[toc] | [prev] | [next] | [standalone]


#37369

FromMartin Leese <please@see.Web.for.e-mail.INVALID>
Date2019-09-24 13:53 -0600
Message-ID<qmds7n$a7f$1@dont-email.me>
In reply to#37368
Jonas Thörnvall wrote:
> Den tisdag 24 september 2019 kl. 21:15:03 UTC+2 skrev Martin Leese:
>> Jonas Thörnvall wrote:
>>> Den måndag 23 september 2019 kl. 09:38:40 UTC+2 skrev Jonas Thörnvall:
>>>> Den söndag 22 september 2019 kl. 21:32:55 UTC+2 skrev Jonas Thörnvall:
>>>>> Den söndag 22 september 2019 kl. 13:52:44 UTC+2 skrev Jonas Thörnvall:
>>>>>> Den lördag 21 september 2019 kl. 14:29:28 UTC+2 skrev Jonas Thörnvall:
>>>>>>> Den lördag 21 september 2019 kl. 14:17:14 UTC+2 skrev Jonas Thörnvall:
>>>>>>>> Den lördag 21 september 2019 kl. 11:35:59 UTC+2 skrev John G Harris:
>>>>>>>>> On Fri, 20 Sep 2019 14:38:30 -0700 (PDT), Jonas Thörnvall
>>>>>>>>> <jonas.thornvall@gmail.com> wrote:
>> ...
>>> When there finally is a thing to go analretentive over you guys don't want anything to do with it. I guess your besserwisser attitude just faked.
>>> Come on give me a lesson, show me how it is done LoL

>> This thread has 24 posts, 22 of them by you.
>> You just waste everyone's time by posting
>> over and over and over.  I feel no
>> inclination to help you.  Why would I?  Why
>> would anyone?
> 
> You think people here to help other people, you think i am here to get help LoL Nah we are here to complain all os us LoL, i never get any help from here, unless it so trivial a five year old could fix it.

Well, you keep asking for help.
-- 
Regards,
Martin Leese
E-mail: please@see.Web.for.e-mail.INVALID
Web: http://members.tripod.com/martin_leese/

[toc] | [prev] | [next] | [standalone]


#37372

FromJonas Thörnvall <jonas.thornvall@gmail.com>
Date2019-09-24 22:13 -0700
Message-ID<40ca94cf-76ad-420c-9f26-d5b226582b56@googlegroups.com>
In reply to#37369
Den tisdag 24 september 2019 kl. 21:53:37 UTC+2 skrev Martin Leese:
> Jonas Thörnvall wrote:
> > Den tisdag 24 september 2019 kl. 21:15:03 UTC+2 skrev Martin Leese:
> >> Jonas Thörnvall wrote:
> >>> Den måndag 23 september 2019 kl. 09:38:40 UTC+2 skrev Jonas Thörnvall:
> >>>> Den söndag 22 september 2019 kl. 21:32:55 UTC+2 skrev Jonas Thörnvall:
> >>>>> Den söndag 22 september 2019 kl. 13:52:44 UTC+2 skrev Jonas Thörnvall:
> >>>>>> Den lördag 21 september 2019 kl. 14:29:28 UTC+2 skrev Jonas Thörnvall:
> >>>>>>> Den lördag 21 september 2019 kl. 14:17:14 UTC+2 skrev Jonas Thörnvall:
> >>>>>>>> Den lördag 21 september 2019 kl. 11:35:59 UTC+2 skrev John G Harris:
> >>>>>>>>> On Fri, 20 Sep 2019 14:38:30 -0700 (PDT), Jonas Thörnvall
> >>>>>>>>> <jonas.thornvall@gmail.com> wrote:
> >> ...
> >>> When there finally is a thing to go analretentive over you guys don't want anything to do with it. I guess your besserwisser attitude just faked.
> >>> Come on give me a lesson, show me how it is done LoL
> 
> >> This thread has 24 posts, 22 of them by you.
> >> You just waste everyone's time by posting
> >> over and over and over.  I feel no
> >> inclination to help you.  Why would I?  Why
> >> would anyone?
> > 
> > You think people here to help other people, you think i am here to get help LoL Nah we are here to complain all os us LoL, i never get any help from here, unless it so trivial a five year old could fix it.
> 
> Well, you keep asking for help.
> -- 
> Regards,
> Martin Leese
> E-mail: please@see.Web.for.e-mail.INVALID
> Web: http://members.tripod.com/martin_leese/

And you keep complaining...
I guess that is just how things are LoL

[toc] | [prev] | [next] | [standalone]


#37376

FromJonas Thörnvall <jonas.thornvall@gmail.com>
Date2019-09-25 02:54 -0700
Message-ID<39c9cfb9-3bb6-4415-affb-104a98e6a483@googlegroups.com>
In reply to#37372
Den onsdag 25 september 2019 kl. 07:13:50 UTC+2 skrev Jonas Thörnvall:
> Den tisdag 24 september 2019 kl. 21:53:37 UTC+2 skrev Martin Leese:
> > Jonas Thörnvall wrote:
> > > Den tisdag 24 september 2019 kl. 21:15:03 UTC+2 skrev Martin Leese:
> > >> Jonas Thörnvall wrote:
> > >>> Den måndag 23 september 2019 kl. 09:38:40 UTC+2 skrev Jonas Thörnvall:
> > >>>> Den söndag 22 september 2019 kl. 21:32:55 UTC+2 skrev Jonas Thörnvall:
> > >>>>> Den söndag 22 september 2019 kl. 13:52:44 UTC+2 skrev Jonas Thörnvall:
> > >>>>>> Den lördag 21 september 2019 kl. 14:29:28 UTC+2 skrev Jonas Thörnvall:
> > >>>>>>> Den lördag 21 september 2019 kl. 14:17:14 UTC+2 skrev Jonas Thörnvall:
> > >>>>>>>> Den lördag 21 september 2019 kl. 11:35:59 UTC+2 skrev John G Harris:
> > >>>>>>>>> On Fri, 20 Sep 2019 14:38:30 -0700 (PDT), Jonas Thörnvall
> > >>>>>>>>> <jonas.thornvall@gmail.com> wrote:
> > >> ...
> > >>> When there finally is a thing to go analretentive over you guys don't want anything to do with it. I guess your besserwisser attitude just faked.
> > >>> Come on give me a lesson, show me how it is done LoL
> > 
> > >> This thread has 24 posts, 22 of them by you.
> > >> You just waste everyone's time by posting
> > >> over and over and over.  I feel no
> > >> inclination to help you.  Why would I?  Why
> > >> would anyone?
> > > 
> > > You think people here to help other people, you think i am here to get help LoL Nah we are here to complain all os us LoL, i never get any help from here, unless it so trivial a five year old could fix it.
> > 
> > Well, you keep asking for help.
> > -- 
> > Regards,
> > Martin Leese
> > E-mail: please@see.Web.for.e-mail.INVALID
> > Web: http://members.tripod.com/martin_leese/
> 
> And you keep complaining...
> I guess that is just how things are LoL

I am done complaining about this i move on to complain about something else.
Could not someone mentioned that the second argument is dynamic vs the first a length???????

Someone must have spotted that i wrote out a static position vs the canvas, you naughty monkeys.

[toc] | [prev] | [next] | [standalone]


#37398

FromJonas Thörnvall <jonas.thornvall@gmail.com>
Date2019-09-25 22:32 -0700
Message-ID<4dca4a4e-de0d-4d59-bbbb-827a1bbe98fa@googlegroups.com>
In reply to#37376
Den onsdag 25 september 2019 kl. 11:54:52 UTC+2 skrev Jonas Thörnvall:
> Den onsdag 25 september 2019 kl. 07:13:50 UTC+2 skrev Jonas Thörnvall:
> > Den tisdag 24 september 2019 kl. 21:53:37 UTC+2 skrev Martin Leese:
> > > Jonas Thörnvall wrote:
> > > > Den tisdag 24 september 2019 kl. 21:15:03 UTC+2 skrev Martin Leese:
> > > >> Jonas Thörnvall wrote:
> > > >>> Den måndag 23 september 2019 kl. 09:38:40 UTC+2 skrev Jonas Thörnvall:
> > > >>>> Den söndag 22 september 2019 kl. 21:32:55 UTC+2 skrev Jonas Thörnvall:
> > > >>>>> Den söndag 22 september 2019 kl. 13:52:44 UTC+2 skrev Jonas Thörnvall:
> > > >>>>>> Den lördag 21 september 2019 kl. 14:29:28 UTC+2 skrev Jonas Thörnvall:
> > > >>>>>>> Den lördag 21 september 2019 kl. 14:17:14 UTC+2 skrev Jonas Thörnvall:
> > > >>>>>>>> Den lördag 21 september 2019 kl. 11:35:59 UTC+2 skrev John G Harris:
> > > >>>>>>>>> On Fri, 20 Sep 2019 14:38:30 -0700 (PDT), Jonas Thörnvall
> > > >>>>>>>>> <jonas.thornvall@gmail.com> wrote:
> > > >> ...
> > > >>> When there finally is a thing to go analretentive over you guys don't want anything to do with it. I guess your besserwisser attitude just faked.
> > > >>> Come on give me a lesson, show me how it is done LoL
> > > 
> > > >> This thread has 24 posts, 22 of them by you.
> > > >> You just waste everyone's time by posting
> > > >> over and over and over.  I feel no
> > > >> inclination to help you.  Why would I?  Why
> > > >> would anyone?
> > > > 
> > > > You think people here to help other people, you think i am here to get help LoL Nah we are here to complain all os us LoL, i never get any help from here, unless it so trivial a five year old could fix it.
> > > 
> > > Well, you keep asking for help.
> > > -- 
> > > Regards,
> > > Martin Leese
> > > E-mail: please@see.Web.for.e-mail.INVALID
> > > Web: http://members.tripod.com/martin_leese/
> > 
> > And you keep complaining...
> > I guess that is just how things are LoL
> 
> I am done complaining about this i move on to complain about something else.
> Could not someone mentioned that the second argument is dynamic vs the first a length???????
> 
> Someone must have spotted that i wrote out a static position vs the canvas, you naughty monkeys.

Here is how it ended, i am satisfied i could not do it faster.

    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 = pcolor[track[rectrack].midiMess[midiEv].data1];
		  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];
		     
	   } 
	   //INSIDE KEY RELEASED
	   else if(track[rectrack].midiMess[midiEv].data0==NOTE_OFF && keyreleased[midiEv]==false){
		keyreleased[midiEv]=true;	
		for (var q=midiEv-1;q>=0;q--){
			if(track[rectrack].midiMess[q].data1==track[rectrack].midiMess[midiEv].data1) { 
			console.log("midiEV data1"+track[rectrack].midiMess[midiEv].data1);
			barLength[q]=rightSide[q]-50;
			BACKOFFSET[q]=FRONTOFFSET[q]+barLength[q];
			keyreleased[q]=true;
		    break;
    		}
		}
		
       } 
	   
	   //INSIDE MOVE BAR
	   else if(track[rectrack].midiMess[midiEv].data0==NOTE_ON && keyreleased[midiEv]==true){
		z=midiEv+1;
	    while(z<nbrOfEV){
		  if(track[rectrack].midiMess[z].data1==track[rectrack].midiMess[midiEv].data1){
			ctm.fillStyle = "#000a4d";
			ctm.fillRect(scrollBarPos-BACKOFFSET[midiEv]-6,(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8))-1,barLength[midiEv]+50 ,keyHeight+2);
			ctm.fillStyle = pcolor[track[rectrack].midiMess[midiEv].data1];
			ctm.fillRect(scrollBarPos-BACKOFFSET[midiEv],(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), barLength[midiEv]+50,keyHeight);
			break;
		  }
		z++;
		}
	   } 
	  x++;
	 }
	 
	}

[toc] | [prev] | [next] | [standalone]


#37479

FromJonas Thörnvall <jonas.thornvall@gmail.com>
Date2019-09-30 02:05 -0700
Message-ID<d4571088-74e3-4b3a-b3ca-3bb64849f288@googlegroups.com>
In reply to#37398
Den torsdag 26 september 2019 kl. 07:32:11 UTC+2 skrev Jonas Thörnvall:
> Den onsdag 25 september 2019 kl. 11:54:52 UTC+2 skrev Jonas Thörnvall:
> > Den onsdag 25 september 2019 kl. 07:13:50 UTC+2 skrev Jonas Thörnvall:
> > > Den tisdag 24 september 2019 kl. 21:53:37 UTC+2 skrev Martin Leese:
> > > > Jonas Thörnvall wrote:
> > > > > Den tisdag 24 september 2019 kl. 21:15:03 UTC+2 skrev Martin Leese:
> > > > >> Jonas Thörnvall wrote:
> > > > >>> Den måndag 23 september 2019 kl. 09:38:40 UTC+2 skrev Jonas Thörnvall:
> > > > >>>> Den söndag 22 september 2019 kl. 21:32:55 UTC+2 skrev Jonas Thörnvall:
> > > > >>>>> Den söndag 22 september 2019 kl. 13:52:44 UTC+2 skrev Jonas Thörnvall:
> > > > >>>>>> Den lördag 21 september 2019 kl. 14:29:28 UTC+2 skrev Jonas Thörnvall:
> > > > >>>>>>> Den lördag 21 september 2019 kl. 14:17:14 UTC+2 skrev Jonas Thörnvall:
> > > > >>>>>>>> Den lördag 21 september 2019 kl. 11:35:59 UTC+2 skrev John G Harris:
> > > > >>>>>>>>> On Fri, 20 Sep 2019 14:38:30 -0700 (PDT), Jonas Thörnvall
> > > > >>>>>>>>> <jonas.thornvall@gmail.com> wrote:
> > > > >> ...
> > > > >>> When there finally is a thing to go analretentive over you guys don't want anything to do with it. I guess your besserwisser attitude just faked.
> > > > >>> Come on give me a lesson, show me how it is done LoL
> > > > 
> > > > >> This thread has 24 posts, 22 of them by you.
> > > > >> You just waste everyone's time by posting
> > > > >> over and over and over.  I feel no
> > > > >> inclination to help you.  Why would I?  Why
> > > > >> would anyone?
> > > > > 
> > > > > You think people here to help other people, you think i am here to get help LoL Nah we are here to complain all os us LoL, i never get any help from here, unless it so trivial a five year old could fix it.
> > > > 
> > > > Well, you keep asking for help.
> > > > -- 
> > > > Regards,
> > > > Martin Leese
> > > > E-mail: please@see.Web.for.e-mail.INVALID
> > > > Web: http://members.tripod.com/martin_leese/
> > > 
> > > And you keep complaining...
> > > I guess that is just how things are LoL
> > 
> > I am done complaining about this i move on to complain about something else.
> > Could not someone mentioned that the second argument is dynamic vs the first a length???????
> > 
> > Someone must have spotted that i wrote out a static position vs the canvas, you naughty monkeys.
> 
> Here is how it ended, i am satisfied i could not do it faster.
> 
>     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 = pcolor[track[rectrack].midiMess[midiEv].data1];
> 		  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];
> 		     
> 	   } 
> 	   //INSIDE KEY RELEASED
> 	   else if(track[rectrack].midiMess[midiEv].data0==NOTE_OFF && keyreleased[midiEv]==false){
> 		keyreleased[midiEv]=true;	
> 		for (var q=midiEv-1;q>=0;q--){
> 			if(track[rectrack].midiMess[q].data1==track[rectrack].midiMess[midiEv].data1) { 
> 			console.log("midiEV data1"+track[rectrack].midiMess[midiEv].data1);
> 			barLength[q]=rightSide[q]-50;
> 			BACKOFFSET[q]=FRONTOFFSET[q]+barLength[q];
> 			keyreleased[q]=true;
> 		    break;
>     		}
> 		}
> 		
>        } 
> 	   
> 	   //INSIDE MOVE BAR
> 	   else if(track[rectrack].midiMess[midiEv].data0==NOTE_ON && keyreleased[midiEv]==true){
> 		z=midiEv+1;
> 	    while(z<nbrOfEV){
> 		  if(track[rectrack].midiMess[z].data1==track[rectrack].midiMess[midiEv].data1){
> 			ctm.fillStyle = "#000a4d";
> 			ctm.fillRect(scrollBarPos-BACKOFFSET[midiEv]-6,(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8))-1,barLength[midiEv]+50 ,keyHeight+2);
> 			ctm.fillStyle = pcolor[track[rectrack].midiMess[midiEv].data1];
> 			ctm.fillRect(scrollBarPos-BACKOFFSET[midiEv],(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[midiEv].data1-8)), barLength[midiEv]+50,keyHeight);
> 			break;
> 		  }
> 		z++;
> 		}
> 	   } 
> 	  x++;
> 	 }
> 	 
> 	}

Here is what it looks like when your done measuring.
https://midisequenser.000webhostapp.com/

[toc] | [prev] | [standalone]


Page 2 of 2 — ← Prev page 1 [2]

Back to top | Article view | comp.lang.javascript


csiph-web