diff options
Diffstat (limited to 'liveengine/src/testApp.cpp')
| -rwxr-xr-x | liveengine/src/testApp.cpp | 100 |
1 files changed, 66 insertions, 34 deletions
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;i<numLayers;i++) layers[i]->update(); } 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;i<viewports.size();i++) { bool even=!(i%2); - 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: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;i<viewports.size();i++) viewports[i]->keyPressed(key); - else if (activeView<viewports.size()) viewports[activeView]->keyPressed(key); + if (activeView<0) for (int i=0;i<viewports.size();i++) if (viewports[i]->isMapped) viewports[i]->keyPressed(key); + else if (activeView<viewports.size()&&viewports[activeView]->isMapped) 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;i<numLayers;i++){
// if (layers[i]->note==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<int, layer*>::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;i<numLayers;i++){
// if (layers[i]->mix==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;
}
- }
}
|
