import ddf.minim.signals.*; import ddf.minim.*; import ddf.minim.analysis.*; import ddf.minim.effects.*; import processing.opengl.*; import javax.media.opengl.*; PGraphicsOpenGL pgl; GL gl; int nparts = 4600; int index = 0; float inc1 = 3; int cycle = 0; float sinc = 0; float amp = 100; float originx,originy; int range = 340; float level; boolean scaling = false; Particle[] p = new Particle[nparts]; Minim minim; AudioInput in; //--------------------setup----------------------- void setup() { float istep = float(width)/float(nparts); //println("istep is "+istep); index = range; minim = new Minim(this); in = minim.getLineIn(Minim.MONO,512); size(1280,900,OPENGL); originx = 0; originy = height/2; for(int i = 0; i < nparts; i++) { originx = (i*istep); originy+=random(-.1,.1);//+random(-12,12); p[i] = new Particle(originx,originy,random(10)); } } //----------------draw--------------------------- void draw() { pgl = (PGraphicsOpenGL) g; gl = pgl.beginGL(); gl.glDisable(GL.GL_DEPTH_TEST); //gl.glEnable(GL.GL_BLEND); // gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE); pgl.endGL(); background(255); camera(width/2,height/2,780,width/2,height/2,0,0,1,0); /* turn me on for motion traily things fill(255,255,255,50); rectMode(CORNER); rect(0,0,width,height); noFill(); */ rect(width/2,height/2,width,height); if(keyPressed) { if(key == 'r') { noiseSeed(int(random(1000))); } if(key == 'r') { if(scaling) { scaling = false; } else { scaling = true; } println(scaling); } } index+=inc1; //println(index); if(index > nparts) { index = range+10; cycle++; inc1 = int(random(3,120)); // println(cycle); if(float(cycle) % float(6) == 0.5); { println("changing noffset"); for(int i = 0; i < nparts; i++) { p[i].offset(); } } } for(int i = 0; i < nparts; i++) { p[i].display(); p[i].slide(); } for(int i = index-1; i > index-range;i--) { p[i].move(); p[i].pulse(); } // println(index); //p[i].move(); /* stroke(0,20); for(int i = 0; i < nparts-2; i++) { line(p[i].x,p[i].y,p[i+1].x,p[i+1].y); } */ // turns this on for the stuttering also turn off the p.move in the earlier for loop /* for(int i = 0; i < range; i++) { p[int(index)+i].move(); } */ } void stop() { in.close(); minim.stop(); super.stop(); }