Programmation

Les codes et programmes d’Interface-Z

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

Ponts OSC depuis Isadora vers Pure Data

Mis à jour le lundi 26 juin 2017, par zandrine

Pour télécharger un patch, clic droit sur l’image et choisir "Enregistrer la cible sous..." (sinon le fichier .pd s’affiche en texte dans le navigateur). Les patches Isadora ont été faits avec la version 0.9b7 d’Isadora Windows. Si vous ne pouvez l’ouvrir directement (dans une version précédente d’Isadora par exemple), il suffit de le recopier, les objets utilisés étant présents dans toutes les versions d’Isadora.

Télécharger les patches de cette page : clic.

Principe

cf page dédiée.

Peu d’objets sont nécessaires pour communiquer en OSC : un récepteur reçoit les données de l’extérieur du logiciel et un transmetteur 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 le manuel d’Isadora et dans les docs respectives des objets PD. La librairie OSC doit être installée dans PD.


Transmission OSC entre puredata et isadora.
Pour voir l’image agrandie de ces fichiers : ici.

Paramètres OSC nécessaires

1 - Adresse de la machine

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

2 - Numéro de Port OSC

Le numéro de port est arbitrairement donné par l’utilisateur et permet d’identifier le logiciel cible. Plusieurs ports différents sont utilisables avec PD, un seul avec Isadora. Ce ne doit pas être le même.

Dans Isadora, le port est choisi dans le menu Edit / Preferences, onglet Midi/Net, ligne OSC port Number. Dans notre exemple, nous avons gardé le numéro par défaut 1234. Le numéro étant choisi dans les Préférences du logiciel, il n’est plus besoin de le mentionner dans les objets OSC lors de la construction du patch.

Dans PD, les numéros de port sont mentionnés à la fois dans l’objet OSC envoyeur et dans le récepteur. Il n’est pas nécessaire de les déclarer ailleurs dans un menu. L’adresse d’Isadora (1234) est donnée en paramètre de l’objet sendOSC de PD. Le port choisi pour PD (1235, par exemple) est utilisé dans l’objet dumpOSC de PD. Ces deux objets sont détaillés plus loin dans cette page.

3 - Adressage des données

Les données envoyées sont des nombres ou des signaux comme trigger. Il est possible d’envoyer en même temps des messages distincts, adressés à des récepteurs différents. Chaque flot de données est donc envoyé à une adresse OSC précise dans le logiciel cible. Cette adresse OSC est mentionnée (complète ou partielle) à la fois dans les objets envoyeurs et dans les objets récepteurs.

Dans Isadora, 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 au contraire identifie un "channel" par un simple numéro a priori ; implicitement, en fait tous les messages OSC reconnus par Isadora utilisent en plus l’adresse /isadora. Il faut que le transmetteur en face commence chaque message par /isadora/numero_du_channel.

Dans Pure-Data, les adresses correspondantes sont utilisées par le récepteur OSC (/quelquechose) et par l’émetteur sendOSC (/isadora/numero). Les détails sont donnés ci-dessous.

Patch pure-data de réception et d'envoi de données en OSC.
Patch pure-data
de réception et d’envoi de données en OSC.

Transmission de données d’Isadora vers Pure-Data

1 - A partir d’Isadora

L’objet nécessaire pour envoyer des données en OSC est "OSC Transmit", qui se trouve dans le groupe 7 (Control Group).

Les données sont envoyées avec une adresse spécifique vers un patch Pure Data fonctionnant sur la même machine qu’Isadora. Cette idée se traduit avec les paramètres OSC que nous avons présentés plus haut :

Traduction Entrée de l’objet OSC Transmit Paramètres
données value flot de données connecté
adresse spécifique address /quelquechose
Pure-Data port 1235
même machine udp addr localhost
  use type on

Transmission Open sound control vers PD.
Patch Isadora
d’envoi de messages OSC.

Dans l’exemple donné ici, nous utilisons un Envelope Generator pour créer des flots de données. Les paramètres de l’objets sont ceux qui apparaissent par défaut : les valeurs décrivent une courbe définie par un seul segment, qui part de 0 pour atteindre 100 en 1 seconde. Le Pulse Generator permet d’automatiser l’apparition de données à envoyer : toutes les deux secondes (fréquence 0,5 Hz), il envoie un trigger, qui connecté sur le Tirgger du Pulse Generator, fait démarrer la rampe de valeurs. Ces deux objets se trouvent dans le groupe 4 (Generator Group).

Dans les versions récentes, un actor Multitransmit permet d’envoyer plusieurs flots de données sur une même adresse, évitant la duplication de OSC Transmit dans le cas de nombreuses informations à partager.

2 - Vers PureData

Réception des données en PD.

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. L’objet dumpOSC permet de recevoir tout message OSC. Le message qui vient d’Isadora est adressé au port UDP 1235. L’objet dumpOSC prend en paramètre ce numero de port. Le message est marqué par l’adresse /quelquechose. L’objet suivant, OSCroute, permet de trier les messages arrivant à l’aide de cette adresse. Sur la sortie de gauche (sur laquelle est branché un nombre dans l’exemple) sortent les valeurs marquées par /quelquechose. Sur la sortie de droite passent d’éventuels autres messages marqués différemment.

Le Pulse Generator étant automatique, lorsque les deux fichiers sont ouverts en même temps, vous devriez observer l’arrivée régulière de données dans Pure Data.