From d09cc45d859aabbf76306fee49c1cec202c4f808 Mon Sep 17 00:00:00 2001 From: Chris Kiefer Date: Thu, 3 Nov 2011 18:05:24 +0000 Subject: maxiAtoms --- .../maxiAtomSynthesis/src/main.cpp | 16 ++++ .../maxiAtomSynthesis/src/mp.cpp | 90 ++++++++++++++++++++++ .../maxiAtomSynthesis/src/mp.h | 32 ++++++++ .../maxiAtomSynthesis/src/pyOSCDebug.cpp | 45 +++++++++++ .../maxiAtomSynthesis/src/pyOSCDebug.h | 24 ++++++ 5 files changed, 207 insertions(+) create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/main.cpp create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.cpp create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.h create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.cpp create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.h (limited to 'ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src') diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/main.cpp b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/main.cpp new file mode 100644 index 0000000..b232966 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/main.cpp @@ -0,0 +1,16 @@ +#include "ofMain.h" +#include "mp.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 mp()); + +} diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.cpp b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.cpp new file mode 100644 index 0000000..b8e5ffd --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.cpp @@ -0,0 +1,90 @@ +#include "mp.h" + +//-------------------------------------------------------------- +void mp::setup(){ + ofEnableAlphaBlending(); + ofSetupScreen(); + ofBackground(0, 0, 0); + ofSetVerticalSync(true); +// pyd.setup("localhost", 23612); +// pyd.clear(); + + + atomBuffer.resize(512); + + + ofxMaxiSettings::setup(44100, 2, 512); + ofSoundStreamSetup(maxiSettings::channels,0,this, maxiSettings::sampleRate, maxiSettings::bufferSize, 4);/* Call this last ! */ + +} + +//-------------------------------------------------------------- +void mp::update(){ + flArr test; + maxiAtoms::createGabor(test, maxiMap::linexp((float)mouseX/ofGetWidth(), 0, 1, 100, 10000) * (1.0 + (ofRandomuf() * 0.2)), + maxiSettings::sampleRate, + maxiMap::linlin((float)mouseY / ofGetHeight(), 0, 1, 2000, 40000) * (1.0 + (ofRandomuf() * 0.3)), + ofRandomf() * PI, 0.3, 0.05); + atStream.addAtom(test); + +} + +//-------------------------------------------------------------- +void mp::draw(){ + +} + +void mp::audioRequested (float * output, int bufferSize, int nChannels){ + memset(&atomBuffer[0], 0, sizeof(float) * bufferSize); + atStream.fillNextBuffer(&(atomBuffer[0]), bufferSize); + for (int i = 0; i < bufferSize; i++){ + output[i*nChannels ] = output[i*nChannels + 1] = atomBuffer[i]; + } + +} + + +//-------------------------------------------------------------- +void mp::keyPressed(int key){ + +} + +//-------------------------------------------------------------- +void mp::keyReleased(int key){ + +} + +//-------------------------------------------------------------- +void mp::mouseMoved(int x, int y ){ + +} + +//-------------------------------------------------------------- +void mp::mouseDragged(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void mp::mousePressed(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void mp::mouseReleased(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void mp::windowResized(int w, int h){ + +} + +//-------------------------------------------------------------- +void mp::gotMessage(ofMessage msg){ + +} + +//-------------------------------------------------------------- +void mp::dragEvent(ofDragInfo dragInfo){ + +} \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.h new file mode 100644 index 0000000..00d185e --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.h @@ -0,0 +1,32 @@ +#pragma once + +#include "ofMain.h" +#include "ofxMaxim.h" +#include "maxiAtoms.h" +//#include "pyOSCDebug.h" + +class mp : 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 audioRequested (float * input, int bufferSize, int nChannels); /* output method */ + +// pyOSCDebug pyd; + maxiAtomStream atStream; + + flArr atomBuffer; + +}; diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.cpp b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.cpp new file mode 100644 index 0000000..3af8084 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.cpp @@ -0,0 +1,45 @@ +/* + * pyOSCDebug.cpp + * bastardPop + * + * Created by Chris on 25/10/2011. + * Copyright 2011 Goldsmiths Creative Computing. All rights reserved. + * + */ + +#include "pyOSCDebug.h" + +pyOSCDebug::pyOSCDebug() { + ready = false; +} + +void pyOSCDebug::setup(string host, int port) { + osc.setup(host, port); + ready = true; +} + +void pyOSCDebug::clear() { + if (ready) { + ofxOscMessage m; + m.setAddress("/clear"); + osc.sendMessage(m); + } +} + + +void pyOSCDebug::send(vector data) { + send(&(data[0]), data.size()); +} + +void pyOSCDebug::send(float *data, unsigned int count) { + if (ready) { + ofxOscMessage m; + m.setAddress("/data"); + for(int i=0; i < count; i++) { + m.addFloatArg(data[i]); + } + osc.sendMessage(m); + } +} + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.h new file mode 100644 index 0000000..020f0fd --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.h @@ -0,0 +1,24 @@ +/* + * pyOSCDebug.h + * bastardPop + * + * Created by Chris on 25/10/2011. + * Copyright 2011 Goldsmiths Creative Computing. All rights reserved. + * + */ + +#include "ofxOSC.h" +#include + +class pyOSCDebug { +public: + pyOSCDebug(); + void setup(string host, int port); + void clear(); + void send(vector data); + void send(float *data, unsigned int count); +private: + ofxOscSender osc; + bool ready; + +}; \ No newline at end of file -- cgit v1.3