import krister.Ess.*; color c = color(255,0,0); boolean ding = false; int note = 550; int framecount1 = 0; int frameskip1 = 5; int framecount2 = 0; int frameskip2 = 20; int notelength = 0; AudioStream redStream; AudioStream orangeStream; AudioStream yellowStream; AudioStream greenStream; AudioStream blueStream; AudioStream indigoStream; AudioStream violetStream; TriangleWave redWave; TriangleWave orangeWave; TriangleWave yellowWave; TriangleWave greenWave; TriangleWave blueWave; TriangleWave indigoWave; TriangleWave violetWave; void setup() { size(600,400); background(255); noStroke(); strokeCap(ROUND); strokeJoin(ROUND); fill(c); rect(25, 25, 25, 25); Ess.start(this); redStream = new AudioStream(); orangeStream = new AudioStream(); yellowStream = new AudioStream(); greenStream = new AudioStream(); blueStream = new AudioStream(); indigoStream = new AudioStream(); violetStream = new AudioStream(); redWave = new TriangleWave(131,.8); orangeWave = new TriangleWave(147,.8); yellowWave = new TriangleWave(165,.8); greenWave = new TriangleWave(175,.8); blueWave = new TriangleWave(196,.8); indigoWave = new TriangleWave(220,.8); violetWave = new TriangleWave(247,.8); redStream.start(); yellowStream.start(); orangeStream.start(); greenStream.start(); blueStream.start(); indigoStream.start(); violetStream.start(); redStream.volume(0); orangeStream.volume(0); yellowStream.volume(0); greenStream.volume(0); blueStream.volume(0); indigoStream.volume(0); violetStream.volume(0); redWave.generate(redStream); orangeWave.generate(orangeStream); yellowWave.generate(yellowStream); greenWave.generate(greenStream); blueWave.generate(blueStream); indigoWave.generate(indigoStream); violetWave.generate(violetStream); } void draw() { if(keyPressed == true) { switch(key) { case '1': c = color(255,0,0); fill(c); rect(25, 25, 25, 25); redStream.volume(1); redStream.fadeTo(0, 500); break; case '2': c = color(255,140,0); fill(c); rect(25, 75, 25, 25); orangeStream.volume(1); orangeStream.fadeTo(0, 500); break; case '3': c = color(255,255,0); fill(c); rect(25, 125, 25, 25); yellowStream.volume(1); yellowStream.fadeTo(0, 500); break; case '4': c = color(0,139,0); fill(c); rect(25, 175, 25, 25); greenStream.volume(1); greenStream.fadeTo(0, 500); break; case '5': c = color(0,0,205); fill(c); rect(25, 225, 25, 25); blueStream.volume(1); blueStream.fadeTo(0, 500); break; case '6': c = color(106,90,205); fill(c); rect(25, 275, 25, 25); indigoStream.volume(1); indigoStream.fadeTo(0, 500); break; case '7': c = color(148,0,211); fill(c); rect(25, 325, 25, 25); violetStream.volume(1); violetStream.fadeTo(0, 500); break; } } if (mousePressed) { strokeWeight(4); stroke(c); line(pmouseX,pmouseY,mouseX,mouseY); switch(key) { case '1': redStream.volume(1); break; case '2': orangeStream.volume(1); break; case '3': yellowStream.volume(1); break; case '4': greenStream.volume(1); break; case '5': blueStream.volume(1); break; case '6': indigoStream.volume(1); break; case '7': violetStream.volume(1); break; } } framecount1 ++; framecount2 ++; if (framecount1 == frameskip1) { noStroke(); fill(255,10); rect(0,0,width,height); framecount1 = 0; } if (framecount2 == frameskip2) { noStroke(); fill(255,40); rect(0,0,width,height); framecount2 = 0; redStream.volume(.9*redStream.volume); orangeStream.volume(.9*orangeStream.volume); yellowStream.volume(.9*yellowStream.volume); greenStream.volume(.9*greenStream.volume); blueStream.volume(.9*blueStream.volume); indigoStream.volume(.9*indigoStream.volume); violetStream.volume(.9*violetStream.volume); } } void mouseDragged() { notelength ++; } public void stop() { Ess.stop(); super.stop(); }