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 de chaque flot | /capteur1, /capteur2, ... |
port Pure-Data | 4000 |
même machine | localhost |
Patch Max d'envoi de messages OSC.
Dans l'exemple donné ici, nous utilisons un module mini-HF dont nous voulons utiliser les données à la fois en Max et en PD. Les 8 sorties de capteurs sont envoyées vers PD, chacune associée à une adresse /capteurx. Les données entrent dans des messages, eux-mêmes connectés sur udpsend. Chaque message contient l'adresse et la valeur du capteur, représentée par $1. $1 est remplacé par toute valeur entrant dans le message (par exemple 1701).
2 - Vers PureData
Du côté de Pure-Data, deux objets sont nécessaires pour la réception des données. Il n'est pas besoin de se connecter comme on le verra plus loin pour l'envoi de données. L'objet dumpOSC permet de recevoir tout message OSC. Le message qui vient de Max est adressé au port UDP 4000. L'objet dumpOSC prend en paramètre ce numero de port. Le message est marqué par l'adresse /capteurx. Attention, le port doit être déclaré en paramètre pour que l'objet dumpOSC soit reconnu.
L'objet suivant, OSCroute, permet de trier les messages arrivant à l'aide de cette adresse. Sur les 8 premières sorties (sur laquelle sont branchés des nombres dans l'exemple) sortent les valeurs marquées par /capteurx. Sur la sortie de droite passent d'éventuels autres messages marqués différemment.
1 - A partir de PD
L'objet nécessaire pour envoyer des données en OSC est "sendOSC".
Les données sont envoyées avec une adresse spécifique vers un patch Max fonctionnant sur la même machine. Cette idée se traduit avec les paramètres OSC que nous avons présentés plus haut :
Traduction | Paramètres |
données | flot de données connecté sur un message |
adresse spécifique de chaque flot | /machin, /autre, ... |
port Max | 4800 |
même machine | localhost |
Dans l'exemple donné ici, nous envoyons des données de sliders, chacune associée à une adresse /mot. Pour amorcer la communication, il faut cliquer une fois sur le message "connect" associé aux paramètres d'adresse IP et de port. Disconnect ferme la communication.
Les données entrent dans des messages send, eux-mêmes connectés sur sendOSC. Chaque message contient l'adresse et la valeur du capteur, représentée par $1. $1 est remplacé par toute valeur entrant dans le message (par exemple 21).
2 - Vers Max
Du côté de Max, deux objets sont nécessaires pour la réception des données. Il n'est pas besoin de se connecter, l'objet udpreceive permet de recevoir tout message OSC. Le message provenant de PD étant adressé au port UDP 4800, udpreceive prend en paramètre ce numero de port. Les messages entrant sont marqués par les adresses /machin ou /autre.
L'objet suivant, route, permet de trier les messages arrivant à l'aide de cette adresse. Sur la sortie de droite passent d'éventuels autres messages marqués différemment.
Dans les exemples ci-dessus, chaque logiciel utilise un seul port (différent entre les deux logiciels). Plusieurs flots de données sont envoyés en parallèle sur ces ports, c'est-à-dire les données de plusieurs capteurs ou de plusieurs sliders. Le tri se fait par les différentes adresses.
Une autre possibilité est d'ouvrir des ports différents pour par exemple distinguer de grandes familles de données. Les objets de réception sont alors soit paramétrés à la volée par des messages "port", soit posés plusieurs fois, chacun avec son numéro de port spécifique.
Attention à ne pas copier-coller les objets d'envoi mais à les écrire directement avec des ports différents.