Voilà j'ai cet exemple qui fonctionne au 3/4...
Je peux envoyer des infos au Lemur.C'est ok.
Mais pour ce qui est de communiquer à Processing,je n'ai que la position x qui répond.
Pas de message d'erreur...
Un soucis avec le code?
Moi j'en détecte pas,mais bon je ne suis pas une référence:cool:
import oscP5.*; import netP5.*; //Set ports and ip int localPort = 59000; //port on this computer which will receive msg from Lemur int lemurPort = 8000; // port to send to the lemur String lemurIP = "192.168.1.11"; //Lemur's ip address //Lemur controls String x1 = "/MultiBall/x"; String y1 = "/MultiBall/y"; float circleXpos = width/2; float circleYpos = height/2; float radius = 100; OscP5 oscP5; NetAddress Lemur; void setup() { background(0); size(400, 400); frameRate(30); smooth(); oscP5 = new OscP5(this, localPort); // to recieve OSC messages from the Lemur Lemur = new NetAddress(lemurIP, lemurPort); // to send OSC message to the Lemur } void draw() { // draw fading background fill(0, 1); rect(0, 0, width, height); // draw circle fill(color(25, 249, 255)); ellipse(circleXpos, circleYpos, radius, radius); if (mousePressed) { //dragging circle with mouse will send OSC to Lemur circleXpos=mouseX; circleYpos=mouseY; //send 2 messages to the Lemur. 1 for X position, 1 for Y position OscMessage myMouseXLoc = new OscMessage(x1); OscMessage myMouseYLoc = new OscMessage(y1); myMouseXLoc.add(map(circleXpos, 0, width, 0, 1)); myMouseYLoc.add(map(circleYpos, 0, height, 0, 1)); oscP5.send(myMouseXLoc, Lemur); oscP5.send(myMouseYLoc, Lemur); } } // when Lemur sends OSC to Processing void oscEvent(OscMessage theOscMessage) { if (theOscMessage.checkAddrPattern(x1) == true) { circleXpos = map(theOscMessage.get(0).floatValue(), 0, 1, 0, width); } if (theOscMessage.checkAddrPattern(y1) == true) { circleYpos = map(theOscMessage.get(0).floatValue(), 1, 0, 0, height); } }
merci de regarder,donc
Hors ligne
Bonjour,
Je ne travaille pas avec Lemur, mais avec TouchOSC.
Met un :
println(theOscMessage.getAddrPattern() + " - " + theOscMessage.typetag() );
dans ta fonction oscEvent() pour voir les messages que tu reçois, pour identifier la source du problème.
Dans l'exemple que tu as pris :
http://forum.jazzmutant.com/viewtopic.php?p=15399
Son adresse OSC est :
/Multiball/x
Sans majuscule à ball.
Le println te sera d'un bon secours, mais je en m'explique pas pourquoi tu réussi avec les X.
Regarde les adresses ainsi que le types des valeurs que tu renvoies dans ton template Lemur.
Bon courage.
Dernière modification par Mushussu (2012-10-03 14:16:26)
Hors ligne
Et merci pour l'intérêt Mushussu.
Ce n'est pas de courage dont j'ai besoin,mais d'un cerveau:
mettre la bonne adresse osc pour le "y" règle bien le problème
(je teste l'envoi vers deux programmes...).
Hors ligne