import ddf.minim.*; import ddf.minim.analysis.*; Minim minim; AudioPlayer groove; FFT fft; void setup(){ size(512, 400); minim = new Minim(this); groove = minim.loadFile("piano.mp3", 512); } void draw(){ background(0); fft = new FFT(groove.bufferSize(), groove.sampleRate()); fft.forward(groove.mix); stroke (255,0,0,128); for(int i = 0; i < fft.specSize(); i++) { line(i, height, i, height - fft.getBand(i)*4); } stroke(255); for(int i = 0; i < groove.left.size() - 1; i++) { line(i, 50 + groove.left.get(i)*50, i+1, 50 + groove.left.get(i+1)*50); line(i, 150 + groove.right.get(i)*50, i+1, 150 + groove.right.get(i+1)*50); } } void keyPressed() { if (key == 'a' || key == 'A') { println ("playing groove 1"); groove = minim.loadFile("piano.mp3", 512); groove.rewind(); groove.play(); } else if (key == 's' || key == 'S') { groove = minim.loadFile("piano1.mp3", 512); println ("playing groove 2"); groove.rewind(); groove.play(); } else if (key == 'd' || key == 'D') { groove = minim.loadFile("piano2.mp3", 512); println ("playing groove 3"); groove.rewind(); groove.play(); } else if (key == 'f' || key == 'F') { groove = minim.loadFile("piano3.mp3", 512); println ("playing groove 4"); groove.rewind(); groove.play(); } else if (key == 'j' || key == 'J') { groove = minim.loadFile("piano4.mp3", 512); println ("playing groove 5"); groove.rewind(); groove.play(); } else if (key == 'k' || key == 'K') { groove = minim.loadFile("piano5.mp3", 512); println ("playing groove 6"); groove.rewind(); groove.play(); } else if (key == 'l' || key == 'L') { groove = minim.loadFile("piano6.mp3", 512); println ("playing groove 7"); groove.rewind(); groove.play(); } }