import sms.*; float dampen = .8; int penx, peny; int[] last = Unimotion.getSMSArray(); int samplesPerSecond = 3; int secondsPerMajor = 5; int secondsPerMinor = 1; int secondsPerLine = 60; int pixelsPerSample = 4; int pixelsPerRow = 10; void setup() { size(samplesPerSecond*secondsPerLine*pixelsPerSample,pixelsPerRow*10); penx = 0; //width/2; peny = height/10; smooth(); background(50); stroke(255, 100); frameRate(samplesPerSecond); } void draw() { int[] diff = Unimotion.getSMSArray(); diff[0] -= last[0]; diff[1] -= last[1]; diff[2] -= last[2]; diff[0] *= dampen; diff[1] *= dampen; diff[2] *= dampen; if(frameCount % (samplesPerSecond * secondsPerMajor) == 0) { noFill(); stroke(255,200); ellipse(penx, peny, 4,4); } else if(frameCount * (samplesPerSecond * secondsPerMinor) == 0) { stroke(255,200); } else stroke(255,70); line(penx, peny, penx+abs(diff[0]), peny+diff[1]); penx += pixelsPerSample;//diff[0]; if(penx > width) { penx = 0; peny += pixelsPerRow; } // etch-a-sketch code // stroke(255,80); // line(penx,peny,penx+diff[0],peny-diff[1]); // noStroke(); // fill(255,50); // float rad = dist(penx,peny,penx+diff[0], peny-diff[1]) * 3; // ellipse(penx,peny,rad,rad); // penx+=diff[0]; // peny-=diff[1]; // if(peny <= 0) // peny=height; // else if(peny >= height) // peny=0; // if(penx <= 0) // penx=width; // else if(penx >= width) // penx=0; }