Annonce

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


#1 2008-12-28 18:43:41 osc depuis pd

kro
membre
Date d'inscription: 2008-05-23
Messages: 130
Site web

osc depuis pd



jessaie de m'initier à l'osc en connectant pure data et gephex
sur pd j'utilise la librairie de mrpeach

et sur gephex osc input (port 9343) et osc->num

un screen :

http://mindthepressure.free.fr/osc_gephex.gif

je me penche dessus depuis 2 3 jours, pd se connecte bien mais je trouve pas où j'ai faux, en tous cas il ne se passe rien dans gephex

Dernière modification par kro (2008-12-28 18:45:05)

Hors ligne

 

#2 2009-01-16 10:22:24 Re : osc depuis pd

kro
membre
Date d'inscription: 2008-05-23
Messages: 130
Site web

Re: osc depuis pd



un petit up ?

ou si quelqu'un a un tuto osc gephex (ou osc en general jai surement pas tout compris)

Hors ligne

 

#3 2009-01-16 11:24:24 Re : osc depuis pd

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: osc depuis pd



Salut Kro,

Pour l'OSC avec gephex, je ne saurais pas, mais sur OSC en général, voila quelques liens :

Un diaporama (au format .mov) qui aborde à la fois OSC du point de vue de l'utilisateur, mais aussi du point de vue interne,
Everything you ever wanted to know about OSChttp://opensoundcontrol.org/files/Every … ut-OSC.mov

Une description du protocole TUIO (pour tables réactives, etc, TUIO est bati sur OSC et utilise la même syntaxe) C'est intéressant car il y a des exemples de messages, et ça montre comment structurer un ensemble de messages pour adapter OSC à un "instrument" particulier.
http://modin.yuri.at/publications/tuio_gw2005.pdf

Une comparaison avec MIDI dans ce pdf : http://opensoundcontrol.org/files/OSC-Demo.pdf

Ca correspond à ce que tu cherches ?

Hors ligne

 

#4 2009-01-16 13:44:53 Re : osc depuis pd

sakramh
membre
Lieu: clichy-sous-bois
Date d'inscription: 2008-12-02
Messages: 829
Site web

Re: osc depuis pd



salut! Moi c'est à pure data que je connais pas grand chose mais au vu de la capture d'écran Kro tu veux faire communiquer PD avec Gephex sur le même poste de travail. Là c'est exactement les mêmes règles que tu emploierais sur un réseau local (ou non d'ailleurs) qui s'appliquent : la "machine récepteur " doit écouter sur le même port que celui sur lequel la  "machine émetteur" transmet. (en général une plage de ports vers les 9000 en udp , ce protocole présentant pas mal d'avantages pour OSC) .Mais comme sur un réseau toujours il faut spécifier une adresse de réception à l'eméteur .Donc  envoyer les signaux sur le même poste (dans ton cas). Ce qui devrait  être 127.0.0.1 (la boucle locale) . Je te conseille d'acquérir quelques connaissances réseau si tu veux explorer les possibilités de protocoles de communication entre logiciels et/ou machines.En fait tout çà , çà marche à peu près comme la Poste ... smile


le code est l'alchimie de l'âge du silicium

Hors ligne

 

#5 2009-01-16 22:18:47 Re : osc depuis pd

kro
membre
Date d'inscription: 2008-05-23
Messages: 130
Site web

Re: osc depuis pd



ouioui je connais tres bien tout ce qui est réseau
moins ce qui est osc

merci pour le diaporama emoc

tout me semble bon je comprends juste pas pourquoi il ne se passe rien, je peux pas trop débugger dans gephex, p-e quil ne prend pas tous les types de variable

mais en fait je me demande si je suis pas tombé sur un bug, parfois il se passe quelque chose :
la valeur que je modifie dans gephex oscille entre 0 et 1 au hasard (il me semble) quand je change la valeur dans pure data

que j'envoie un float ou un int ne change rien
et si je type cette valeur [/gephex i $1] il ne se passe plus rien

Hors ligne

 

#6 2009-01-17 01:06:51 Re : osc depuis pd

rep
modérateur
Lieu: Toulouse
Date d'inscription: 2008-02-27
Messages: 1444
Site web

Re: osc depuis pd



salut
alors il y a bien moyen d'établir une connection osc entre gephex et puredata, je viens de tester, ça fonctionne...
par contre on dirait que les valeurs sont déformées entre l'envoie et la reception...zarb..
pour pure data ouvre le fichier Help -> References -> MrPeach -> OSCroute
dans gephex construit un patch avec les modules num->osc et osc->output
configure les ports..
ça devrait être bon...
ha oui et oublie pas de lancer le 'render' dans gephex (ctrl+enter) sinon ya rien qui se passe...
http://codelab.fr/up/screen-2.png

Hors ligne

 

#7 2010-11-10 20:41:02 Re : osc depuis pd

sakramh
membre
Lieu: clichy-sous-bois
Date d'inscription: 2008-12-02
Messages: 829
Site web

Re: osc depuis pd



bonsoir à tous . Je reprends ce fil car je pense avoir trouvé ce qui cloche :
au vu des sources C++ des modules numosc et oscnum il semble qu'une opération mathématique soit effectuéee sur la valeur numérique envoyée (essentiellement les fonctions annotées //push value et //get value) qui est de type "float" . En ce qui concerne l'adresse c'est bon . Un truc du genre /gephex/control1/ est parfaitement interprété par un un soft tel que puredata (ai aussi vérifié avec les outils de la  bibliothèque OSC (liblo) ) .
Donc suite à la manipulation de la valeur (à l'envoi) seul gephex  va savoir la décoder vu que l'opération inverse est réalisée . D'une instance de gephex vers une autre çà fonctionne donc très bien .
Je ne connais rien à C++ ni à C d'ailleurs mais au vu de l'analyse des paquets UDP je pense qu'il s'agit d'une manipulation décimal vers binaire (genre puissances de 2) répartie en 3 paquets de 256 plus 1 de 128 où une
multiplication de la valeur par 4 vaut un increment de 1(256)
En connaissant la formule appliquée il doit être facile de la retranscrire dans puredata et ce dans les 2 sens .
ci-dessous ce qui me semble en cause    pour num -> osc (send)
// push float value
  float value = static_cast<float>(inst->in_value->number);
  std::copy(reinterpret_cast<char*>(&value),
        reinterpret_cast<char*>(&value) + 4,
        inst->out_r->data + size_len + address_len + pad_len + 4 );

                                                          pour osc -> num (recieve)
// get float value
        std::copy(p_pos, p_pos+4, reinterpret_cast<char*>(&inst->my->value));

dans les sources de gephex 0.4.4  /modules/src/numoscmodule et oscnummodule .
si l'un de nous est un as de la prog . bienvenue .
à part çà content que le paquet gephex de "tangostudio" fonctionne chez vous (comme chez moi) .
on a pas mal bossé pour le compatibiliser avec le v4l2 des nouveaux kernel et gcc 4.4
cordialement  sakramh


le code est l'alchimie de l'âge du silicium

Hors ligne

 

#8 2010-11-11 11:48:33 Re : osc depuis pd

oli44
membre
Lieu: Notre Dame des Landes
Date d'inscription: 2008-04-25
Messages: 585
Site web

Re: osc depuis pd



Salut,

dans ton patch pd, tu envoyes le message [/gephex/ $1(, essaye [/gephex $1( ou alors [/gephex/variable $1]


La route est longue mais la voie est libre

Hors ligne

 

#9 2010-11-11 14:05:27 Re : osc depuis pd

sakramh
membre
Lieu: clichy-sous-bois
Date d'inscription: 2008-12-02
Messages: 829
Site web

Re: osc depuis pd



Bonjour,
depuis puredata tout est ok . Un message du type /gephex/control1 $1  est parfaitement interprèté par oscdump de liblo .
Cette page est uptodate sur le sujet : http://en.flossmanuals.net/PureData/OSC
C'est gephex qui comprends pas . Déjà il n'admet que les "float" et c'est lui-même qui met le tag "f" . Gephex envoie la partie adresse ( /trucmuche/voix1 )  corectement et rajoute de lui-même et d'office le type float ( f ) , ce qu'on voit bien dans les sources des modules .
Là où il complique c'est dans l'envoi de la valeur qui est "reinterpreted" dans quelquechose comme la base 4 . Ou dans un algo genre valeur*4=increment de 256 , valeur*2=128 etc ... cela apparait très bien en dépackant les messages UDP  . Mais étant une bille en programation je suis pas capable de dire qu'elle est l'opération exacte effectuée dans gephex sur les nombres avant envoi ou après reception . Une fois celle ci decodée il suffirait dans purdata d'appliquer l'opérateur inverse (ou de modifier les sources de gephex vu qu'il semble que ce soit le seul soft soft à utiliser cet algo)
                                                            cordialement,    sakramh

Dernière modification par sakramh (2010-11-11 14:07:11)


le code est l'alchimie de l'âge du silicium

Hors ligne

 

#10 2010-11-12 18:08:11 Re : osc depuis pd

sakramh
membre
Lieu: clichy-sous-bois
Date d'inscription: 2008-12-02
Messages: 829
Site web

Re: osc depuis pd



TROUVÉ !!!!
c'est juste que Gephex envoie les valeurs  à l'envers ! sad
Je m'explique: les 4 derniers octets représentant la valeur (toujours un "float") sont envoyés en ordre inverse dans le message OSC transmis (et reçu) en UDP par Gephex . (un bug dans le code source) .
Le nombre N  d'octets du message UDP dépend  du nombre de  /.../.../ dans l'arborescence du message OSC et c'est toujours un multiple de 4 . (20 avec /qlqchoz/$)
Donc remettre le N en N-3, le N-1 en N-2, le N-2 en N-1 et le N-3 en N .
Pour çà insérer,  entre updreceive et unpackOSC,  un obj. unpack (avec N float) et un objet pack (avec N float toujours) et remettre les 4 derniers dans le bon ordre .
Y'a peut-être plus simple mais çà, çà marche .
Même chose à l'envers si envoi de Puredata vers Gephex .
Bah faudrait rectifier dans les sources Gephex mais çà je sais pas faire ....
cordialement,  Sakramh

Dernière modification par sakramh (2010-11-29 02:38:05)


le code est l'alchimie de l'âge du silicium

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024