OSC
L'OSC (Open Sound Control) est un protocole de transmission de données en temps réel entre plusieurs logiciels. La communication entre ces logiciels assure l'envoi et la réception des flux de données par une connexion réseau en utilisant le protocole UDP (User Datagram Protocol), qui est la couche de transport du protocole TCP/IP (Transmission Control Protocol, Internet Protocol).
L'OSC se caractérise par sa rapidité et sa flexibilité. Il ne provoque aucune latence perceptible lors de l'envoi ou de la réception des données.
Les logiciels mis en communication peuvent être installés sur la même machine ou sur des machines distinctes. Ainsi, D::Light peut être piloté par une autre application installée sur le même ordinateur ou bien être commandé à distance depuis depuis un iPhone ou un autre ordinateur par connection filaire, WIFI ou Internet.
En utilisant le protocole OSC, D::Light peut aussi lui-même commander d'autres machines par le biais d'une application comme Pure Data ou Max/Msp: un pas de séquence peut par exemple déclencher les pistes-son d'un player et des submasters peuvent être affectés à de multiples fonctions de déclenchement (play, pause, controle d'un fade son, etc.).
Communication OSC avec D::Light
La transmission des données vers D::Light doit impérativement spécifier l'adresse de la machine (localhost ou adresse IP) et le numéro du port.
Par défaut, le port assigné à D::Light pour l'envoi des messages est 7000. La réception des données provenant de D::Light est assignée au port 7001.
Le statut et le port d'envoi OSC de D::Light doivent également être activés. Lorsqu'on enregistre une conduite, si la communication OSC de D::Light est activée, l'activation reste mémorisée dans la conduite.
La configuration et l'activation de l'OSC est accessible par le menu Display puis SETUP.
Bibliothèque OSC de D::Light
Dans les tableaux suivants, le signe # correspond toujours à un numéro (de circuit, de pas de séquence, de submaster). Lorsqu'aucune valeur n'est mentionnée, c'est que seule la syntaxe de l'adresse suffit. Lorsque la syntaxe de réception est absente, c'est qu'elle est inexistante (inutile ou pas encore implémentée).
Syntaxe OSC de la version 4 [2018-02-01]
devices can also be controlled by OSC messaging process. for example, to control the RED parameter of a device :
Commande | Envoi vers D::Light | Réception depuis D::Light | ||
---|---|---|---|---|
Syntaxe | Valeur | Syntaxe | Valeur | |
Device (integer mode) | /device/#(device number)/COLOUR/RED | 0-65535 | /device/#(device number)/COLOUR/RED | 0-65535 |
Device (float mode) | /devicephase/#(device number)/COLOUR/RED | 0.0-1.0 | /device/#(device number)/COLOUR/RED | 0-65535 |
Commande | Envoi vers D::Light | Réception depuis D::Light | ||
---|---|---|---|---|
Syntaxe | Valeur | Syntaxe | Valeur | |
Go | /seq/go | 1 | /seq | /go # |
/X1 # | ||||
/X2 # | ||||
/X1ActiveCue # | ||||
/X2ActiveCue # | ||||
GoBack | /seq/goback | 1 | /seq | /goback # |
/X1 # | ||||
/X2 # | ||||
Pause | /seq/pause | 1 | /seq | /pause # |
X1 (mode scène) | /seq/X1 | # | /seq | /X1 # |
/X2 # | ||||
X2 (mode prépa) | /seq/X2 | # | /seq | /X1 # |
/X2 # | ||||
Update | /pad/update | 255-255 | ||
Fader X1 | /seq/fadeX1 | 0-255 | /fadeX1 | # 0-255 |
Fader X2 | /seq/fadeX2 | 0-255 | /fadeX2 | # 0-255 |
Goto Step # | /seq/goto | # | ||
Load & Goto CUE | /seq/X2LoadAndFireCue | # | ||
Goto ID # | /seq/ID_goto | # | ||
Load & Goto ID | /seq/X2LoadAndFireID | # | ||
Kill Submasters | /sub/kill | # | ||
Niveau du submaster # | /sub/#(subNumber)/phase | 0.0-1.0(float value) | /sub/#(subNumber)/level | 0-255 |
Niveau du submaster # | /sub/#(subNumber)/level | 0-255(value) | /sub/#(subNumber)/level | 0-255 |
Submaster Flash # | /sub/#(subNumber)/flash | 0-255(value) | /sub/#(subNumber)/level | 0-255 |
Submaster Time # | /sub/#(subNumber)/flash | 0-255(value) | /sub/#(subNumber)/level | 0-255 |
Niveau du circuit # | /circ/#(circNumber)/level | 0-255(value) | /circ/#(circNumber)/level | 0-255 |
Niveau Grandmaster | /grandmaster | 0-255 | /grandmaster | 0-255 |
Sélecteur Time/Flash/Inhib du sub # | /sub/#(subNumber)/mode | 1-2-3 | ||
Solo (sub # prioritaire) | /sub/#(subNumber)/type | 0-1 | ||
Pavé numérique | /pad/1...9 | 1 | pad/saisieText | # |
Point du pavé numérique | /pad/dot | 1 | ||
CHANNEL | /pad/channel | 1 | ||
LEVEL | /pad/level | 1 | ||
FULL | /pad/ff | 1 | ||
THRU | /pad/thru | 1 | ||
CLEAR | /pad/clear | 1 | ||
Freeze (gêle le DMX) (Toggle mode) | /pad/freeze | 1 | ||
Freeze (gêle le DMX) (Set mode) | /force/freeze | 0-1 | ||
Blackout (Toggle mode) | /pad/blackout | 1 | ||
Blackout (Set mode) | /force/blackout | 0-1 | ||
+ | /pad/plus | 1 | ||
- | /pad/moins | 1 | ||
+% | /pad/pluspourcent | 1 | ||
-% | /pad/moinspourcent | 1 | ||
ALL | /pad/all | 1 | ||
Validation (ENTER) | /pad/enter | 1 | ||
Sélection active à zéro | /pad/clearclear | |||
Clone | /pad/clone | |||
Inv | /pad/inv | |||
Sélecteur du mode Scène | /pad/scene | |||
Sélecteur du mode Scène | /pad/X1 | |||
Sélecteur du mode Prépa | /pad/prepa | |||
Sélecteur du mode Prépa | /pad/X2 | |||
Open PATCH window | /patch/launch | |||
Checking level (patch) | /patch/levelRequest | 0-255 | /patch/displayLevel | # |
Pad Digits (patch) | /patch/# | 1 | ||
Pad Dot (patch) | /patch/dot | 1 | ||
Inserted Digits (patch) | /patch/input | # | ||
Pad Clear (patch) | /patch/clear | 1 | ||
Pad Thru (patch) | /patch/thru | 1 | ||
Pad Next (patch) | /patch/next | 1 | ||
Pad Prev (patch) | /patch/prev | 1 | ||
Display Channel (patch) | /patch/displayChannel | # | ||
Display Patched Dimmer (patch) | /patch/displayDimmer | # | ||
Switch DIM-CHAN (patch) | /patch/switch | 0-1 | /patch/displayActiveSwitch | DIM-CH |
Active Channel (patch) | /patch/displayActiveChannel | # | ||
Active Dimmer (patch) | /patch/displayActiveDimmer | # | ||
Active Thru Dimmer (patch) | /patch/displayActiveThru | # | ||
Add Patch | /patch/plus | 1 | ||
Remove Patch | /patch/moins | 1 | ||
Test Channel (patch) | /patch/testChannel | 0-1 | /patch/testChannel | # |
Test Dimmer (patch) | /patch/testDimmer | 0-1 | /patch/testDimmer | # |
load a palette on selected device | /pad/palette | # |
} Communication OSC entre D::Light et Pure DataL'envoi des données vers D::LightUn seul objet est nécessaire :
La réception des données provenant de D::LightDeux objets sont nécessaires :
Les objets OSC de Martin PeachL'informaticien canadien Martin Peach a implémenté depuis 2008 de nouveaux objets qui sont intégrés à l'une des bibliothèques associées aux dernières versions de Pd-extended. Outre leur meilleure fiabilité par rapport aux objets sendOSC, dumpOSC, OSCroute, ils permettent de créer des messages plus complexes avec une syntaxe simplifiée et, surtout, l'envoi, la réception et le tri de paquets pouvant comporter des milliers d'informations simultanées (et cela, sans le moindre bug). (Note: le patch ci-dessous est écrit pour la version 3.0.3 de D::Light. Voir le patch écrit pour les versions antérieures.)
On peut accéder à la documentation dans Pd par help/browser:
Sous linux:
Le tri des données OSC provenant de D::LightD::Light renvoie les données sous la forme de nombres (valeurs) ou de listes qui peuvent comporter des nombres mais aussi des symboles. Ces données doivent être triées par Pd afin d'être exploitées séparément. de plus, la version 3.0.3 utilise un bundle qui envoie des paquets de données multiples qui doivent être séparées.
(Note: les patches ci-dessous sont écrits pour la version 3.0.3 de D::Light. Voir le patch écrit pour les versions antérieures.) Routage "classique" des données : Routage "économique" des données :
Le dispatch des données OSC /sub et /circ provenant de D::LightDans le routage "économique" présenté ci-dessus, toutes les données envoyées par D::Light concernant les submasters et les circuits sont concaténées en deux objets nombre: l'un pour le numéro de sub (ou de circuit), l'autre pour la valeur du niveau. Pour qu'elles soient lisibles et exploitables il faut effectuer leur séparation et leur répartition.
Dernière opération: la création des messages d'envoi et de réception.
Pour tester, on peut créer dans D::Light 10 groupes affectés aux submasters 1 à 10 et envoyer le message suivant: On peut éventuellement sophistiquer l'ensemble en établissant au préalable une conversion des niveaux 0-255 en 0-100, puis transformer ces valeurs numériques en symboles, grâce à l'objet ftos (float to symbol) afin d'ajouter, par un sélecteur, un message qui remplace la valeur 100 en FF.
Communication OSC entre D::Light et le terminalIl est possible d'envoyer des messages OSC en ligne de commande via le terminal, avec oscsend qui fonctionne grace à la librairie Liblo Ces outils sont disponibles dans la plupart des repos officiels. Vous pouvez les installer en utilisant apt, pacman, brew, etc.
oscsend localhost 7000 /seq/go f 1.0
oscsend localhost 7000 seq/X2LoadAndFireID f 12
Voir aussiTélécommande OSCPage concernant l'utilisation d'un smartphone ou d'une tablette comme télécommande pour D::Light en OSC : Télécommande OSC Liens externes
Retourner à la page Les Menus Retourner à la page Accueil |