📄 frequencyenergy.pde
字号:
/** * Frequency Energy * by Damien Di Fede. * * This sketch demonstrates how to use the BeatDetect object in FREQ_ENERGY mode. * You can use <code>isKick</code>, <code>isSnare</code>, </code>isHat</code>, * <code>isRange</code>, and <code>isOnset(int)</code> to track whatever kind * of beats you are looking to track, they will report true or false based on * the state of the analysis. To "tick" the analysis you must call <code>detect</code> * with successive buffers of audio. You can do this inside of <code>draw</code>, * but you are likely to miss some audio buffers if you do this. The sketch implements * an <code>AudioListener</code> called <code>BeatListener</code> so that it can call * <code>detect</code> on every buffer of audio processed by the system without repeating * a buffer or missing one. * * This sketch plays an entire song so it may be a little slow to load. */import ddf.minim.*;import ddf.minim.analysis.*;Minim minim;AudioPlayer song;BeatDetect beat;BeatListener bl;float kickSize, snareSize, hatSize;void setup(){ size(512, 200); smooth(); minim = new Minim(this); song = minim.loadFile("marcus_kellis_theme.mp3", 2048); song.play(); // 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(song.bufferSize(), song.sampleRate()); // set the sensitivity to 300 milliseconds // After a beat has been detected, the algorithm will wait for 300 milliseconds // before allowing another beat to be reported. You can use this to dampen the // algorithm if it is giving too many false-positives. The default value is 10, // which is essentially no damping. If you try to set the sensitivity to a negative value, // an error will be reported and it will be set to 10 instead. beat.setSensitivity(300); kickSize = snareSize = hatSize = 16; // make a new beat listener, so that we won't miss any buffers for the analysis bl = new BeatListener(beat, song); textFont(createFont("SanSerif", 16)); textAlign(CENTER);}void draw(){ background(0); fill(255); if ( beat.isKick() ) kickSize = 32; if ( beat.isSnare() ) snareSize = 32; if ( beat.isHat() ) hatSize = 32; textSize(kickSize); text("KICK", width/4, height/2); textSize(snareSize); text("SNARE", width/2, height/2); textSize(hatSize); text("HAT", 3*width/4, height/2); kickSize = constrain(kickSize * 0.95, 16, 32); snareSize = constrain(snareSize * 0.95, 16, 32); hatSize = constrain(hatSize * 0.95, 16, 32);}void stop(){ // always close Minim audio classes when you are finished with them song.close(); // always stop Minim before exiting minim.stop(); // this closes the sketch super.stop();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -