/**
* oscP5oscArgument by andreas schlegel
* example shows how to parse incoming osc messages "by hand".
* it is recommended to take a look at oscP5plug for an alternative way to parse messages.
* oscP5 website at https://www.sojamo.de/oscP5
*/
import oscP5.*;
import netP5.*;
OscP5 oscP5;
NetAddress myRemoteLocation;
void setup() {
size(400,400);
frameRate(25);
/* start oscP5, listening for incoming messages at port 12000 */
oscP5 = new OscP5(this,12000);
myRemoteLocation = new NetAddress("127.0.0.1",12000);
/* send an OSC message to this sketch */
oscP5.send("/test",new Object[] {new Integer("1"), new Float(2.0),"test string."}, myRemoteLocation);
}
void draw() {
background(0);
}
void oscEvent(OscMessage theOscMessage) {
/* check if theOscMessage has the address pattern we are looking for. */
if(theOscMessage.checkAddrPattern("/test")==true) {
/* check if the typetag is the right one. */
if(theOscMessage.checkTypetag("ifs")) {
/* parse theOscMessage and extract the values from the osc message arguments. */
int firstValue = theOscMessage.get(0).intValue(); // get the first osc argument
float secondValue = theOscMessage.get(1).floatValue(); // get the second osc argument
String thirdValue = theOscMessage.get(2).stringValue(); // get the third osc argument
print("### received an osc message /test with typetag ifs.");
println(" values: "+firstValue+", "+secondValue+", "+thirdValue);
return;
}
}
println("### received an osc message. with address pattern "+
theOscMessage.addrPattern()+" typetag "+ theOscMessage.typetag());
}