PatchsTableau résumé- Matériel / Logiciel / OutilsLogiciels et langages- Pure Data- Max MSP- Isadora- EyesWeb- VVVV- Processing- UsineTraitement de données- Outils- Filtres pour capteurs- Communication OSC, ponts entre logicielsDidacticiels- Réception en Midi- Pure Data / Gem- Proxi Mini + SonMatérielAutonomes- ZIP Z Interprêteur de PatchCaptationInterfaces sans fil- Mini-HF vers Midi- WiwiInterfaces filaires- 12 Ana / 16 Num- 16 capteurs OSC- 8 Ana / 8 Num Midi 2003- 2 Analogiques- 1 AnalogiqueCapteurs autonomes- Télémètre simple- Télémètre synchro- Tapis sensitif- RFIDCapteurs simples- Capteur piezo- Capteur pyro- Capteur Vitesse Doppler- Proxi Mini + SonCommunication- Midi vers DMX- Booster / Split / MergerActionActionneurs autonomes- 2 Servo / 4 Lampes- 8 Ana Out 0-10V- 8 Servo 128 pas- 8 Servo 3500 pas- 64 LEDCommande - Cartes filles- 8 Transistors- 8 Relais 2RT / 1RT / Reed- Inversion de moteurs |
Communication logicielle - OSCOSC - Transmission de données
|
Traduction | Paramètres |
données | flot de données connecté |
adresse spécifique | /usine/ et /abruptum/ |
port Usine | 8000 |
même machine | localhost |
Patch Max pd_usine.pd
L'objet sendOSC doit recevoir successivement plusieurs informations, sous forme de messages, pour envoyer des données vers Usine.
Il faut d'abord se connecter avant de pouvoir envoyer des informations. Un message établit la connexion (connect) et indique à sendOSC qu'on s'adresse à un logiciel sur la même machine que le patch (localhost) et que le logiciel cible est Usine (identifié par l'adresse UDP 8000). Cliquer sur ce message une fois.
Enfin, les informations peuvent être envoyées par sendOSC et comprise par Usine. Un message send branché sur sendOSC précise à quelle adresse OSC le message doit être envoyé. Ce message contient l'adresse /quelquechose/ et la ou les valeurs à transmettre.
Dans l'exemple donné ici, nous utilisons des metro, un line et un random pour créer différents flux de données. Les valeurs fluctuent entre 0 et 100 d'un côté et entre 0 et 127 de l'autre.
* Cas d'un seul flux de données
Les valeurs envoyées sur l'adresse /abruptum/ emploient des messages OSC qui contiennent l'adresse et seulement cette valeur. Le message connecté sur sendOSC est créé en faisant suivre "/abruptum/" par $1, qui est remplacé par chaque nouvelle valeur venue du random.
* Cas de plusieurs flux simultanés
Les messages envoyés sur l'adresse /usine/ contiennent une liste de 4 valeurs. Pour fabriquer ces messages, les valeurs passent dans un pack (ou un pak selon la priorité d'activation choisie), qui crée une liste de 4 valeurs. L'objet prepend ajoute "send /usine/" devant la liste de données.
2 - Vers Usine
Patch OSC_from_PD.pat
Du côté d'Usine, le module OSC receive permet de recevoir tout message OSC. En posant le module, choisir le nombre de sorties Data Out nécessaires en fonction du nombre de flux de données différents à recevoir, entre 1 et 64.
Dans l'exemple, le premier module est équipé de 4 data out, correspondant aux 4 valeurs envoyées vers /usine/. Le tri des différents flux se fait directement dans le module OSC receive vers les 4 sorties data, ici liées à des faders.
Le deuxième module n'a qu'une sortie, correspondant au message plus simple envoyé sur /abruptum/.
Si les metro du patch PD sont activés, lorsque les deux fichiers sont ouverts en même temps, et que l'OSC est activé dans Usine, vous devriez observer l'arrivée régulière de données dans ce dernier.
1 - Depuis Usine
Patch OSC_to_PD.pat
Le module d'envoi est OSC send. Il peut être configuré pour envoyer de 1 à 64 flux différents. Il faut d'abord activer l'OSC dans OSC Setup avant de pouvoir envoyer des informations.
* Cas d'un seul flux de données
Les valeurs envoyées sur l'adresse /romulan emploient des messages OSC qui contiennent l'adresse et seulement cette valeur. Un module PointsCurve envoie automatiquement une séquence de valeurs.
* Cas de plusieurs flux simultanés
Les messages envoyés sur l'adresse /truc contiennent une liste de 2 valeurs, produites ici par des modules LFO et Step. L'option choisie en posant le module est 2.
Traduction | Entrée de l'objet OSC Transmit | Paramètres |
même machine | addr | 127.0.0.1 |
PD | port | 666 |
adresse spécifique | addr | /truc et /romulan |
données | data 1, 2 | flots de données connecté |
envoi | send | activé ou ponctuel |
Il faut aussi choisir le rythme d'envoi : l'entrée send du module OSC send doit être activée pour qu'un message parte. Deux possibilités :
- activer le bouton send, vert par défaut, le flux est permanent ;
- activer l'envoi ponctuellement en désactivant l'entrée send et en la cliquant seulement quand nécessaire.
Dans l'exemple, des modules créent des valeurs en permanence et l'entrée send est activée en continu. L'entrée broadcast est désactivée.
2 - Réception dans PD
Du côté de Pure Data, deux objets sont nécessaires pour la réception des données. L'objet dumpOSC permet de recevoir tout message OSC. Le message provenant d'Usine étant adressé au port UDP 666, dumpOSC prend en argument ce numero de port.
Les messages entrant sont marqués par les adresses /truc ou /romulan.
L'objet suivant, route, permet de trier les messages arrivant à l'aide de ces adresses. Sur la sortie de droite passent d'éventuels autres messages marqués différemment.
* Cas d'un seul flux de données
Les messages adressés à /romulan ne contiennent qu'une valeur, qui apparaît directement à la sortie du route.
* Cas de plusieurs flux simultanés
Les messages envoyés sur l'adresse /truc contiennent une liste de 2 valeurs, qu'il faut séparer grâce à l'objet unpack.
Dans l'exemple précédent, nous avons expliqué comment envoyer plusieurs flux différents de données entre PD et Usine. En résumé, pour envoyer plusieurs valeurs simultanément on peut utiliser :
- un message unique contenant une liste de plusieurs valeurs, adressé à /quelquechose/ sur un port précis ;
- des messages différents envoyés à plusieurs adresses /autreschoses sur un port précis ;
- dans le sens Usine vers PD, des messages adressés à des ports différents.