From 25467cc7d96c56eb2b739a3ffb093ab5a9c57b13 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Tue, 15 Nov 2022 01:48:26 +0000 Subject: testing oscilloscope latency --- audioin/src/main.cpp | 13 +++++ audioin/src/ofApp.cpp | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++ audioin/src/ofApp.h | 68 ++++++++++++++++++++++++ 3 files changed, 225 insertions(+) create mode 100644 audioin/src/main.cpp create mode 100644 audioin/src/ofApp.cpp create mode 100644 audioin/src/ofApp.h (limited to 'audioin/src') diff --git a/audioin/src/main.cpp b/audioin/src/main.cpp new file mode 100644 index 0000000..e57370b --- /dev/null +++ b/audioin/src/main.cpp @@ -0,0 +1,13 @@ +#include "ofMain.h" +#include "ofApp.h" + +//======================================================================== +int main( ){ + ofSetupOpenGL(1024,768,OF_WINDOW); // <-------- setup the GL context + + // this kicks off the running of my app + // can be OF_WINDOW or OF_FULLSCREEN + // pass in width and height too: + ofRunApp(new ofApp()); + +} diff --git a/audioin/src/ofApp.cpp b/audioin/src/ofApp.cpp new file mode 100644 index 0000000..4535c3c --- /dev/null +++ b/audioin/src/ofApp.cpp @@ -0,0 +1,144 @@ +#include "ofApp.h" +void ofApp::setup(){ + + int frameRate=60; + + ofSetFrameRate(frameRate); + ofBackground(0); + ofEnableSmoothing(); + ofEnableAlphaBlending(); + ofSetVerticalSync(true); + + blockSize = SAMPLERATE / (frameRate*20); //200 + + soundStream.setup(this,0, 1, SAMPLERATE, blockSize, 1); + + buffer=Buffer(SAMPLERATE); + + vScale=3.0f; + hScale=8.0f; + +} +void ofApp::update(){ + + +} + +int sampleNum=0; +int frameNum=0; + +void ofApp::draw(){ + ofBackground(0); + + ofPushMatrix(); + + ofTranslate(0,ofGetHeight()/2); + + ofScale(1.0f,ofGetHeight()*vScale); + + ofPolyline line; + line.addVertex(0,buffer[0]); + + float i=0.0f; + while (i + +#define SAMPLERATE 48000 +#define min(a,b) (ai?writePoint-i:size-(i-writePoint)];} + float& operator [] (int i) {return data[writePoint>i?writePoint-i:size-(i-writePoint)];} +private: + size_t size; + float *data; + int writePoint; +}; + +class ofApp : public ofBaseApp{ + + public: + void setup(); + void update(); + void draw(); + + void keyPressed(int key); + void keyReleased(int key); + void mouseMoved(int x, int y ); + void mouseDragged(int x, int y, int button); + void mousePressed(int x, int y, int button); + void mouseReleased(int x, int y, int button); + void windowResized(int w, int h); + void dragEvent(ofDragInfo dragInfo); + void gotMessage(ofMessage msg); + + void audioIn(float * input, int bufferSize, int nChannels); + + ofSoundStream soundStream; + int blockSize; + int sampleRate; + + int frameHead; //last sample drawn + + //baudvine::RingBuf buffer; + + Buffer buffer; + + float hScale; + float vScale; +}; -- cgit v1.2.3