ATELIER – initiation à Open Sound Control

UTILISATION DU PROTOCOLE OSC ( Open Sound Control )

– COMMENTAIRES :

Je ne suis pas développeur et j’ai procédé à tâtons, n’hésitez pas donc m’envoyer vos remarques, conseils, etc… Ici l’idée est de remplacer la synchro MIDI par l’utlisation du protocole de transport OSC Pourquoi ?

1/ ces applications sont réparties sur plusieurs ordi 2/ on voulait être indépendant de câbles réseau donc le wifi s’est imposé. 3/ synchro, etc ..

– OBJECTIF :

Comment déclencher des applications multimédia installées sur deux ordinateurs ( ordi1 et ordi2 ) à partir d’un troisième ordi de control.

– PRINCIPE :

Sur l’ordi de control, on utilise FLOSC : c’est-à-dire une animation Flash et un serveur java. Le serveur java ( ou passerelle ) a pour fonction de relayer les messages OSC vers les ordinateurs distants. L’animation flash synchroFLOSC.swf déclenche simultanément les applications ( Processing, Ableton Live, Modul8, Pure data ,… ) des ordi distants.

– CONFIG :

img1 - 12.7 ko

img1


> Docs :

- F- Fichiers de l’atelier Utilisation du protocole OSC 1 :

.fla : télécharger le fichier fla

.swf : télécharger le fichier swf

.pde, : télécharger le fichier processing

.pd : télécharger le fichier PureData

FLOSC : télécharger FLOSC


– A – LE SERVEUR JAVA :Le serveur java relaie les paquets OSC entre l’animation flash et les applications .A partir des fichiers FLOSC :- Décompresser le fichiers flosc-0.3.1.tar.gz
- Installer Java runtime environment version 1.1 ou plus : > lien : http://www.java.com/fr/download/manual.jsp
- On lance le serveur java ainsi :java Gateway oscPort flashPort- oscPort : le port de réception des paquets OSC ( UDP )
- flashPort : le port cd connection à l’animation flash (TCP )c’est-à-dire sous OSX par exemple :
- on ouvre un terminal ( Applications/Utilitaires )
- on va dans le répretoire flosc : cd /Volumes/atelierP/PD/flosc
- puis : java Gateway 50000 3000

Voici le message qui apparait normalement :

img2 - 21.2 ko

img2


> Docs :- Q- Installer un serveur java pour Flosc ? : http://www.benchun.net/flosc/- Q- Télécharger un serveur multiUser pour Client Flash ? : http://www.oregano-server.org



- B – L’ANIMATION FLASH
B 1 – CONNEXION au serveur java- lancement de l’animation flash synchro.swf :
- on indique l’adresse IP de l’ordi de control et le port du serveur java en attente d’une connexion : ici 127.0.0.1 et 3000
- on clique sur connect pour … se connecter :img3 - 11.8 koimg3- en regardant le fichier source (.fla ), on peut détailler l’actionscript afin de mieux cerner ce qui se passe :La classe XMLSocket qui est utilisée est assez simple d’utilisation :

function connect () // Constructeur : Création d’une occurence de la classe XMLSocket mySocket = new XMLSocket() ;

// Gestionnaire d’événement : onConnect garantit la réussite de la connexion par la vérification du paramètre success mySocket.onConnect = handleConnect ; mySocket.onClose = handleClose ; // Gestionnaire d’événement : onConnect vérifie la fin de la connexion. mySocket.onXML = handleIncoming ;instanceName;

// On établit la connexion entre vous (le client flash)et le serveur java sur le port demandé ( renvoie true si ça marche ) if ( !mySocket.connect(IPaddress, port)) gotoAndStop(« connectionFailed ») ;


> Docs :- Q- Qu’est-ce que la Communication par Socket ? : http://www.commentcamarche.net/sockets/sockcomm.php3
- Q- Implémentation XML dans flash MX ? : http://www.flashxpress.net/fxp//index.php ?f_dynamique&r_flash/f_dynamique/dy_xml/xmlsocket_intro


B 2 – Création et envoi des PAQUETS OSC AU SERVEUR :- Dans l’animation flash, on spécifie pour chaque ordi de destination : l’adresses IP le port le message le channel la note ( numéro de touche ) la velocitéCes informations correspondent à une reformulation d’un message MIDI sous forme de paquet OSC.


> Docs :- Q- Qu’est ce qu’un message Midi ? : http://www.arpegemusique.com/manuel30/FR400.htm


- Puis on clique sur GO pour envoyer les DATA grâce à la fonction SendALL :Construction de 2 arbres XML avec les propriétés des paquets OSC et envoi des données avec la fonction send() ;mySocket.send(xmlOut) ; mySocket2.send(xmlOut2) ;


> Docs :- Q- Comment est composé un paquet OSC ? : http://cnmat.berkeley.edu/OpenSoundControl/OSC-spec.html


- C’est parti : en cliquant sur GO l’anim flash prend les données définies :sendOSCAll(_root.msgName_ordi1, _root.msgArg1_ordi1, _root.msgArg2_ordi1, _root.msgArg3_ordi1, destAddr_ordi1, destPort_ordi1,_root.msgName_ordi2, _root.msgArg1_ordi2, _root.msgArg2_ordi2, _root.msgArg3_ordi2, destAddr_ordi2, destPort_ordi2) ;NB : on peut essayer d’autres méthodes, comme définir une fonction sendOSC avec un seul message à envoyer et que l’on répète deux fois du genre : sendOSCAll(_root.msgName_ordi1, _root.msgArg1_ordi1, _root.msgArg2_ordi1, _root.msgArg3_ordi1, destAddr_ordi1, destPort_ordi1) sendOSCAll(_root.msgName_ordi2, _root.msgArg1_ordi2, _root.msgArg2_ordi2, _root.msgArg3_ordi2, destAddr_ordi2, destPort_ordi2) via le même socket XML.C – Réception du message par les applications :Maintenant on va paramétrer sur nos deux ordi ( 1 et 2 ) des applications recevant le message.C 1 : soit on utilise des softs avec l’OSC déjà implété :avec Processing sur ordi 1 :

- Lancer Processing et ouvrir le fichier OSCsimple.pde
- dans l’anim Flash,on spécifie ad IP, port (ici 50000 par exemple ), etc …..
- on clique sur GO.


> Docs :- Q- Implémentation de l’OSC dans Processing ? : par andreas schlegel : http://www.sojamo.de/iv/index.php ?n=11
- F- Fichier Processing : http://www.zoneblanche.org/atelier/julien/dioramix/OSCsimple.pde


avec Pure Data sur ordi 2 :- lancer PD avec la librairie OSC ( -lib OSC )
- Voici le patch minimal pour recevoir le paquet OSC :img4 - 25.1 koimg4- dans l’anim Flash,on spécifie ad IP, port (ici 200 par exemple ), etc …..img5 - 16.5 koimg5


> Docs : - F- Le patch minimal OSC et PD : http://www.zoneblanche.org/atelier/julien/dioramix/ReceptOSC.pd
- Q- Implémentation de l’OSC dans Pure Data ? : http://cvs.sourceforge.net/viewcvs.py/pure-data/externals/OSCx/


C 2 : soit on utilise des softs qui ne gère actuellement que le MIDI ( Live Ableton par exemple est en cours d’implémentation de l’OSC ) Il faut donc convertir le message OSC en MIDI : on peut utiliser OCCAM sur OS X, uniquement :avec Live Ableton sur ordi 1 :- configurer LIVE pour utiliser occam comme interface de control midi :img6 - 43.6 koimg6- faire un MIDI LEARN et appuyer sur la touche correspondante.- ALLER dans l’anim flash, rentrer l’adresse IP de l’ordi sur lequel LIVE EST LANCÉ.
- la note ( touche ) paramétré précédemment,
- mettre comme message : /osc/midi/out/noteOn

avec Modul8 sur ordi 2 :

- idem : – configurer Modul8 pour utiliser occam comme interface de control midi : juste faire ReScan MIDI Devices
- MIDI LEARN etc …

et hop, l’audio et la video sont synchro


> Docs : - Q-Correspondance OSC-Midi avec Occam ? : http://www.mat.ucsb.edu/ c.ramakr/illposed/occam.html


– REF et DOCS :- Q- Installer un serveur java pour Flosc ? : http://www.benchun.net/flosc/- Q- Télécharger un serveur multiUser pour Client Flash ? : http://www.oregano-server.org- Q- Qu’est-ce que la Communication par Socket ? : http://www.commentcamarche.net/sockets/sockcomm.php3- Q- Implémentation XML dans flash MX ? : http://www.flashxpress.net/fxp//index.php ?f_dynamique&r_flash/f_dynamique/dy_xml/xmlsocket_intro- Q- Implémentation de l’OSC dans Pure Data ? :- Q- Qu’est ce qu’un message Midi ? : http://www.arpegemusique.com/manuel30/FR400.htm#J2

- Q- Correspondance OSC-Midi avec Occam ? :

- Q- Implémentation de l’OSC dans Processing ? : par andreas schlegel : http://www.sojamo.de/iv/index.php ?n=11

- F- Le patch minimal OSC et PD :

- F- Files_FLOSC :

http://www.zoneblanche.org/atelier/julien/flosc/


REF : FLOSC – Flash OpenSound Control Ben Chun, 2002 Credits : design and structure based on MoockComm by Colin Moock. server based on CommServer by Derek Clayton.

Atelier OSC
Open SOUND Control
Related Posts
1 Comment
  1. PiNG » Blog Archive » Atelier OSC | Festival Vision’R à PARIS

    […] ( on essaira ensuite de mettre à jour le vieil article expliquant comment utiliser l’OSC http://www.pingbase.net/pedagogie/atelier-initiation-a-open-sound-control ) […]

  2. Comments are closed.

Categories