Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2012-10-03 11:55:14 avec le lemur

nitefish
membre
Date d'inscription: 2011-01-13
Messages: 48

avec le lemur



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

 

#2 2012-10-03 13:39:11 Re : avec le lemur

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: avec le lemur



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

 

#3 2012-10-03 17:56:41 Re : avec le lemur

nitefish
membre
Date d'inscription: 2011-01-13
Messages: 48

Re: avec le lemur



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

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024