example_aubioDemo/: use beat listeners
authorPaul Brossier <piem@piem.org>
Tue, 19 Jan 2016 15:48:41 +0000 (16:48 +0100)
committerPaul Brossier <piem@piem.org>
Tue, 19 Jan 2016 15:48:41 +0000 (16:48 +0100)
example_aubioDemo/src/ofApp.cpp
example_aubioDemo/src/ofApp.h

index fbbf270..d381608 100644 (file)
@@ -25,6 +25,8 @@ void ofApp::setup(){
     // setup beat object
     beat.setup();
     //beat.setup("default", 2 * bufferSize, bufferSize, samplerate);
+    // listen to beat event
+    ofAddListener(beat.gotBeat, this, &ofApp::beatEvent);
 
     // setup mel bands object
     bands.setup();
@@ -40,7 +42,6 @@ void ofApp::setup(){
 
     start += 250;
     onsetGui.setup("ofxAubioOnset", "settings.xml", start + 10, 10);
-    onsetGui.add(gotOnset.setup( "onset", 0, 0, 250));
     onsetGui.add(onsetThreshold.setup( "threshold", 0, 0, 2));
     onsetGui.add(onsetNovelty.setup( "onset novelty", 0, 0, 10000));
     onsetGui.add(onsetThresholdedNovelty.setup( "thr. novelty", 0, -1000, 1000));
@@ -85,16 +86,17 @@ void ofApp::update(){
 //--------------------------------------------------------------
 void ofApp::draw(){
     // update beat info
-    if (beat.received()) {
+    if (gotBeat) {
         ofSetColor(ofColor::green);
         ofRect(90,150,50,50);
+        gotBeat = false;
     }
 
     // update onset info
     if (gotOnset) {
         ofSetColor(ofColor::red);
         ofRect(250 + 90,150,50,50);
-        gotOnset = 0;
+        gotOnset = false;
     }
     onsetNovelty = onset.novelty;
     onsetThresholdedNovelty = onset.thresholdedNovelty;
@@ -167,5 +169,11 @@ void ofApp::dragEvent(ofDragInfo dragInfo){
 //----
 void ofApp::onsetEvent(float & time) {
     ofLog() << "got onset at " << time << " s";
-    gotOnset = 1;
+    gotOnset = true;
+}
+
+//----
+void ofApp::beatEvent(float & time) {
+    ofLog() << "got beat at " << time << " s";
+    gotBeat = true;
 }
index a907971..cb68c48 100644 (file)
@@ -27,6 +27,7 @@ class ofApp : public ofBaseApp{
         void audioOut();
 
         void onsetEvent(float & time);
+        void beatEvent(float & time);
 
     private:
         ofxAubioOnset onset;
@@ -39,10 +40,11 @@ class ofApp : public ofBaseApp{
         ofxFloatSlider pitchConfidence;
 
         ofxPanel beatGui;
+        bool gotBeat;
         ofxFloatSlider bpm;
 
         ofxPanel onsetGui;
-        ofxFloatSlider gotOnset;
+        bool gotOnset;
         ofxFloatSlider onsetThreshold;
         ofxFloatSlider onsetNovelty;
         ofxFloatSlider onsetThresholdedNovelty;