bonjour
je ne connais pas tres bien max et j utilise Processing pour la premiere fois (+ je n ais aucune connaissance en POO)
j aide un amis qui fais une reactable
on récupère Tuio dans MaxMsp , et j ai donc un peu modifie son patch pour fowarder les infos qui arrivent de Tuio
en OSC
j envois les infos :
id
on
off
x
y
angle
séparément (chaque info a son adresse) sur un port (different de celui de Tuio)
donc j arrive a recupere les donnes dans Processing en OSC grace aux exemples fournis avec OSC
et j arrive a faire 5 print pour afficher les donnees dans une fonction
void oscEvent(OscMessage theOscMessage)
avec des
if(theOscMessage.checkAddrPattern("/id")==true) { println("id:"+theOscMessage.get(6).intValue()); //int oscid = theOscMessage.get(6).intValue();
comme les informations sont a prioris public , je peux donc les recuperer dans les autres fonctions si je défini mes nom de variables en début de code avec les memes noms de variables que j utilise dans le
void oscEvent
le probleme c est que les informations ne sont pas liees les unes aux autres
j ai donc pense qu il falais créer une class (et du coup un objet) j ai donc appris comment faire
mais je n ais pas trouve la solution finale
car je suis coince par le fait que je dois récupérer les informations en fonction de l id
dans le genre
object[tag.id].x
or x n est pas dépendent de l id , car il est envoyé en parallèle
mais je n y arrive pas
on m as dis que ca n etais pas la bonne solution car serait trop difficile (vu mon niveau)
on m as dit d utiliser HarshMap
donc il me faut apprendre Harsh map maintenant
avant de me lancer la dedans , je voudrais avoir confirmation du fait que ce soit la bonne piste
ou si il est préférable d envoyer toutes les infos a partir de Max en temps que Array []
merci beaucoup
Hors ligne
Bonjour,
Il me semble que ce serait plus simple d'envoyer toutes les infos ensemble avec l'id. Si tu envoies l'id à part tu ne pourras pas reconstituer ton message. Qu'est ce qui t'empêche de renvoyer les messages OSC complets de max vers processing? (ou vice-versa) En utilisant des ports différents.
Hors ligne
hello Emoc
je ne suis pas sur de comprendre ce que tu proposes,
tu me propose d envoyer un array pour chaque tag (une seule adresse) chaqun sur un port different .
Utiliser entre 25 et 32 ports osc ne vas pas ralentir grandement les performances?
Hors ligne
LineKernel a écrit:
tu me propose d envoyer un array pour chaque tag (une seule adresse) chaqun sur un port different .
Utiliser entre 25 et 32 ports osc ne vas pas ralentir grandement les performances?
hello,
Non non, ce n'est pas ce que je propose. Je propose juste que max route le message complet vers processing, et dans processing tu analyses le message tuio (par exemple en utilisant un des scripts fournis avec la librairie, tu n'as même pas besoin de l'écrire).
Peut-être un schéma sera plus clair
table -- OSC port 1111 --> max -- OSC port 2222 --> processing
max reçoit le message tuio, le transfère à processing sur un port différent que processing écoute et le traite en parallèle
Hors ligne
ha oui j y avais pense
mais apres bien avoir reflechi ,je me suis dis qu il me faudrais recompiler la librairie Tuio pour Processing
c est bien ca?
Hors ligne
Non, il n'y rien à recompiler. Qu'est ce qui te faisait penser ça ?
Le problème c'est que deux softs ne peuvent pas écouter le même port (sinon processing et max pourraient recevoir les flux TUIO), d'où l'intérêt que le premier soft fasse une copie et l'envoie au second, en osc, sur un autre port. Tu pourrais aussi mettre processing en premier qui retransmet à max, au détriment de la réactivité sonore.
Hors ligne
a vrais dire je ne sais pas , je n ai pas penser a regarder tuio dans processing pour savoir comment ca marchais
mon amis a essaye de lancer tuio dans max et dans processing en mm temps , et a donc vu que ca ne communiquait q avec l un ou l autre
je me suis directement dis que c etais car ils essayaient de se connecter au meme port
du coup c est pour ca que j ai fais un forward grace aux infos que j ai trouve avec osc pour processing
je n ai pas pense que le port etait définit dans le code de processing , je pensais qu il l etait dans la librairie
je vais regarder les exemples de tuio dans processing tout de suite ...
Dernière modification par LineKernel (2010-09-11 03:54:52)
Hors ligne
comme j avais imagine , le port de tuio est definit dans la libraire
pour m en rendre compte , j ai ouvert l exemple tuio pour processing:
pas de definition de port
puis j ai survole la librairie :
http://switch.dl.sourceforge.net/projec … VA-1.4.zip
et il est definit (pas aussi clairement que int port=3333; mais j imagine que le port est 3333):
//some stuff here... public class TuioProcessing implements TuioListener { private PApplet parent; private Method addTuioObject, removeTuioObject, updateTuioObject, addTuioCursor, removeTuioCursor, updateTuioCursor, refresh; private TuioClient client; public TuioProcessing(PApplet parent) { this(parent,3333); } public TuioProcessing(PApplet parent, int port) { this.parent = parent; parent.registerDispose(this); //some stuff here ...
qqn saurais recompiler TuioProcessing.java avec un autre port ?
+ m expliquer la methode pour forwarder le code Tuio a l identique dans Max
Hors ligne
Regarde la doc de tuio / java, tu peux définir le port d'écoute dans tuioClient. Ensuite dans les exemples fournis avec la librairie pour processing il y a TuioDemo.pde qui te permet de récupérer et traiter les messages. Ce n'est pas nécessaire de recompiler la librairie.
Je ne pratique pas max donc je ne saurais pas te dire comment faire pour forwarder, mais ça ne devrait pas être bien compliqué.
Hors ligne
ok merci , on m as aide pour comprendre ce qu il falais faire
pour ceux que ca interesse voila ce qu il faut faire pour changer le port dans processing
a la ligne
tuioClient = new TuioProcessing(this);
il suffi de rajouter le port apres "this" , comme cela
tuioClient = new TuioProcessing(this,4444);
je vais passer sous le forum de max pour demander comment rerouter tuio sous un autre port sans le modifier
merci emoc
Hors ligne
Hors ligne
Pages: 1