import krister.Ess.*; AudioChannel myChannel01, myChannel02, myChannel03, myChannel04, myChannel05; SineWave myWave01; SineWave myWave02; SineWave myWave03; SineWave myWave04; PinkNoise myNoise01; Envelope myEnvelope; float e1, f1; float rSum; int numCirc = 3; boolean doDraw = true; BouncyCircle [] circles; void setup() { size(900,600,P3D); //loadPixels(); stroke(0); ////////////////////AUDIO///////////////////////////////// // start Ess Ess.start(this); myChannel01=new AudioChannel(); myChannel01.initChannel(myChannel01.frames(10)); myChannel02=new AudioChannel(); myChannel02.initChannel(myChannel02.frames(10)); myChannel03=new AudioChannel(); myChannel03.initChannel(myChannel03.frames(10)); myChannel04=new AudioChannel(); myChannel04.initChannel(myChannel04.frames(10)); myChannel05=new AudioChannel(); myChannel05.initChannel(myChannel05.frames(30)); ///////////////////generating the sounds///////////////////// myWave01=new SineWave(980,.5); //right myWave02=new SineWave(760,.5); //left myWave03=new SineWave(550,.5); //bottom myWave04=new SineWave(1200,.5); //top myNoise01=new PinkNoise(.5); myWave01.generate(myChannel01); myWave02.generate(myChannel02); myWave03.generate(myChannel03); myWave04.generate(myChannel04); myNoise01.generate(myChannel05); myChannel01.play(); myChannel02.play(); myChannel03.play(); myChannel04.play(); myChannel05.play(); myChannel01.volume(0); myChannel02.volume(0); myChannel03.volume(0); myChannel04.volume(0); myChannel05.volume(0); EPoint[] env=new EPoint[3]; env[0]=new EPoint(0,0); env[1]=new EPoint(.25,1); env[2]=new EPoint(1,0); myEnvelope=new Envelope(env); myEnvelope.filter(myChannel01); myEnvelope.filter(myChannel02); myEnvelope.filter(myChannel03); myEnvelope.filter(myChannel04); myEnvelope.filter(myChannel05); myChannel05.smoothPan=true; //////////////////CLOSE AUDIO///////////////////// doDraw=true; framerate(30); ellipseMode(CENTER); circles = new BouncyCircle[numCirc]; for (int i=0; i width-r) { x = width-r; dx *= -1; myChannel01.volume(1); myChannel01.pan(Ess.RIGHT); myChannel01.play(); } else if (x < r) { x = r; dx *= -1; myChannel02.volume(1); myChannel02.pan(Ess.LEFT); myChannel02.play(); } else if (y > height-r) { y = height-r; dy *= -1; myChannel03.volume(1); myChannel03.play(); } else if (y < r) { y = r; dy *= -1; myChannel04.volume(1); myChannel04.play(); } /////////////object collision/////////////////// e1 = mouseX; f1 = mouseY; float g1 = 30; float h = dist(x, y, e1, f1); float rSum = r+g1; if (h <= rSum){ dx = (x-e1)/h; dy = (y-f1)/h; myChannel05.volume(1); float newPan=-1+(e1/width)*2; myChannel05.pan(newPan); myChannel05.play(); // keep ellipses from overlapping with user-controlled obj x = mouseX+(rSum)*dx; y = mouseY+(rSum)*dy; //test for zero speed and reset zero objects at collision if (dxold == 0.0|dxold <= 1.0){ dx = (random(-12.0,12.0)); } else { dx = dxold; } if (dyold == 0.0|dyold <= 1.0){ dy = (random(-12.0,12.0)); } else { dy = dyold; } } } } public void stop() { Ess.stop(); super.stop(); }