⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bandpassfilter.pde

📁 This is processing for java examples.
💻 PDE
字号:
/** * Band Pass Filter * by Damien Di Fede. *    * This sketch demonstrates how to use the BandPass effect. * Move the mouse left and right to change the frequency of the pass band. * Move the mouse up and down to change the band width of the pass band. */import ddf.minim.*;import ddf.minim.effects.*;Minim minim;AudioPlayer groove;BandPass bpf;void setup(){  size(512, 200, P2D);    minim = new Minim(this);    groove = minim.loadFile("groove.mp3");  groove.loop();  // make a band pass filter with a center frequency of 440 Hz and a bandwidth of 20 Hz  // the third argument is the sample rate of the audio that will be filtered  // it is required to correctly compute values used by the filter  bpf = new BandPass(440, 20, groove.sampleRate());  groove.addEffect(bpf);}void draw(){  background(0);  stroke(255);  // draw the waveforms  // the values returned by left.get() and right.get() will be between -1 and 1,  // so we need to scale them up to see the waveform  for(int i = 0; i < groove.right.size()-1; i++)  {    float x1 = map(i, 0, groove.bufferSize(), 0, width);    float x2 = map(i+1, 0, groove.bufferSize(), 0, width);    line(x1, height/4 - groove.left.get(i)*50, x2, height/4 - groove.left.get(i+1)*50);    line(x1, 3*height/4 - groove.right.get(i)*50, x2, 3*height/4 - groove.right.get(i+1)*50);  }  // draw a rectangle to represent the pass band  noStroke();  fill(255, 0, 0, 60);  rect(mouseX - bpf.getBandWidth()/20, 0, bpf.getBandWidth()/10, height);}void mouseMoved(){  // map the mouse position to the range [100, 10000], an arbitrary range of passBand frequencies  float passBand = map(mouseX, 0, width, 100, 2000);  bpf.setFreq(passBand);  float bandWidth = map(mouseY, 0, height, 50, 500);  bpf.setBandWidth(bandWidth);  // prints the new values of the coefficients in the console  bpf.printCoeff();}void stop(){  // always close Minim audio classes when you finish with them  groove.close();  // always stop Minim before exiting  minim.stop();    super.stop();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -