import ddf.minim.*; import ddf.minim.signals.*; import ddf.minim.analysis.*; import ddf.minim.effects.*; import processing.serial.*; import cc.arduino.*; Arduino arduino; Minim minim; AudioPlayer song; FFT fft; String song_file = "The Imperial March.mp3"; int xmax = 600; int ymax = 300; void setup() { size(600, 300); surface.setResizable(true); minim = new Minim(this); arduino = new Arduino(this, Arduino.list()[0], 57600); arduino.digitalWrite(3, 255); arduino.analogWrite(6, 255); arduino.analogWrite(5, 255); arduino.analogWrite(9, 255); arduino.analogWrite(10, 255); delay(1000); arduino.digitalWrite(3, 0); delay(100); arduino.analogWrite(6, 0); delay(50); arduino.analogWrite(9, 0); delay(25); arduino.analogWrite(10, 0); delay(800); arduino.analogWrite(5, 0); delay(1000); song = minim.loadFile(song_file); song.play(); fft = new FFT(song.bufferSize(), song.sampleRate()); } void draw() { background(0); fft.forward(song.mix); stroke(127, 255, 0, 200); for(int i = 10; i < fft.specSize(); i++){ line(i, height-30, i, height - (30+fft.getFreq(i*10))); text("Min Freq", 10, height-10); text("Max Freq", fft.specSize(), height-10); } ledcontrol(); } void ledcontrol(){ int control=100; int step=50; int delay=10; arduino.analogWrite(10, int(fft.getFreq(step+300))*control); delay(delay); arduino.analogWrite(9, int(fft.getFreq(step+200))*control); delay(delay); arduino.analogWrite(6, int(fft.getFreq(step+100))*control); delay(delay); arduino.analogWrite(5, int(fft.getFreq(step+50))*control); delay(delay); arduino.analogWrite(3, int(fft.getFreq(step))*control); }