From 3bf0663e94b6335cb748a50a8b95e8a98d2a0630 Mon Sep 17 00:00:00 2001 From: Comment Date: Thu, 24 Jan 2013 18:07:04 +0000 Subject: folded kinect into main branch --- liveengine/src/testApp.cpp | 100 ++++++++++++++++++++++++++++++--------------- 1 file changed, 66 insertions(+), 34 deletions(-) (limited to 'liveengine/src/testApp.cpp') diff --git a/liveengine/src/testApp.cpp b/liveengine/src/testApp.cpp index cdff1af..c69ac66 100755 --- a/liveengine/src/testApp.cpp +++ b/liveengine/src/testApp.cpp @@ -58,7 +58,7 @@ void kinectWindow::draw(){ //-------------------------------------------------------------- void testApp::setup(){ int midiPort=0; - midiChannel=0; + midiChannel=0; useKinect=false; if( !XML.loadFile("settings.xml") ){ printf("unable to load settings.xml check data/ folder\n"); @@ -91,7 +91,7 @@ void testApp::setup(){ kw->addListener(kinectWin); kinectWin->setup(); kinectWin->setParent(this); - + NIinstance.start(); } @@ -106,9 +106,9 @@ void testApp::setup(){ settings[keys[k]]=XML.getAttribute("settings",keys[k],"none",0); } viewports[i]->setcam(settings); - XML.popTag(); + XML.popTag(); - } + } else viewports.push_back(new viewport(w,h,x,y,rot,ox,oy)); } } @@ -116,23 +116,22 @@ void testApp::setup(){ XML.popTag(); - } - + } } - + activeView=-1; midiIn.listPorts(); midiIn.openPort(midiPort); midiIn.addListener(this); - //to register only to one controller pass the id as first argument + // to register only to one controller pass the id as first argument // midiIn.addListener(84,this); // to debug // midiIn.setVerbose(true); controllers=new unsigned char[NUM_CONTROLLERS]; - memset(controllers,127,NUM_CONTROLLERS); + memset(controllers,NUM_CONTROLLERS,0); note=0; makeColours(); @@ -198,8 +197,20 @@ void testApp::setup(){ gui.add(transparentBlack.setup("transparent black", false)); gui.add(resetDrawscale.setup("reset draw scale")); gui.add(resetFBscale.setup("reset FB scale")); + fadeScale=128; + gui.add(fS.setup("fade scale",fadeScale,0,255,255)); + decayTime=1.0f; + gui.add(dT.setup("decay time",decayTime,0,10.0,255)); + + gui.add(oscScale.setup("scale size LFO", false)); + gui.add(breakOsc.setup("break oscillators", false)); + gui.add(randomOsc.setup("randomise oscillators", false)); + scaleAmplitude=0.5f; + gui.add(sA.setup("fade scale",scaleAmplitude,0,2.0,255)); + scaleFrequency=1.0f; + gui.add(sF.setup("fade freq",scaleFrequency,0,5.0,255)); gui.add(drawCloud.setup("draw pointCloud",false)); - //gui.add(drawSkel.setup("draw Skeleton",false)); + gui.add(drawSkel.setup("draw Skeleton",false)); resetDrawscale.addListener(this,&testApp::resetDrawscalePressed); resetFBscale.addListener(this,&testApp::resetFBscalePressed); @@ -214,6 +225,7 @@ void testApp::setup(){ guiWin->setup(); guiWin->setParent(this); + debug=false; } @@ -231,8 +243,7 @@ void testApp::makeColours() { } //-------------------------------------------------------------- void testApp::update(){ - - + //for (int i=0;iupdate(); } void testApp::saveSettings(string filename){ @@ -258,14 +269,17 @@ void testApp::draw(){ float lambda=max(0.0f,1.0f-((ofGetElapsedTimef()-lastnoteTime)/decayTime)); - ofSetColor(255-fadetime,255-fadetime,255-fadetime); //for feedback + int ft=255-(fadetime*((float)fadeScale)*0.1f); + //if(ofGetFrameNum()%25==0) printf("fadeScale %i\n",(int)fadeScale); + ofSetColor(ft,ft,ft); //for feedback + float os=oscScale?(sin((breakOsc?ofGetElapsedTimef()-(randomOsc?randOffs:lastnoteTime):ofGetElapsedTimef()))*scaleFrequency)*scaleAmplitude:0.0f; //vp1.draw(lambda,controllers,xshift,yshift,list,transparentBlack,note,mode,controller_colours,controlColours,scale,fscale,noteRandomiseColours?colShift:0.0f); //vp2.draw(lambda,controllers,reversemain?-xshift:xshift,yshift,list,transparentBlack,note,mode,controller_colours,controlColours,reversemain?1.0f/scale:scale,reversemain?1.0f/fscale:fscale,noteRandomiseColours?colShift:0.0f); for (int i=0;iisMapped) viewports[i]->mapdraw(lambda,controllers,even&&reversemain?-xshift:xshift,yshift,list,transparentBlack,note,mode,controller_colours,controlColours,even&&reversemain?1.0f/scale:scale,even&&reversemain?1.0f/fscale:fscale,noteRandomiseColours?colShift:0.0f,drawCloud,drawSkel); - else viewports[i]->draw(lambda,controllers,even&&reversemain?-xshift:xshift,yshift,list,transparentBlack,note,mode,controller_colours,controlColours,even&&reversemain?1.0f/scale:scale,even&&reversemain?1.0f/fscale:fscale,noteRandomiseColours?colShift:0.0f); + if (viewports[i]->isMapped) viewports[i]->mapdraw(lambda,controllers,even&&reversemain?-xshift:xshift,yshift,list,transparentBlack,note,mode,controller_colours,controlColours,even&&reversemain?1.0f/(scale+os):scale+os,even&&reversemain?1.0f/fscale:fscale,noteRandomiseColours?colShift:0.0f,drawCloud,drawSkel); + else viewports[i]->draw(lambda,controllers,even&&reversemain?-xshift:xshift,yshift,list,transparentBlack,note,mode,controller_colours,controlColours,even&&reversemain?1.0f/(scale+os):scale+os,even&&reversemain?1.0f/fscale:fscale,noteRandomiseColours?colShift:0.0f); } ofSetColor(255,255,255); @@ -413,8 +427,8 @@ void testApp::keyPressed(int key, ofxFenster* win){ } void testApp::keyPressed(int key){ - if (activeView<0) for (int i=0;ikeyPressed(key); - else if (activeViewkeyPressed(key); + if (activeView<0) for (int i=0;iisMapped) viewports[i]->keyPressed(key); + else if (activeViewisMapped) viewports[activeView]->keyPressed(key); if (key>='0' && key <='5'){ @@ -434,7 +448,9 @@ void testApp::keyPressed(int key){ break; } } - + if(key =='q'){ + nmidiMessage(144,ofRandom(64)+36,127); + } if(key == 'p'){ saveSettings("settings.xml"); printf("settings saved!\n"); @@ -480,10 +496,14 @@ void testApp::keyPressed(int key){ } - if (key=='.') { + if(key == 'd'){ + debug=!debug; + } + + if (key=='j') { fscale=1.0f; } - if (key=='/') { + if (key=='h') { scale=1.0f; } @@ -567,7 +587,11 @@ void testApp::toggleFPS(){ showFPS=!showFPS; } -void testApp::newMidiMessage(ofxMidiEventArgs& eventArgs){ +void testApp::newMidiMessage(ofxMidiEventArgs& eventArgs){ + if ((midiChannel==0)||(eventArgs.channel==midiChannel)) { + nmidiMessage(eventArgs.status,eventArgs.byteOne,eventArgs.byteTwo); + } +} //newMessage(eventArgs.port, eventArgs.channel, eventArgs.byteTwo, eventArgs.timestamp); @@ -583,30 +607,38 @@ void testApp::newMidiMessage(ofxMidiEventArgs& eventArgs){ */ //printf("%d %d %d %d %d\n",eventArgs.port,eventArgs.channel,eventArgs.status,eventArgs.byteOne,eventArgs.byteTwo); - +void testApp::nmidiMessage(int event,int data1, int data2) { + if (debug) printf("midi: %i %i\n",event,data1); bool noteOn; //this old thing! - - if ((midiChannel==0)||(eventArgs.channel==midiChannel)) { - switch(eventArgs.status) { + int i; + switch(event) { case 144: //noteon-off channel 0 - noteOn=(eventArgs.byteTwo==0?false:true); + noteOn=(data2==0?false:true); //for (int i=0;inote==eventArgs.byteOne) layers[i]->setActive(noteOn); //} - if (debug) printf("note: %i %i\n",eventArgs.byteOne,eventArgs.byteTwo); - note=eventArgs.byteOne; + + note=data1; lastnoteTime=ofGetElapsedTimef(); - if (noteRandomiseColours) { - makeColours(); // - } + if (list.layers.size()&&list.lock()) { //if playlist is loaded + map::iterator itr; + //for(itr = list.layers.begin(); itr != list.layers.end(); ++itr){ + // list.layers[itr->first]->setNote(note); + //} + list.layers[note]->setNote(note); + list.unlock(); + } + if (noteRandomiseColours) { + makeColours(); // + } + randOffs=ofRandom(100.0f); break; case 176: //control change channel 0 //for (int i=0;imix==eventArgs.byteOne) layers[i]->setMixAmt(((float)eventArgs.byteTwo)/127.0f); //} - if (debug) printf("cc: %i %i\n",eventArgs.byteOne,eventArgs.byteTwo); - controllers[eventArgs.byteOne-START_CONTROLLER]=eventArgs.byteTwo; + if (debug) printf("cc: %i %i\n",data1,data2); + if (data1>=START_CONTROLLER) controllers[data1-START_CONTROLLER]=data2; } - } } -- cgit v1.2.3