Programmation

Les codes et programmes d’Interface-Z

Accueil > Outils > Ponts OSC entre logiciels > Ponts OSC depuis Isadora vers Usine

Ponts OSC depuis Isadora vers Usine

Mis à jour le jeudi 6 juillet 2017, par zandrine

Pour télécharger un patch, clic droit sur l’image et choisir "Enregistrer la cible sous...". Les patches Isadora ont été faits avec la version 13fc14 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, la plupart des 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 modules Usine.

L’OSC doit être activé dans le menu Setup / OSC Setup d’Usine.

Communication réseau entre Usine et Isadora.

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. Chaque logiciel utilise un seul port. Les deux ports doivent être différents.

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 actors de réception OSC Listener lors de la construction du patch. L’adresse d’Usine est utilisée dans l’actor OSC Transmit ou Multi Transmit.

Dans Usine, le port se choisit dans le menu Setup / OSC Setup. Par défaut le Local Port est 8000. Il n’est pas nécessaire de déclarer ce port dans les modules de réception OSC receive, il est commun à tous. L’adresse d’Isadora (1234) est donnée en paramètre du module OSC send.

OSC Setup d'Usine.
Image agrandie

3 - Adressage des données

Les données envoyées sont des nombres. 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 "/quelquechose/" (par exemple /usine/, cf plus loin) . Le récepteur au contraire identifie un "channel" par un simple numéro ; implicitement, en fait tous les messages OSC reconnus par Isadora utilisent en plus l’adresse /isadora. Il faut obligatoirement que le transmetteur en face commence chaque message par /isadora/numero_du_channel.

Dans Usine, les adresses correspondantes sont utilisées par le récepteur OSC receiver (/usine/) et par l’émetteur OSC Send (/isadora/numero). Les détails sont donnés ci-dessous. Il est possible d’utiliser plusieurs adresses différentes, avec des mots différents dans Usine. Attention cependant au "/" : le module OSC receiver comprend un nom entouré de deux "/", il ne faut pas oublier le "/" final, ni dans Usine, ni dans Isadora.

Workspace Usine.
Workspace isa-usine.wkp

Transmission de données d’Isadora vers Usine

Video d’exemple

1 - A partir d’Isadora

L’objet nécessaire pour envoyer des données en OSC est "OSC Transmit", pour un seul flux de données, ou OSC Multi Transmit pour plusieurs. Ils se trouve dans le groupe 7 (Control Group) ou le groupe Communication des versions récentes.

Les données sont envoyées avec une adresse spécifique vers un patch Usine 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
même machine udp addr localhost
Usine port 8000
adresse spécifique address /usine/
données value flot de données connecté
  use type on
envoi transmit trigger

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

Dans l’exemple donné ici, nous utilisons un Wave Generator pour créer un flot de données. Les valeurs fluctuent entre 0 et 100.

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. Choisir le nombre de flux différents dans l’entrée inputs (4 ici).

Il faut activer par un trigger l’entrée transmit à chaque fois que l’on veut envoyer une donnée à l’extérieur. Ce peut être à chaque donnée, ou bien ponctuellement au cours du temps, selon les besoins.

2 - Vers Usine

Réception des données en PD.
Patch OSC_from_Isadora

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 module est équipé de 4 data out, correspondant aux 4 values de l’actor OSC MUlti Transmit d’Isadora.

Le message qui vient d’Isadora est adressé au port UDP 8000. Il est marqué par l’adresse /usine, correspondant sur le module Usine. Le tri des différents messages se fait directement dans le module OSC receive vers les 4 sorties data, ici liées à des faders.

Le Wave Generator étant automatique, 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.

Transmission des données d’Usine vers Isadora

Video d’exemple

1 - Connexion et envoi des informations depuis Usine

Le module d’envoi est OSC send. Il peut être configuré pour envoyer de 1 à 64 flux différents. Dans notre cas l’option choisie est 1.

Il faut d’abord activer l’OSC dans OSC Setup avant de pouvoir envoyer des informations.

Il faut ensuite 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.
Traduction Entrée de l’objet OSC Transmit Paramètres
même machine addr 127.0.0.1
Isadora port 1234
adresse spécifique address /isadora/num_channel
données data 1 flot de données connecté
envoi send activé ou ponctuel

Dans l’exemple, un module LFO envoie des valeurs en permanence et l’entrée send est activée en continu. L’entrée broadcast est désactivée. Il est obligatoire d’employer "/isadora" avant de préciser l’adresse OSC par "/nombre".

Envoi d'informations vers Isadora en OSC.

2 - Réception des données dans Isadora

L’objet à utiliser est OSC Listener, qui se trouve dans l’ancien groupe 7 (Control Group) ou maintenant Communications. Il est inutile de préciser l’adresse UDP 1234 car elle est déjà configurée dans les Preferences. Il n’est pas non plus nécessaire de rappeler le /isadora qui marque tout message OSC destiné à ce logiciel. Il faut en revanche entrer dans le channel le numéro choisi pour identifier le message OSC et permettre de le séparer d’autres flux de données envoyés à Isadora. Ici c’est 1, correspondant au /1 de l’OSC send "/isadora/1" dans Usine.

Transmission Open sound control vers PD.
Patch Isadora
d’envoi et de réception de messages OSC.

Echange de plusieurs flots de données d’un logiciel à l’autre

Dans l’exemple précédent, nous avons expliqué comment envoyer, un flux de données d’Usine vers Isadora et plusieurs d’Isadora vers usine.

Attention, cet exemple a été fait dans une version d’Isadora récente qui intègre l’actor OSC Multi Transmit. Dans les versions précédentes, pour envoyer plusieurs flux depuis Isadora, il faut utiliser plusieurs actors OSC Transmit.

1 - Isadora -> Usine

Plusieurs techniques de transmissions multiples.
Patch Isadora
- Envois et réceptions multiples.

Les adresses et ports UDP sont localhost (127.0.0.1), 1234 pour Isadora, 8000 pour Usine. Ce nouvel exemple reprend le précédent et y ajoute plusieurs flux dans les deux sens. Tous circulent indépendamment les uns des autres.

Plusieurs techniques de transmissions multiples.
Patch Usine
- Envois et réceptions multiples.

D’Isadora vers Usine, les messages sont différenciés soit par les diverses entrées du Multi Transmit, soit par des adresses nommées en toutes lettres : /usine/, /amporphis/ et /1000lakes/ sur les OSC Transmit simples. Attention à ne pas oublier le "/" final dans e nom de l’adresse.

Dans Usine, le tri des flux se fait par des modules OSC receive différents, configurés sur ces adresses précises. Le choix du nombre de sorties de l’OSC receive se fait en fonction de l’actor Isadora utilisé : comme dans le premier exemple, un OSC multi Transmit est directement associé à un OSC receive à 4 sorties. Les OSC Transmit simples sont associés à des OSC receive à une seule sortie.

OSC receive à 1 et 4 sorties.
Patch OSC_in_plusieurs

Il est possible d’employer aussi plusieurs Multi Transmit avec des adresses /quelquechose différentes. Cet objet envoie toutes les données des inputs dans une seule liste. Le nombre de données différentes est paramétré dans inputs. Il faut actionner l’entrée Transmit chaque fois que l’on veut expédier le message, par exemple quand une donnée arrive, ou bien régulièrement au cours du temps.

Cette action n’est pas nécessaire avec l’actor OSC Transmit, qui envoie un message réseau dès que sa valeur varie.

2 - Usine -> Isadora

Envoi de données réseau UDP depuis Usine vers Isadora.
Patch OSC_out_plusieurs.pat

Dans cet exemple, le mode track est activé, ce qui permet d’envoyer des données en réseau depuis plusieurs patches. En grid, seul le patch actif permet d’envoyer des données. Dans ce cas, pour envoyer plusieurs flux OSC en même temps, il faut que les modules OSC send soient dans le même patch.

Le tri se fait par les "channels" 1, 2 et 3, qui apparaissent dans les adresses des modules OSC send. Il faut un module OSC send par flux, configuré sur une seule entrée data.. Comme auparavant, il est obligatoire d’employer /isadora avant ces /1, /2 et /3.

Dans Isadora, les données apparaissent tout simplement sur des actors OSC listener configurés en channel 1, 2 ou 3. Le type de nombre (float ou integer) envoyé se choisit dans l’entrée type de l’OSC send.