Programmation

Les codes et programmes d’Interface-Z

Accueil > Outils > Ponts OSC entre logiciels > Ponts OSC depuis Pure Data

Ponts OSC depuis Pure Data

Principe

Pourquoi ?

La transmission d’informations entre logiciels en utilisant le protocole OSC (Open Sound Control) est un moyen efficace d’utiliser les avantages de plusieurs logiciels temps réel en même temps.

Par exemple, la simplicité d’Isadora pour la video temps réel peut être associée à la performance de Max pour la gestion de matériel électronique et à l’ergonomie d’Usine pour la manipulation de sons.

Le protocole OSC est un protocole réseau UDP. Il est très rapide et ne provoque pas de latence perceptible lors du passage entre deux logiciels. Dans les exemples qui suivent, la communication se fait entre deux logiciels installés sur la même machine. Le même principe de transmission de données peut bien sûr également s’appliquer entre différentes machines.

Mise en pratique

Peu d’objets sont nécessaires pour communiquer en OSC : un récepteur (receiver, listener) reçoit les données de l’extérieur du logiciel et/ou un transmetteur (send, transmit) en envoie d’autres. Chacun de ces objets prend en compte des paramètres de numéro de port, d’identification de machine sur le réseau et de tri des données. Si vous souhaitez plus de renseignements sur les paramètres OSC, vous pouvez vous reporter aux explications données dans les docs respectives des objets. Dans certains cas, une librairie OSC externe doit être installée


Paramètres OSC nécessaires

1 - Adresse de la machine

Un seul ordinateur

Dans ces pages, nous utilisons souvent deux logiciels installés sur une même machine. L’adresse réseau est donc "localhost". Quel que soit le logiciel, ce paramètre est utilisé dans l’objet OSC qui envoie les données vers l’extérieur. Il est nécessaire pour préciser la destination du message. Le récepteur n’en a parfois pas besoin, il écoute ce qui arrive de partout.

Dans toutes les machines, l’adresse localhost est 127.0.0.1 . Selon les logiciels, il faut ou non explicitement taper cette adresse. Elle est toujours valable, alors que le mot "localhost" peut ne pas être reconnu.

Plusieurs ordinateurs

Si la communication se fait entre deux ordinateurs (soit pour relier le même logiciel soit pour relier deux logiciels différents), il faut identifier l’adresse IP de l’ordinateur cible (dans les paramètres réseau du système) et la donner comme paramètre à l’objet OSC qui envoie les données vers l’extérieur.

2 - Numéro de Port OSC

Le numéro de port est arbitrairement donné par l’utilisateur et permet d’identifier le logiciel cible. Tous les logiciels peuvent envoyer des messages OSC vers plusieurs ports différents. Pour la réception, ce n’est pas forcément le cas : certains logiciels permettent de recevoir sur plusieurs ports (Max, PD), d’autres sur un seul port défini dans les préférences générales (Usine, Isadora).

Dans Max comme dans PD,

les numéros de port sont mentionnés à la fois dans les objets OSC transmetteur (du logiciel qui envoie, qui peut être autre) et récepteur. Ils n’est pas nécessaire de les déclarer ailleurs dans un menu. Etant donné la possibilité de manipuler plusieurs ports en entrée, il est logique de devoir les déclarer dans les objets de réception.

Dans Isadora ou Usine,

le port OSC du logiciel est choisi dans les préférences de configuration du logiciel.

  • Pour Isadora, il s’agit du menu Edit / Preferences, onglet Midi/Net, ligne OSC port Number.
    Par défaut c’est 1234.
  • Pour Usine, on le trouve dans le menu Setup / OSC Setup, clic Monitor Localhost.
    Le port local par défaut est 8000.

3 - Adressage des données

Quelles informations envoyer ?

Les données envoyées sont des nombres (entiers ou à virgule) ou des signaux comme trigger et bang. Il est possible d’envoyer en même temps des messages distincts, adressés à des récepteurs différents. Par exemple, les données de trois capteurs différents ne doivent pas se mélanger, chaque flot de données est donc envoyé à une adresse OSC précise dans le logiciel cible. Cette adresse OSC est mentionnée à la fois dans les objets envoyeurs et dans les objets récepteurs.

Adresse, en-tête de message

L’adresse est plus ou moins formalisée selon les logiciels. Il s’agit d’un mot précédé d’un /.

Par exemple en Max, Usine ou PD, le transmetteur envoie ses données sur une adresse OSC identifiée par un "/" suivi d’un nom en toutes lettres (ex : /quelquechose). Le récepteur identifie une adresse de la même manière (ex : /autrechose). Dans Usine cette adresse doit être déclarée avec un "/" final (ex : /truc/).

Dans Isadora, le transmetteur peut émettre vers n’importe quelle adresse (ex : /chose) mais le récepteur ne reconnaît que les messages adressés à /isadora suivis d’un numéro (/isadora/1).

Selon les logiciels, la transmission de plusieurs flux de données en même temps nécessite un seul objet ou plusieurs.