diff options
Diffstat (limited to 'ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src')
3 files changed, 216 insertions, 0 deletions
diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/main.cpp b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/main.cpp new file mode 100644 index 0000000..6a32c6a --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/main.cpp @@ -0,0 +1,16 @@ +#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/ofxMaximExamples007OSX/ofMaximExample007OSX/src/testApp.cpp b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/testApp.cpp new file mode 100644 index 0000000..2e0af10 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/testApp.cpp @@ -0,0 +1,160 @@ +/* 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" + + + +//------------------------------------------------------------- +testApp::~testApp() { + + delete beat.myData; /*you should probably delete myData for any sample object + that you've created in testApp.h*/ + +} + + +//-------------------------------------------------------------- +void testApp::setup(){ + /* some standard setup stuff*/ + + ofEnableAlphaBlending(); + ofSetupScreen(); + ofBackground(0, 0, 0); + ofSetVerticalSync(true); + + /* This is stuff you always need.*/ + + sampleRate = 44100; /* Sampling Rate */ + initialBufferSize = 512; /* Buffer Size. you have to fill this buffer with sound*/ + + + /* Now you can put anything you would normally put in maximilian's 'setup' method in here. */ + + + beat.load(ofToDataPath("beat2.wav")); + beat.getLength(); + + + ofSoundStreamSetup(2,0,this, sampleRate, initialBufferSize, 4);/* Call this last ! */ +} + +//-------------------------------------------------------------- +void testApp::update(){ + +} + +//-------------------------------------------------------------- +void testApp::draw(){ + + /* You can use any of the data from audio received and audiorequested to draw stuff here. + Importantly, most people just use the input and output arrays defined above. + Clever people don't do this. This bit of code shows that by default, each signal is going to flip + between -1 and 1. You need to account for this somehow. Get the absolute value for example. + */ + + ofSetColor(255, 255, 255,255); + ofRect(600, 300, sample*150, sample*150); /* audio sigs go between -1 and 1. See?*/ + ofCircle(200, 300, wave*150); + +} + +//-------------------------------------------------------------- +void testApp::audioRequested (float * output, int bufferSize, int nChannels){ + + for (int i = 0; i < bufferSize; i++){ + + /* Stick your maximilian 'play()' code in here ! Declare your objects in testApp.h. + + For information on how maximilian works, take a look at the example code at + + http://www.maximilian.strangeloop.co.uk + + under 'Tutorials'. + + */ + + + + sample=beat.play(0.25, 0, beat.length); + wave=sine1.sinebuf(abs(mouseX));/* mouse controls sinewave pitch. we get abs value to stop it dropping + // delow zero and killing the soundcard*/ + + mymix.stereo(sample + wave, outputs, 0.5); + + + output[i*nChannels ] = outputs[0]; /* You may end up with lots of outputs. add them here */ + 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*/ + + + } + +} + +//-------------------------------------------------------------- +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){ + +} + + + +//-------------------------------------------------------------- +void testApp::gotMessage(ofMessage msg){ + +} + +//-------------------------------------------------------------- +void testApp::dragEvent(ofDragInfo dragInfo){ + +}
\ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/testApp.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/testApp.h new file mode 100644 index 0000000..ee11865 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/testApp.h @@ -0,0 +1,40 @@ +#pragma once + +#include "ofMain.h" +#include "ofxMaxim.h" + + +class testApp : public ofBaseApp{ + + public: + ~testApp();/* destructor 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 dragEvent(ofDragInfo dragInfo); + void gotMessage(ofMessage msg); + + void audioRequested (float * input, int bufferSize, int nChannels); /* output method */ + void audioReceived (float * input, int bufferSize, int nChannels); /* input method */ + + int initialBufferSize; /* buffer size */ + int sampleRate; + + + /* stick you maximilian stuff below */ + + double wave,sample,outputs[2]; + ofxMaxiMix mymix; + ofxMaxiOsc sine1; + ofxMaxiSample beats,beat; + + +}; |
