aboutsummaryrefslogtreecommitdiffstats
path: root/ofxMaxim/examples/OSX/ofMaximExample007OSX_Granular/src/testApp.cpp
diff options
context:
space:
mode:
authormick grierson <mickgrierson@gmail.com>2015-07-27 01:07:41 +0100
committermick grierson <mickgrierson@gmail.com>2015-07-27 01:07:41 +0100
commit1100fc8c462d9a17731340596e7d9c07adb3fe54 (patch)
tree91ed36c7a767f2819289409899ef305b358cf0f4 /ofxMaxim/examples/OSX/ofMaximExample007OSX_Granular/src/testApp.cpp
parent68ee8eba9c3834604d220f4bf56e7e9d506a77a7 (diff)
More major repair work. New OS X 10.10 SDK example project. New project structure. New Tutorials / Examples.
Diffstat (limited to 'ofxMaxim/examples/OSX/ofMaximExample007OSX_Granular/src/testApp.cpp')
-rw-r--r--ofxMaxim/examples/OSX/ofMaximExample007OSX_Granular/src/testApp.cpp213
1 files changed, 0 insertions, 213 deletions
diff --git a/ofxMaxim/examples/OSX/ofMaximExample007OSX_Granular/src/testApp.cpp b/ofxMaxim/examples/OSX/ofMaximExample007OSX_Granular/src/testApp.cpp
deleted file mode 100644
index 0daf76d..0000000
--- a/ofxMaxim/examples/OSX/ofMaximExample007OSX_Granular/src/testApp.cpp
+++ /dev/null
@@ -1,213 +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() {
- delete ts, ts2;
-}
-
-
-//--------------------------------------------------------------
-void testApp::setup(){
-
- //samples from http://freesound.org
- samp.load(ofToDataPath("2630__Jovica__133_bpm_ATTACK_LOOP_04_electrified_analog_kit_variation_16_mono.wav"));
- samp2.load(ofToDataPath("24620__anamorphosis__GMB_Kantilan_1.wav"));
- samp3.load(ofToDataPath("26393__brfindla__Calango1berimbau.wav"));
- samp4.load(ofToDataPath("68373__juskiddink__Cello_open_string_bowed.wav"));
- samp5.load(ofToDataPath("71515__Microscopia__Wilhelm_Bruder_Sohne_Organ.wav"));
-// samp5.load(ofToDataPath("sine1sec.wav"));
-
-
- 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));
-
-
-
- ts = new maxiPitchStretch<grainPlayerWin>(&samp);
- ts2 = new maxiPitchStretch<grainPlayerWin>(&samp2);
- ts3 = new maxiPitchStretch<grainPlayerWin>(&samp3);
- ts4 = new maxiPitchStretch<grainPlayerWin>(&samp4);
- ts5 = new maxiPitchStretch<grainPlayerWin>(&samp5);
- stretches.push_back(ts);
- stretches.push_back(ts2);
- stretches.push_back(ts3);
- stretches.push_back(ts4);
- stretches.push_back(ts5);
- speed = 1;
- rate = 2;
- grainLength = 0.05;
- current=0;
-
- fft.setup(1024, 512, 256);
- oct.setup(44100, 1024, 10);
-
- int current = 0;
- ofxMaxiSettings::setup(sampleRate, 2, initialBufferSize);
- ofSoundStreamSetup(2,0, this, maxiSettings::sampleRate, initialBufferSize, 4);/* Call this last ! */
-
- ofSetVerticalSync(true);
- ofEnableAlphaBlending();
- ofEnableSmoothing();
-}
-
-//--------------------------------------------------------------
-void testApp::update(){
-}
-
-//--------------------------------------------------------------
-void testApp::draw(){
- ofSetColor(160,32,240, 150);
- ofDrawBitmapString(":: ofxMaxim Granular Timestretching Example ::", 10,20);
- ofDrawBitmapString("Move the mouse left to right to change playback speed and direction.", 10,40);
- ofDrawBitmapString("Move the mouse up and down to change the grain length.", 10,60);
- ofDrawBitmapString("Click to cycle through samples.", 10,80);
-
- stringstream s;
- s << "Speed: " << speed;
- ofDrawBitmapString(s.str(), 10,750);
- s.str("");
- s << "Grain length: " << round(grainLength*1000.0) << " ms";
- ofDrawBitmapString(s.str(), 180,750);
-
- ofNoFill();
-// for(int i=0; i < oct.nAverages; i++) {
-// ofSetColor(200 + ((int)(ofGetFrameNum() * 0.8) % 255),
-// 100 + ((int)(ofGetFrameNum() * 1.4) % 255),
-// ofGetFrameNum() % 255,
-// oct.averages[i] / 20.0 * 255.0);
-//// ofCircle(ofGetWidth() / 2, ofGetHeight()/2, i * 5);
-// glPushMatrix();
-// glTranslatef(ofGetWidth()/2,ofGetHeight()/2, 0);
-// glRotatef(0.01 * ofGetFrameNum() * speed * i, 1, 0.1, 0);
-//// glutWireSphere(i * 5, 2 + (10 - (fabs(speed) * 10)), 2 + (fabs(speed) * 10));
-// glutWireSphere(i * 5, 10, 10);
-// glPopMatrix();
-// }
-
-
-}
-
-//--------------------------------------------------------------
-void testApp::audioRequested (float * output, int bufferSize, int nChannels){
- for (int i = 0; i < bufferSize; i++){
-// wave = stretches[current]->play(speed, grainLength, 5, 0);
- wave = stretches[current]->play(speed*2, rate, 0.1, 4, 0);
-// wave = stretches[current]->play2(pos, 0.1, 4);
- if (fft.process(wave)) {
- oct.calculate(fft.magnitudes);
- }
-
- //play result
- mymix.stereo(wave, 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){
- switch (key) {
- case 'a':
- case 'A':
- current = 0;
- break;
- case 's':
- case 'S':
- current = 1;
- break;
- case 'd':
- case 'D':
- current = 2;
- break;
- case 'f':
- case 'F':
- current = 3;
- break;
- case 'g':
- case 'G':
- current = 4;
- break;
- }
-
-}
-
-//--------------------------------------------------------------
-void testApp::keyReleased(int key){
-
-}
-
-//--------------------------------------------------------------
-void testApp::mouseMoved(int x, int y ){
- speed = ((double ) x / ofGetWidth() * 4.0) - 2.0;
- grainLength = ((double) y / ofGetHeight() * 0.1) + 0.001;
- pos = ((double) x / ofGetWidth() * 2.0);
-
- rate = ((double ) y / ofGetHeight() * 4.0) - 2.0;
-
-
-// cout << pos << endl;
-
-}
-
-//--------------------------------------------------------------
-void testApp::mouseDragged(int x, int y, int button){
-}
-
-//--------------------------------------------------------------
-void testApp::mousePressed(int x, int y, int button){
- if (++current > stretches.size()-1) current = 0;
-
-}
-
-//--------------------------------------------------------------
-void testApp::mouseReleased(int x, int y, int button){
-
-}
-
-//--------------------------------------------------------------
-void testApp::windowResized(int w, int h){
-
-}
-