#include "testApp.h" //-------------------------------------------------------------- void testApp::setup(){ int midiPort=0; midiChannel=0; numLayers=0; if( !XML.loadFile("settings.xml") ){ printf("unable to load settings.xml check data/ folder\n"); }else{ printf("settings loaded!\n"); midiPort=ofToInt(XML.getAttribute("globePlayer", "port", "0")); //default to 0/all midiChannel=ofToInt(XML.getAttribute("globePlayer", "channel", "0")); if (midiChannel) printf("listening on midi channel %d\n",midiChannel); else printf("listening on all midi channels\n"); if(XML.pushTag("globePlayer")) { numLayers=XML.getNumTags("layer"); if(numLayers) { layers=new globeLayer*[numLayers]; for (int i=0;ikeys; XML.getAttributeNames("settings", keys, 0); map settings; for (int k=0;kupdate(); } //-------------------------------------------------------------- void testApp::draw(){ ofBackground(0,0,0); for (int i=0;idraw(); if (showFPS) ofDrawBitmapString(ofToString(ofGetFrameRate(), 2),20,20); } //-------------------------------------------------------------- void testApp::keyPressed (int key){ if(key == 's'){ XML.saveFile("settings.xml"); printf("settings saved!\n"); } if(key == 'f'){ toggleFPS(); } if(key=='1'){ layers[0]->setActive(100); layers[0]->CC(8,127); } if(key=='q'){ layers[0]->setActive(0); layers[0]->CC(8,0); } if(key=='2'){ layers[1]->setActive(100); layers[1]->CC(9,127); } if(key=='w'){ layers[1]->setActive(0); layers[1]->CC(9,0); } if(key=='3'){ layers[2]->setActive(100); layers[2]->CC(10,127); } if(key=='e'){ layers[2]->setActive(0); layers[2]->CC(10,0); } if(key=='7'){ layers[2]->CC(20,3); printf("changing to device 3\n"); } if(key=='8'){ layers[2]->CC(20,4); printf("changing to device 4\n"); } //this doesn't seem to arrive if(key=='4'){ layers[3]->setActive(100); layers[3]->CC(16,127); } if(key=='r'){ layers[3]->setActive(0); layers[3]->CC(16,0); } } //-------------------------------------------------------------- void testApp::keyReleased(int key){ } //-------------------------------------------------------------- void testApp::mouseMoved(int x, int y ){ } //-------------------------------------------------------------- void testApp::mouseDragged(int x, int y, int button){ } //-------------------------------------------------------------- void testApp::mouseReleased(int x, int y, int button){ } void testApp::mousePressed(int x, int y, int button) { } //-------------------------------------------------------------- void testApp::windowResized(int w, int h){ } //-------------------------------------------------------------- void testApp::gotMessage(ofMessage msg){ } //-------------------------------------------------------------- void testApp::dragEvent(ofDragInfo dragInfo){ } void testApp::toggleFPS(){ showFPS=!showFPS; } void testApp::newMidiMessage(ofxMidiEventArgs& eventArgs){ //newMessage(eventArgs.port, eventArgs.channel, eventArgs.byteTwo, eventArgs.timestamp); //byteOne : message type /* int port; int channel; int status; int byteOne; int byteTwo; double timestamp; */ //printf("%d %d %d %d %d\n",eventArgs.port,eventArgs.channel,eventArgs.status,eventArgs.byteOne,eventArgs.byteTwo); bool noteOn; //this old thing! if ((midiChannel==0)||(eventArgs.channel==midiChannel)) { switch(eventArgs.status) { case 144: //noteon-off noteOn=(eventArgs.byteTwo==0?false:true); for (int i=0;inote==eventArgs.byteOne) layers[i]->setActive(noteOn); } break; case 176: //control change for (int i=0;imix==eventArgs.byteOne) layers[i]->setMixAmt(((float)eventArgs.byteTwo)/127.0f); layers[i]->CC(eventArgs.byteOne,eventArgs.byteTwo); } } } }