怎么运行不了
processing吧
全部回复
仅看楼主
level 1
import ddf.minim.*;
import ddf.minim.analysis.*;
float m_faudioX = 0.;
float m_faudioY = 0.;
float eRadius;
Minim minim;
VizAudio vizAudio;
float theta = 0;
void setup() {
size(1024, 768, P3D);
minim = new Minim(this);
vizAudio = new VizAudio(minim);
}
void draw() {
background(#6A171D);
fft.forward(music.left);
stroke(255);
translate(50,height-100);
noFill();
beginShape();
stroke(255);
curveVertex(-50,0);
curveVertex(0,0);
for(int i=0;i<480;i+=2){
h=fft.getBand(i)*10;
curveVertex(i,-h);
println(h);
}
endShape();
}
vizAudio.draw();
for (int i = 0; i < 100; i ++) {
pushMatrix();
translate(width/2, height/2);
pushMatrix();
rotate(i*mouseX);
translate(-width/2, -height/2);
float sinValue = map(sin(theta), -1, 1, 0, width);
float cosValue = map(cos(theta), -1, 1, 0, height);
pushMatrix();
translate(sinValue,cosValue);
noFill();
stroke(i*#8E0A0A);
rotateY(theta);
box(400+map(sin(theta), -1, 1, -100, 100));
popMatrix();
popMatrix();
popMatrix();
}
theta += 0.01;
}
2018年06月19日 01点06分 1
level 1
class VizAudio {
int avgSize=30;
float[] faudio = new float[avgSize];
AudioPlayer play;
FFT fftLin;
FFT fftLog;
BeatDetect beat;
VizAudio(Minim minim) {
play = minim.loadFile("tiankong.mp3");
fftLin = new FFT(play.bufferSize(),play.sampleRate());
fftLin.linAverages(30);
fftLog = new FFT(play.bufferSize(), play.sampleRate());
fftLog.logAverages(22, 3);
// a beat detection object that is FREQ_ENERGY mode that
// expects buffers the length of song's buffer size
// and samples captured at songs's sample rate
beat = new BeatDetect();
beat.setSensitivity(300);
eRadius = 20;
}
void draw() {
int i;
fftLin.forward(play.mix);
fftLog.forward(play.mix);
beat.detect(play.mix);
text("faudioX "+(int)(m_faudioX*100.), 15, height-330);
text("faudioY "+(int)(m_faudioY*100.), 15, height-360);
for (i=0; i<fftLin.avgSize(); i++) {
faudio[i]=fftLin.getAvg(i);
}
m_faudioY=(faudio[0]+faudio[1])/2.;
m_faudioX=(faudio[3]+faudio[4])/2.;
float a = map(eRadius, 20, 80, 60, 255);
//fill(60, 255, 0, a);
if ( beat.isOnset() ) eRadius = 80;
eRadius *= 0.95;
if ( eRadius < 20 ) eRadius = 20;
}
}
2018年06月19日 01点06分 2
1