From e775f024476943beacc433c39b6b1003f7ba0d86 Mon Sep 17 00:00:00 2001 From: Comment Date: Wed, 16 Jan 2013 14:41:27 +0000 Subject: frame engine with alpha channel and blending --- liveengineUnmapped/src/testApp.cpp | 120 ++++++++++++++----------------------- 1 file changed, 44 insertions(+), 76 deletions(-) (limited to 'liveengineUnmapped/src/testApp.cpp') diff --git a/liveengineUnmapped/src/testApp.cpp b/liveengineUnmapped/src/testApp.cpp index cada0e7..c6fb94e 100755 --- a/liveengineUnmapped/src/testApp.cpp +++ b/liveengineUnmapped/src/testApp.cpp @@ -87,7 +87,6 @@ void testApp::setup(){ colShift=0; controlColours=false; - debug=false; noteRandomiseColours=false; transparentBlack=false; reversemain=false; @@ -145,6 +144,16 @@ 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)); + + 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)); resetDrawscale.addListener(this,&testApp::resetDrawscalePressed); resetFBscale.addListener(this,&testApp::resetFBscalePressed); @@ -159,6 +168,7 @@ void testApp::setup(){ guiWin->setup(); guiWin->setParent(this); + debug=false; } @@ -184,13 +194,16 @@ 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.1); + //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;idraw(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); + 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); @@ -337,65 +350,8 @@ void testApp::keyPressed(int key, ofxFenster* win){ else keyPressed(key); } void testApp::keyPressed(int key){ - if(key == 'q'){ - list.load("insects.xml"); - } - if(key == 'Q'){ - list.load("birds.xml"); - } - if(key == 'w'){ - list.load("teamsports.xml"); - } - if(key == 'W'){ - list.load("american_football.xml"); - } - if(key == 'e'){ - list.load("organs.xml"); - } - if(key == 'E'){ - list.load("crests.xml"); - } - if(key == 'r'){ - list.load("tai_chi.xml"); - } - if(key == 'R'){ - list.load("cricket.xml"); - } - if(key == 't'){ - list.load("reptiles.xml"); - } - if(key == 'T'){ - list.load("tools.xml"); - } - if(key == 'y'){ - list.load("miltary_ladies.xml"); - } - if(key == 'Y'){ - list.load("women_ethnic.xml"); - } - if(key == 'u'){ - list.load("knights.xml"); - } - if(key == 'U'){ - list.load("food.xml"); - } - if(key == 'i'){ - list.load("mil_historic.xml"); - } - if(key == 'I'){ - list.load("mil_ethnic.xml"); - } - if(key == 'o'){ - list.load("yoga.xml"); - } - if(key == 'O'){ - list.load("computers.xml"); - } - if(key == 'p'){ - list.load("dancing.xml"); - } - if(key == 'P'){ - list.load("trainers.xml"); + if(key =='q'){ + nmidiMessage(144,ofRandom(64)+36,127); } if(key == 's'){ XML.saveFile("settings.xml"); @@ -532,7 +488,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); @@ -548,30 +508,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(1.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