diff options
| author | Mick Grierson <mickgrierson@gmail.com> | 2011-10-31 17:10:28 +0000 |
|---|---|---|
| committer | Mick Grierson <mickgrierson@gmail.com> | 2011-10-31 17:10:28 +0000 |
| commit | 086644237c0ed96383be68d4772623332d860473 (patch) | |
| tree | 96a279125a6b11a4a43761669a5e48c33ca6e574 /ofxMaxim/ofxMaximExamplesOSX/ofxMaxim_example_mfccs/src | |
| parent | 09eb47749f4d866228c884c9cb0462b883901953 (diff) | |
ofxMaxim Examples updated. Tested on XCode 4 with ofxiPhone 007 and iOS 5 - everything works.
Diffstat (limited to 'ofxMaxim/ofxMaximExamplesOSX/ofxMaxim_example_mfccs/src')
3 files changed, 0 insertions, 311 deletions
diff --git a/ofxMaxim/ofxMaximExamplesOSX/ofxMaxim_example_mfccs/src/main.cpp b/ofxMaxim/ofxMaximExamplesOSX/ofxMaxim_example_mfccs/src/main.cpp deleted file mode 100644 index 6a32c6a..0000000 --- a/ofxMaxim/ofxMaximExamplesOSX/ofxMaxim_example_mfccs/src/main.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "ofMain.h" -#include "testApp.h" -#include "ofAppGlutWindow.h" - -//======================================================================== -int main( ){ - - ofAppGlutWindow window; - ofSetupOpenGL(&window, 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 testApp()); - -} diff --git a/ofxMaxim/ofxMaximExamplesOSX/ofxMaxim_example_mfccs/src/testApp.cpp b/ofxMaxim/ofxMaximExamplesOSX/ofxMaxim_example_mfccs/src/testApp.cpp deleted file mode 100644 index abb1e2d..0000000 --- a/ofxMaxim/ofxMaximExamplesOSX/ofxMaxim_example_mfccs/src/testApp.cpp +++ /dev/null @@ -1,227 +0,0 @@ -/* This is an example of how to integrate maximilain into openFrameworks, - including using audio received for input and audio requested for output. - - - You can copy and paste this and use it as a starting example. - - */ - - -#include "testApp.h" -#include "maximilian.h"/* include the lib */ -#include "time.h" - - - -//------------------------------------------------------------- -testApp::~testApp() { - -} - - -//-------------------------------------------------------------- -void testApp::setup(){ - /* some standard setup stuff*/ - - ofEnableAlphaBlending(); - ofSetupScreen(); - ofBackground(0, 0, 0); - ofSetFrameRate(60); - - /* This is stuff you always need.*/ - - sampleRate = 44100; /* Sampling Rate */ - initialBufferSize = 512; /* Buffer Size. you have to fill this buffer with sound*/ - lAudioOut = new float[initialBufferSize];/* outputs */ - rAudioOut = new float[initialBufferSize]; - lAudioIn = new float[initialBufferSize];/* inputs */ - rAudioIn = new float[initialBufferSize]; - - - /* This is a nice safe piece of code */ - memset(lAudioOut, 0, initialBufferSize * sizeof(float)); - memset(rAudioOut, 0, initialBufferSize * sizeof(float)); - - memset(lAudioIn, 0, initialBufferSize * sizeof(float)); - memset(rAudioIn, 0, initialBufferSize * sizeof(float)); - - /* Now you can put anything you would normally put in maximilian's 'setup' method in here. */ - -// samp.load(ofToDataPath("sinetest_stepping2.wav")); -// samp.load(ofToDataPath("whitenoise2.wav")); -// samp.load(ofToDataPath("additive22.wav")); - //samp.load(ofToDataPath("pinknoise2.wav")); - samp.load(ofToDataPath("filtersweep2.wav")); - samp.getLength(); - - - fftSize = 1024; - mfft.setup(fftSize, 512, 256); - ifft.setup(fftSize, 512, 256); - - - - nAverages = 12; - oct.setup(sampleRate, fftSize/2, nAverages); - - mfccs = (double*) malloc(sizeof(double) * 13); - mfcc.setup(512, 42, 13, 20, 20000, sampleRate); - - ofxMaxiSettings::setup(sampleRate, 2, initialBufferSize); - ofSoundStreamSetup(2,2, this, sampleRate, initialBufferSize, 4);/* Call this last ! */ - - ofSetVerticalSync(true); - -} - -//-------------------------------------------------------------- -void testApp::update(){ -} - -//-------------------------------------------------------------- -void testApp::draw(){ - - ofSetColor(255, 255, 255,255); - - //draw fft output - float xinc = 900.0 / fftSize * 2.0; - for(int i=0; i < fftSize / 2; i++) { - float height = mfft.magnitudesDB[i] / 50.0 * 300; - ofRect(100 + (i*xinc),250 - height,2, height); - } - //draw phases - ofSetColor(0, 255, 0,100); - for(int i=0; i < fftSize / 2; i++) { - float height = mfft.phases[i] / 50.0 * 400; - ofRect(100 + (i*xinc),300 - height,2, height); - } - -// //octave analyser -// ofSetColor(255, 0, 0,100); -// xinc = 900.0 / oct.nAverages; -// for(int i=0; i < oct.nAverages; i++) { -// float height = oct.averages[i] / 50.0 * 100; -// ofRect(100 + (i*xinc),700 - height,2, height); -// } - - //Mel bands -// cout << "\nMel bands: "; - ofSetColor(255, 0, 255,100); - xinc = 900.0 / 42.0; - for(int i=0; i < 42; i++) { -// cout << mfcc.melBands[i] << ","; - float height = mfcc.melBands[i] * 5.0; - ofRect(100 + (i*xinc),400 - height,10, height); - } -// cout << endl; - -// cout << "\nMFCCS: "; - ofSetColor(255, 0, 0,100); - xinc = 900.0 / 13; - for(int i=0; i < 13; i++) { - float height = mfccs[i] * 250.0; - ofRect(100 + (i*xinc),600 - height,40, height); -// cout << mfccs[i] << ","; - } -// cout << "\n-------" << endl; - -// cout << callTime << endl; - -} - -//-------------------------------------------------------------- -void testApp::audioRequested (float * output, int bufferSize, int nChannels){ -// static double tm; - for (int i = 0; i < bufferSize; i++){ -// wave = osc.saw(maxiMap::linexp(mouseY + ofGetWindowPositionY(), 0, ofGetScreenHeight(), 200, 8000)); -// wave = lAudioIn[i]; - wave = samp.play(1.); - //get fft - if (mfft.process(wave)) { -// int bins = fftSize / 2.0; - //do some manipulation -// int hpCutoff = floor(((mouseX + ofGetWindowPositionX()) / (float) ofGetScreenWidth()) * fftSize / 2.0); -//highpass -// memset(mfft.magnitudes, 0, sizeof(float) * hpCutoff); -// memset(mfft.phases, 0, sizeof(float) * hpCutoff); -//lowpass -// memset(mfft.magnitudes + hpCutoff, 0, sizeof(float) * (bins - hpCutoff)); -// memset(mfft.phases + hpCutoff, 0, sizeof(float) * (bins - hpCutoff)); - mfft.magsToDB(); -// for(int z=0; z < 512; z++) cout << mfft.magnitudesDB[z] << ","; -// cout << "---------\n"; - oct.calculate(mfft.magnitudesDB); - mfcc.mfcc(mfft.magnitudes, mfccs); - //cout << mfft.spectralFlatness() << ", " << mfft.spectralCentroid() << endl; - } - //inverse fft - gettimeofday(&callTS,NULL); -// ifftVal = ifft.process(mfft.magnitudes, mfft.phases); - gettimeofday(&callEndTS,NULL); - callTime = (float)(callEndTS.tv_usec - callTS.tv_usec) / 1000000.0; - callTime += (float)(callEndTS.tv_sec - callTS.tv_sec); - //play result - mymix.stereo(wave, outputs, 0.5); -// float mix = ((mouseX + ofGetWindowPositionX()) / (float) ofGetScreenWidth()); -// mymix.stereo((wave * mix) + ((1.0-mix) * ifftVal), outputs, 0.5); - lAudioOut[i] = output[i*nChannels ] = outputs[0]; /* You may end up with lots of outputs. add them here */ - rAudioOut[i] = output[i*nChannels + 1] = outputs[1]; - } - - - -} - -//-------------------------------------------------------------- -void testApp::audioReceived (float * input, int bufferSize, int nChannels){ - - - /* You can just grab this input and stick it in a double, then use it above to create output*/ - - for (int i = 0; i < bufferSize; i++){ - - /* you can also grab the data out of the arrays*/ - - lAudioIn[i] = input[i*2]; - rAudioIn[i] = input[i*2+1]; - } - -} - -//-------------------------------------------------------------- -void testApp::keyPressed(int key){ - -} - -//-------------------------------------------------------------- -void testApp::keyReleased(int key){ - -} - -//-------------------------------------------------------------- -void testApp::mouseMoved(int x, int y ){ - - - -} - -//-------------------------------------------------------------- -void testApp::mouseDragged(int x, int y, int button){ - -} - -//-------------------------------------------------------------- -void testApp::mousePressed(int x, int y, int button){ - -} - -//-------------------------------------------------------------- -void testApp::mouseReleased(int x, int y, int button){ - -} - -//-------------------------------------------------------------- -void testApp::windowResized(int w, int h){ - -} - diff --git a/ofxMaxim/ofxMaximExamplesOSX/ofxMaxim_example_mfccs/src/testApp.h b/ofxMaxim/ofxMaximExamplesOSX/ofxMaxim_example_mfccs/src/testApp.h deleted file mode 100644 index ea92221..0000000 --- a/ofxMaxim/ofxMaximExamplesOSX/ofxMaxim_example_mfccs/src/testApp.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef _TEST_APP -#define _TEST_APP - - -#include "ofMain.h" -#include "ofxMaxim.h" -#include <sys/time.h> - -#include "maxiMFCC.h" - -class testApp : public ofBaseApp{ - - public: - ~testApp();/* deconsructor is very useful */ - 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 audioRequested (float * input, int bufferSize, int nChannels); /* output method */ - void audioReceived (float * input, int bufferSize, int nChannels); /* input method */ - - float * lAudioOut; /* outputs */ - float * rAudioOut; - - float * lAudioIn; /* inputs */ - float * rAudioIn; - - int initialBufferSize; /* buffer size */ - int sampleRate; - - - /* stick you maximilian stuff below */ - - double wave,sample,outputs[2], ifftVal; - maxiMix mymix; - maxiOsc osc; - - ofxMaxiFFTOctaveAnalyzer oct; - int nAverages; - float *ifftOutput; - int ifftSize; - - ofxMaxiIFFT ifft; - ofxMaxiFFT mfft; - int fftSize; - int bins, dataSize; - - float callTime; - timeval callTS, callEndTS; - - maxiMFCC mfcc; - double *mfccs; - - maxiSample samp; - - - -}; - -#endif |
