This is the code:
Now a nullPointer occurs, I changed to OPENGL.
import ddf.minim.analysis.*;
import ddf.minim.*;
float amp = 1;
Minim minim;
FFT fft;
AudioInput in;
int w;
int numObj = 30;
float xDiff, yDiff;
myRect[] rectangles = new myRect[numObj];
int diam = 2;
float myAvgsubBass;
float myAvgbass;
float myAvgmid;
float myAvghigh;
float myAvgAmpReact = 0;
float myAvgAmp;
int slowDown1 = 150;
float YControl = 5;
float changeAmp;
float changesubBassAmp = 3.2;
float changebassAmp = 3;
float changemidAmp = 3;
float changehighAmp = 3;
float sliderAmp = 5;
//library for toggles/buttons
import controlP5.*;
ControlP5 controlP5;
ControlWindow controlWindow;
int mySlider1;
int mySlider2;
int mySlider3;
int mySlider4;
int mySlider5;
void setup() {
size(1000, 800);
smooth();
rectMode(CENTER);
background(0);
minim = new Minim(this);
in = minim.getLineIn(Minim.STEREO, 512);
fft = new FFT(in.bufferSize(), in.sampleRate());
fft.logAverages(22, 3);
w = width/fft.avgSize();
for ( int i=0; i<rectangles.length; i++) {
rectangles[i] = new myRect(random(width), random(height), i*diam);
}
controlP5 = new ControlP5(this);
controlP5.setAutoDraw(false);
controlWindow = controlP5.addControlWindow("externalWindow", 10, 10, 200, 200);
controlWindow.hideCoordinates();
controlWindow.setBackground(color(40));
Slider mySlider7 = controlP5.addSlider("slowDown1", 1, 1000, slowDown1, 20, 120, 100, 10);
mySlider7.setWindow(controlWindow);
Slider mySlider8 = controlP5.addSlider("myAvgAmpReact", -10, 10, myAvgAmpReact, 20, 140, 100, 10);
mySlider8.setWindow(controlWindow);
Slider mySlider9 = controlP5.addSlider("YControl", 2, 100, YControl, 20, 160, 100, 10);
mySlider9.setWindow(controlWindow);
for ( int i=0; i<rectangles.length; i++) {
rectangles[i].classSetup();
}
}
void draw() {
background(0);
noStroke();
myAvgAmp = (fft.getAvg(0) + fft.getAvg(1) + fft.getAvg(2) + fft.getAvg(3) + fft.getAvg(4) + fft.getAvg(5) + fft.getAvg(6) +
fft.getAvg(7) + fft.getAvg(8) + fft.getAvg(9) + fft.getAvg(10) + fft.getAvg(11) + fft.getAvg(12) +
fft.getAvg(13) + fft.getAvg(14) + fft.getAvg(16) + fft.getAvg(17) + fft.getAvg(18) + fft.getAvg(19) + fft.getAvg(20) + fft.getAvg(21) + fft.getAvg(22) +
fft.getAvg(23) + fft.getAvg(24) + fft.getAvg(25) + fft.getAvg(26) + fft.getAvg(27) + fft.getAvg(28) + fft.getAvg(29))/30;
println(myAvgAmp);
myAvgsubBass = (fft.getAvg(0) + fft.getAvg(1) + fft.getAvg(2) + fft.getAvg(3) + fft.getAvg(4) + fft.getAvg(5) + fft.getAvg(6))/YControl;
//println(myAvgsubBass);
myAvghigh = (fft.getAvg(7) + fft.getAvg(8) + fft.getAvg(9) + fft.getAvg(10) + fft.getAvg(11) + fft.getAvg(12) +
fft.getAvg(13) + fft.getAvg(14) + fft.getAvg(16) + fft.getAvg(17) + fft.getAvg(18) + fft.getAvg(19) + fft.getAvg(20) + fft.getAvg(21) + fft.getAvg(22) +
fft.getAvg(23) + fft.getAvg(24) + fft.getAvg(25) + fft.getAvg(26) + fft.getAvg(27) + fft.getAvg(28) + fft.getAvg(29))/YControl;
//println(myAvghigh);
for ( int i=0; i<rectangles.length; i++) {
rectangles[5].display (myAvgAmp, 6);
if (keyPressed && key =='1') {
rectangles[5].showPG();
}
rectangles[5].slowDown = slowDown1;
if (myAvgsubBass > myAvghigh) {
rectangles[5].moveY(myAvgsubBass, 1);
}
else if (myAvghigh > myAvgsubBass) {
rectangles[5].moveY(myAvghigh, (-1));
}
if (myAvgAmp > myAvgAmpReact) {
rectangles[5].moveX(myAvgAmp, 1);
}
else if (myAvgAmpReact > myAvgAmp) {
rectangles[5].moveX(myAvgAmp, (-1));
}
}
fft.forward(in.mix);
}
void keyPressed() {
switch(key) {
case ' ':
saveFrame("minim####.png");
break;
case 'c':
background(0);
break;
default:
break;
}
}
void stop() {
in.close();
minim.stop();
super.stop();
}
pg.ellipse(x, y, (whichAmp/divideAmp), (whichAmp/divideAmp));
pg = createGraphics(width/scl, height/scl, OPENGL);