# HG changeset patch # User samer # Date 1329300844 0 # Node ID 06a2fdb333caaf26cf7af7fabf4b0f50971df962 # Parent 417deb31dd4ef21b06b999d87eea87d4aed14c4c Added visibilty control for tokens; removed token highlight when keyboard disabled. diff -r 417deb31dd4e -r 06a2fdb333ca src/Voice.cpp --- a/src/Voice.cpp Tue Feb 07 14:23:32 2012 +0000 +++ b/src/Voice.cpp Wed Feb 15 10:14:04 2012 +0000 @@ -12,10 +12,13 @@ inline static double min(double x,double y) { return (x #define BUFFER_ZONE 64 // have to drag this far to snap out of triange. +#define NUM_TEMPI 9 -static int tempi[]={20,30,45,60,90,120,150,180}; +static int tempi[]={20,30,45,60,90,120,150,180,240}; + melodyTriangle::melodyTriangle(const char *host, int port, int numVoices, bool enableKeys,int voiceIdOffset,int receivePort): @@ -121,7 +123,7 @@ ofTriangle(x1, y1, x2, y2, x3, y3); for (int i=numVoices-1; i>=0; i--){ - voices[i]->draw(voices[i]->isInVoice(mouseX,mouseY)); + voices[i]->draw(enableKeys && voices[i]->isInVoice(mouseX,mouseY)); } // display message if any @@ -195,7 +197,7 @@ send("/tempo",tempi[tempoIndex]); break; case '}': - if (tempoIndex<7) tempoIndex++; + if (tempoIndexisActive ? "/stop" : "/start", v->id); + if (v->inTriangle) { + send(v->isActive ? "/stop" : "/start", v->id); + } v->isActive=!v->isActive; break; case OF_KEY_LEFT: sendShift(v->id,-1,ratio); break; @@ -305,6 +309,7 @@ string msg=msg_path.substr(8); Voice *v=get_voice(m.getArgAsInt32(0)); + cout << "Received " << msg_path << "\n"; if (msg=="requested") v->status=Voice::waiting; else if (msg=="pending") v->status=Voice::pending; else if (msg=="received") { @@ -335,6 +340,10 @@ } else if (msg=="params") { v->octave = m.getArgAsInt32(1); v->amplitude = m.getArgAsFloat(2); + } else if (msg=="visible") { + v->isVisible = m.getArgAsInt32(1); + if (voiceGrabbed==v && !v->isVisible) + voiceGrabbed=NULL; } } else if (msg_path=="/display") { display_msg=m.getArgAsString(0); @@ -405,34 +414,9 @@ printf("sent /reply_to %i\n",receivePort); } -void melodyTriangle::sendPeriod(int id, int num, int den){ - ofxOscMessage m; - m.setAddress("/period"); - m.addIntArg(id); - m.addIntArg(num); - m.addIntArg(den); - sender.sendMessage(m); - printf("sent /period %i %i %i\n",id,num,den); -} - -void melodyTriangle::sendShift(int id, int num, int den){ - ofxOscMessage m; - m.setAddress("/shift"); - m.addIntArg(id); - m.addIntArg(num); - m.addIntArg(den); - sender.sendMessage(m); - printf("sent /shift %i %i %i\n",id,num,den); -} - -void melodyTriangle::sendOctave(int id, int oct){ - ofxOscMessage m; - m.setAddress("/octave"); - m.addIntArg(id); - m.addIntArg(oct); - sender.sendMessage(m); - printf("sent /octave %i %i\n",id,oct); -} +void melodyTriangle::sendPeriod(int id, int num, int den){ send("/period",id,num,den); } +void melodyTriangle::sendShift(int id, int num, int den) { send("/shift",id,num,den); } +void melodyTriangle::sendOctave(int id, int oct){ send("/octave",id,oct); } void melodyTriangle::sendAmplitude(int id, float amp){ ofxOscMessage m; @@ -443,6 +427,27 @@ printf("sent /amplitude %i %1.3f\n",id,amp); } +void melodyTriangle::send(const char *addr, int a, int b, int c) { + ofxOscMessage m; + m.setAddress(addr); + m.addIntArg(a); + m.addIntArg(b); + m.addIntArg(c); + sender.sendMessage(m); + printf("sent %s %i\n",addr,a); +} + + +void melodyTriangle::send(const char *addr, int a, int b) { + ofxOscMessage m; + m.setAddress(addr); + m.addIntArg(a); + m.addIntArg(b); + sender.sendMessage(m); + printf("sent %s %i\n",addr,a); +} + + void melodyTriangle::send(const char *addr, int a) { ofxOscMessage m; m.setAddress(addr); diff -r 417deb31dd4e -r 06a2fdb333ca src/melodyTriangle.h --- a/src/melodyTriangle.h Tue Feb 07 14:23:32 2012 +0000 +++ b/src/melodyTriangle.h Wed Feb 15 10:14:04 2012 +0000 @@ -45,6 +45,8 @@ void sendAmplitude(int id, float amp); void send(const char *msg); void send(const char *msg, int a); + void send(const char *msg, int a, int b); + void send(const char *msg, int a, int b, int c); void handleMessage(ofxOscMessage &m); bool clipToTriangle(int *cx, int *cy);