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


Groups > comp.lang.javascript > #37960

Plotting logic

Newsgroups comp.lang.javascript
Date 2019-12-17 00:22 -0800
Message-ID <f82f9fc3-ef63-4ca4-b26e-e27adc9c684a@googlegroups.com> (permalink)
Subject Plotting logic
From Jonas Thörnvall <jonas.thornvall@gmail.com>

Show all headers | View raw


I write out notes on the cavas within a "freely chosen" timespann, but there is something wrong with my logic plotting them out. As long it is only the rightside expanding shrinking the notes scale accordingly.

But if i move the startpoint from 0 they suddenly start to drift left, so it is some initial value set wrong that they drift to the rightside could even be a sign error?

The bar values for selected regions work just fine so there is something like a sign or wrong value read in below. Of course i just plot values that is within the timespann on screen, but when startpoint change they start drift changing endpoint to problem they scale fine. 

https://midisequenser.000webhostapp.com/

function notePlot(){
	console.log("NOTEPLOT TRACK="+rectrack+" midiMess length="+track[rectrack].midiMess.length);
	var plotRightSide=0;var plotLeftSide=0;var x=0;var z=0;var i=0;
 	nbrOfEV = track[rectrack].midiMess.length;
	while (x<nbrOfEV){
		if (track[rectrack].midiMess[x].time>TimeSPos && track[rectrack].midiMess[x].time<TimeEPos && track[rectrack].midiMess[x].data0==NOTE_ON){ 
			distanceTotal=Mwidth-50;
			TimeTotal=TimeEPos-TimeSPos;
			TimeOnLeft=TimeSPos-(TimeSPos-track[rectrack].midiMess[x].time);
			TimePerc=TimeOnLeft/TimeTotal;
			plotLeftSide=TimePerc*distanceTotal;
			z=x+1;
			while(z<nbrOfEV){
				if(track[rectrack].midiMess[z].data1==track[rectrack].midiMess[x].data1){
					TimeOnRight=TimeEPos-(TimeEPos-track[rectrack].midiMess[z].time);
					TimePerc=TimeOnRight/TimeTotal;
					plotRightSide=TimePerc*distanceTotal;
					recLength=plotRightSide-plotLeftSide;
					keyNr=track[rectrack].midiMess[x].data1;
					if (rectrack==0){keyNr=70;}
					else {keyNr=parseInt(keyNr);}
					ctm.fillStyle = pcolor[keyNr];
					ctm.fillRect(50+plotLeftSide,(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[x].data1-8)),recLength,keyHeight-1);
					//Saving the values of note graphic to array to compare with mouse
					graphNotePosX[i]=50+plotLeftSide;
					graphNotePosY[i]=(PistartX+keyHeight*88)-(keyHeight*(track[rectrack].midiMess[x].data1-8));
					graphNoteLength[i]=recLength;
					graphNoteHeight[i]=keyHeight-1;
					graphNoteEvent[i]=x;
					i++;
					break;
				}
			z++;
			}	
		}
	x++;
   }
   nbrOfEV=0;
}

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


Thread

Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 00:22 -0800
  Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 00:23 -0800
  Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 00:41 -0800
    Re: Plotting logic Julio Di Egidio <julio@diegidio.name> - 2019-12-17 00:54 -0800
      Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 01:45 -0800
        Re: Plotting logic Julio Di Egidio <julio@diegidio.name> - 2019-12-17 01:55 -0800
          Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 02:04 -0800
          Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 02:08 -0800
            Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 02:24 -0800
              Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 02:30 -0800
          Re: Plotting logic Jonas Thörnvall <jonas.thornvall@gmail.com> - 2019-12-17 02:43 -0800

csiph-web