Accueil Floss Manuals francophone

Puredata

OSC

Il existe de multiples protocoles de communication entre applications, permettant le contrôle et l'échange de données via le réseau. Le protocole Open Sound Control (OSC) est probablement le plus répandu actuellement dans les logiciels de musique et pour les arts numériques, et figure comme un des successeurs du MIDI. Il permet non seulement d'envoyer des chiffres, mais aussi du texte et d'autres types de données.

Avec OSC, il est facile de créer son propre protocole spécialisé et personnalisé pour chaque projet. Cela fait, les différentes applications dialoguent entre elles selon des conventions OSC. Par exemple, plusieurs applications supportent le TUIO (http://www.tuio.org) spécifique aux interfaces tangibles multi-points.

Définition

OSC est un format de messages qui permet d'envoyer des informations entre des synthétiseurs, des applications et des appareils spécialisés. Pour être transmis, ces messages peuvent utiliser les protocoles réseaux TCP ou UDP. L'UDP est le plus utilisé grâce à sa rapidité et sa fluidité. Toutefois, il est possible que certains messages se perdent en cours de route, contrairement au TCP, où les messages sont surveillés afin d'arriver à bon port.

img09.png

Quelques références anglophones : 

Anatomie d'un message OSC

Un message OSC est composé d'un chemin et d'arguments. Le chemin est un texte qui contient des mots séparés par des barres obliques suivis par une liste d'arguments de différents types. Parmi ces types, on trouve nombres naturels, nombres réels, texte et couleur. Les adresses sont composées de mots séparés par des barres obliques et créent des hiérarchies de nœuds comme dans les branches d'un arbre ou encore le système de fichiers d'un ordinateur.

Exemple de message OSC : /message/mon_message ,ifs 4 98.456 bla

On peut noter la présence d'une série de lettres précédées d'une virgule. Ces lettres se trouvent entre le chemin et les arguments. Elles indiquent le type des arguments du message comme ",ifs". Les types des arguments sont : int (nombre entier), float (nombre réel) et string (texte).

Pure Data et OSC

Plusieurs extensions pour Pure Data offrent des outils permettant de communiquer via OSC. La librairie "mrpeach" réalisée par Martin Peach, représentée ci-dessous, est une des références.

Voir les patches d'exemples dans le menu Help > Browser > 5.reference/mrpeach

Ci-dessous, une première partie d'un patch d'exemple (téléchargez ici) :

OSC_1.png 

Dans cet exemple, nous demandons à Pure Data d'établir une connexion locale ou localhost, c'est-à-dire « avec l'ordinateur lui-même ». L'adresse Internet 127.0.0.1 représente toujours l'ordinateur sur lequel on travaille. À partir du moment où la connexion est établie, la petite croix dans l'interrupteur sera cochée. Nous utilisons ici le protocole réseau UDP, qui est le choix par défaut. Le chiffre qui suit correspond au numéro du port. Dès lors, nous pouvons envoyer les données par l'intermédiaire du message [send /blibli < ou [send message 2 3 4<. 

Pour recevoir ces messages, il nous faut un second patch :

OSC_2.png

Ici, on reçoit les messages OSC envoyés par le premier patch. Ils vont s'afficher dans la console de Pure Data, si on ouvre les robinets [spigot] placés avant les objets [print].

Remarque :

Il est possible que certaines librairies ne se chargent pas correctement dans Pd-extended. Dans ce cas, l'objet apparaîtra comme inexistant et sera représenté en pointillés rouges. Dans la plupart des cas, on peut régler ce problème en ajoutant simplement le nom de la librairie appartenant à la librairie. Dans notre cas représenté plus haut, la mention "mrpeach/" avant le nom des objets spécifie son emplacement dans la librairie.