« OSC » : différence entre les versions

De wiki
Aller à la navigation Aller à la recherche
 
(44 versions intermédiaires par 5 utilisateurs non affichées)
Ligne 8 : Ligne 8 :
__TOC__
__TOC__


== Communication OSC avec D::Light ==
=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.
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.
Ligne 16 : Ligne 16 :
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.
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]].


=== Activation OSC dans la version 3.0.3 ===
Dans cette nouvelle version, l'activation OSC est accessible par le menu Display puis [[SETUP]].


=Bibliothèque OSC de D::Light=


=== Activation OSC dans les versions antérieures à 3.0.3 ===
''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)''.
Dans le menu ''OSC'', la fenêtre ''OSC Control'' permet l'activation de l'envoi et de la réception OSC en cochant les cases respectives.


[[Fichier:OSCcontrol302.png]]




== Bibliothèque OSC de D::Light ==
=== Syntaxe OSC de la version 4 [2018-02-01]===


''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)''.
devices can also be controlled by OSC messaging process. for example, to control the RED parameter of a device :
 
 
=== Syntaxe OSC de la version 3.0.2 ===


{| class="wikitable"
{| class="wikitable"
Ligne 44 : Ligne 39 :
!scope="col" style="background:#E0E0FF;"| Syntaxe
!scope="col" style="background:#E0E0FF;"| Syntaxe
!scope="col" width="8%" style="background:#E0E0FF;"| Valeur
!scope="col" width="8%" style="background:#E0E0FF;"| Valeur
|-
| Niveau du circuit # || /circ/# || 0-255 || /circ || /# 0-255
|- style="background:#F2F2F2;"
| Niveau Grandmaster || /grandmaster || 0-255 || /grandmaster || 0-255
|-
| Pas de séquence || /seq || # || /seq || #
|- style="background:#F2F2F2;"
| Go || /seq/go || || /go || #
|-
| GoBack || /seq/goback || || /goback || #
|- style="background:#F2F2F2;"
| Pause || /seq/pause || || /pause || #
|-
| Fader X1 || /seq/xfade_x1 || 0-255 || /XfadeX1 || # 255-0
|- style="background:#F2F2F2;"
| Fader X2 || /seq/xfade_x2 || 0-255 || /XfadeX2 || # 0-255
|-
| Niveau du submaster # || /sub/#/level || 0-255 || /sub || /# 0-255
|- style="background:#F2F2F2;"
| Submaster # Time ou Flash || /sub/#/flash || 0-255 || /sub || /# 0-255
|-
| Sélecteur Time/Flash du sub # || /sub/#/mode || 0-1 || ||
|- style="background:#F2F2F2;"
| Solo (sub # prioritaire) || /sub/#/type || 0-1 || ||
|-
| Pavé numérique || /pad/1...9 || 1 || ||
|- style="background:#F2F2F2;"
| Point du pavé numérique || /pad/dot || 1 || ||
|-
| CHANNEL || /pad/channel || 1 || ||
|- style="background:#F2F2F2;"
| LEVEL || /pad/level || 1 || ||
|-
| FULL || /pad/ff || 1 || ||
|- style="background:#F2F2F2;"
| THRU || /pad/thru || 1 || ||
|-
| CLEAR || /pad/clear || 1 || ||
|- style="background:#F2F2F2;"
| Freeze (gêle le DMX) || /pad/freeze || 0-1 || ||
|-
| Blackout || /pad/blackout || 0-1 || ||
|- style="background:#F2F2F2;"
| + || /pad/plus || 1 || ||
|-
| - || /pad/moins || 1 || ||
|- style="background:#F2F2F2;"
| +% || /pad/pluspourcent || 1 || ||
|-
| -% || /pad/moinspourcent || 1 || ||
|- style="background:#F2F2F2;"
| ALL || /pad/all || 1 || ||
|-
| Validation (ENTER) || /pad/enter || 1 || ||
|- style="background:#F2F2F2;"
| Sélection active à zéro || /pad/clearclear || || ||
|-
| Clone || /pad/clone || || ||
|- style="background:#F2F2F2;"
| Inv || /pad/inv || || ||
|-
| Sélecteur du mode Scène || /pad/scene || || ||
|- style="background:#F2F2F2;"
| Sélecteur du mode Scène || /pad/X1 || || ||
|-
| Sélecteur du mode Prépa || /pad/prepa || || ||
|- style="background:#F2F2F2;"
| Sélecteur du mode Prépa || /pad/X2 || || ||
|-
| Ouverture de la fenêtre de check || /checkcirc/launch || || ||
|- style="background:#F2F2F2;"
| Circuit à checker || /checkcirc/circ || 0-512 || ||
|-
| Niveau de test des circuits || /checkcirc/level || 0-255 || ||
|- style="background:#F2F2F2;"
| Teste le circuit suivant || /checkcirc/next || || ||
|-
| Teste le circuit précédent || /checkcirc/prev || || ||
|}
=== Notes à propos de la version 3.0.2 ===
* '''Circuits et Submasters''' : Dans le tableau ci-dessus, les messages renvoyés par D::Light concernant les circuits et les submasters correspondent à la syntaxe de la version 3.0.2. Dans les versions antérieures, la syntaxe est la suivante:
** ''/circ/#'' renvoie la valeur (0-255) du circuit #.
** ''/sub/#'' renvoie la valeur (0-255) du submaster #.
* '''Fader X1''' : La valeur du Fader X1 renvoyée par D::Light est toujours inversée. ''Exemple: si la valeur envoyée est 255, la valeur retournée est 0''.
* '''Temporisation des Submasters''' :
** Lorsque le message d'envoi est ''/sub/#/flash'', si le submaster est temporisé (mode TIME), son temps de montée est celui de la temporisation, sinon (mode FLASH) sa montée est instantanée.
** Pour contrôler la temporisation indépendamment du temps programmé dans la mémoire du submaster, il faut utiliser la syntaxe ''/sub/#/level''.
* '''Niveau des Submasters''' :
** En mode TIME, lorsque le message d'envoi est ''/sub/#/flash'', le niveau effectif du submaster et la valeur retournée par D::Light sont indifférents à la valeur envoyée. Ils ne dépendent que du niveau mémorisé dans le submaster (TARGET). Pour activer le submaster, il suffit que la valeur soit supérieure à 0 (entre 1 et 255).
** En mode FLASH, lorsque le message d'envoi est ''/sub/#/flash'', le niveau effectif du submaster et la valeur retournée par D::Light dépendent du niveau mémorisé dans le submaster (TARGET) ''ET'' de la valeur envoyée. ''Exemple: si le TARGET est 128 et la valeur envoyée est 128, le niveau effectif sera 25% et la valeur renvoyée 64''.
** En mode TIME ou FLASH, lorsque le message d'envoi est ''/sub/#/level'', le niveau effectif du submaster et la valeur retournée par D::Light correspondent uniquement à la valeur envoyée, quelle que soit la valeur TARGET mémorisée dans le submaster.
=== Modifications de syntaxe OSC dans la version 3.0.3 ===
''Le tableau ci-dessous récapitule uniquement les changements de syntaxe qui apparaissent dans la '''version 3.0.3''' de D::Light (21 décembre 2010).''
{| class="wikitable" width="100%"
|-
!scope="col" style="background:#FFEEDD;" rowspan="2"| Commande
!scope="col" style="background:#CCFFCC;" colspan="2"| Envoi vers D::Light
!scope="col" style="background:#E0E0FF;" colspan="2"| Réception depuis D::Light
|-
!scope="col" style="background:#CCFFCC;"| Syntaxe
!scope="col" style="background:#CCFFCC;"| Valeur
!scope="col" style="background:#E0E0FF;"| Syntaxe
!scope="col" style="background:#E0E0FF;"| Valeur
|-
|rowspan="3"| Go ||rowspan="3"| /seq/go ||rowspan="3"| ||rowspan="3"| /seq || /go #
|-
| /X1 #
|-
| /X2 #
|- style="background:#F2F2F2;"
|rowspan="3"| GoBack ||rowspan="3"| /seq/goback ||rowspan="3"| ||rowspan="3"| /seq || /goback #
|- style="background:#F2F2F2;"
| /X1 #
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| /X2 #
||Device (integer mode) || /device/#(device number)/COLOUR/RED || 0-65535 || /device/#(device number)/COLOUR/RED || 0-65535
|-
|width="30%"|  Pause ||width="20%"| /seq/pause ||width="15%"| ||width="20%"| /seq ||width="15%"| /pause #
|- style="background:#F2F2F2;"
|rowspan="2"| X1 (mode scène) ||rowspan="2"| /seq/X1 ||rowspan="2"| # ||rowspan="2"| /seq || /X1 #
|- style="background:#F2F2F2;"
| /X2 #
|-
|rowspan="2"| X2 (mode prépa) ||rowspan="2"| /seq/X2 ||rowspan="2"| # ||rowspan="2"| /seq || /X1 #
|-
|-
| /X2 #
||Device (float mode) || /devicephase/#(device number)/COLOUR/RED || 0.0-1.0 || /device/#(device number)/COLOUR/RED || 0-65535
|- style="background:#F2F2F2;"
| Fader X1 || /seq/fadeX1 || 0-255 || /fadeX1 || # 0-255
|-
|-
| Fader X2 || /seq/fadeX2 || 0-255 || /fadeX2 || # 0-255
|- style="background:#F2F2F2;"
| Niveau du submaster # || /sub/#/level || 0-255 || /sub || /#/level 0-255
|-
| Submaster # Flash || /sub/#/flash || 0-255 || /sub || /#/level 0-255
|- style="background:#F2F2F2;"
| Submaster # Time || /sub/#/flash || 1-255 || /sub || /#/level 0-255
|}
|}


=== Notes à propos de la version 3.0.3 ===
L'essentiel des modifications concerne les informations renvoyées par D::Light. Les messages de retour sont moins nombreux et leur syntaxe est simplifiée alors que les informations renvoyées sont plus complètes.
Le revers de cette simplification, c'est une complexité plus grande dans le traitement des informations retournées par D::Light puisque une même commande déclenche en retour le renvoi de plusieurs informations différentes, regroupées en listes dont les valeurs ne sont pas toutes numériques.
Ces modifications permettent tout particulièrement un meilleur suivi des '''pas de séquences''' pour toutes les commandes de séquences qui retournent systématiquement les états respectifs en X1 et X2. Désormais, une syntaxe unique (''/seq'') permet de connaître le type de commande utilisée (''go'', ''goback'', ''pause'', ''mode scène'', ''mode prépa''), le pas de séquence commandé et les pas de séquence en X1 et en X2 ''en fin d'action''.
=== Syntaxe OSC de la version 4.0.0._b18 ===


{| class="wikitable"
{| class="wikitable"
Ligne 207 : Ligne 57 :
!scope="col" style="background:#E0E0FF;"| Syntaxe
!scope="col" style="background:#E0E0FF;"| Syntaxe
!scope="col" width="8%" style="background:#E0E0FF;"| Valeur
!scope="col" width="8%" style="background:#E0E0FF;"| Valeur
|-
|-
|rowspan="5"| Go ||rowspan="5"| /seq/go ||rowspan="5"| ||rowspan="5"| /seq || /go #
|rowspan="5"| Go ||rowspan="5"| /seq/go ||rowspan="5"| 1 ||rowspan="5"| /seq || /go #
|-
|-
| /X1 #
| /X1 #
Ligne 217 : Ligne 68 :
|-
|-
| /X2ActiveCue #
| /X2ActiveCue #
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
|rowspan="3"| GoBack ||rowspan="3"| /seq/goback ||rowspan="3"| ||rowspan="3"| /seq || /goback #
|rowspan="3"| GoBack ||rowspan="3"| /seq/goback ||rowspan="3"| 1 ||rowspan="3"| /seq || /goback #
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| /X1 #
| /X1 #
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| /X2 #
| /X2 #
|-
|-
|width="30%"|  Pause ||width="20%"| /seq/pause ||width="15%"| ||width="20%"| /seq ||width="15%"| /pause #
|width="30%"|  Pause ||width="20%"| /seq/pause ||width="15%"| 1 ||width="20%"| /seq ||width="15%"| /pause #
 
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
|rowspan="2"| X1 (mode scène) ||rowspan="2"| /seq/X1 ||rowspan="2"| # ||rowspan="2"| /seq || /X1 #
|rowspan="2"| X1 (mode scène) ||rowspan="2"| /seq/X1 ||rowspan="2"| # ||rowspan="2"| /seq || /X1 #
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| /X2 #
| /X2 #
|-
|-
|rowspan="2"| X2 (mode prépa) ||rowspan="2"| /seq/X2 ||rowspan="2"| # ||rowspan="2"| /seq || /X1 #
|rowspan="2"| X2 (mode prépa) ||rowspan="2"| /seq/X2 ||rowspan="2"| # ||rowspan="2"| /seq || /X1 #
|-
|-
| /X2 #
| /X2 #
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Update || /pad/update || 255-255 ||  ||
|-
| Fader X1 || /seq/fadeX1 || 0-255 || /fadeX1 || # 0-255
| Fader X1 || /seq/fadeX1 || 0-255 || /fadeX1 || # 0-255
|-
 
|- style="background:#F2F2F2;"
| Fader X2 || /seq/fadeX2 || 0-255 || /fadeX2 || # 0-255
| Fader X2 || /seq/fadeX2 || 0-255 || /fadeX2 || # 0-255
|- style="background:#F2F2F2;"
 
|-  
| Goto Step # || /seq/goto || # ||  ||
| Goto Step # || /seq/goto || # ||  ||
|- style="background:#F2F2F2;"
| Load & Goto CUE ||/seq/X2LoadAndFireCue ||# || ||
|- 
| Goto ID # ||/seq/ID_goto ||# || ||
|- style="background:#F2F2F2;"
| Load & Goto ID ||/seq/X2LoadAndFireID ||# || ||
|-  
|-  
| Kill Submasters || /sub/kill || # ||  ||
| Kill Submasters || /sub/kill || # ||  ||
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Niveau du submaster # || /sub/#/level || 0-255 || /sub || /#/level 0-255
| Niveau du submaster # || /sub/#(subNumber)/phase || 0.0-1.0(float value) || /sub/#(subNumber)/level || 0-255
 
|-  
|-  
| Submaster # Flash || /sub/#/flash || 0-255 || /sub || /#/level 0-255
| Niveau du submaster # || /sub/#(subNumber)/level || 0-255(value) || /sub/#(subNumber)/level || 0-255
 
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Submaster # Time || /sub/#/flash || 1-255 || /sub || /#/level 0-255
| Submaster Flash # || /sub/#(subNumber)/flash || 0-255(value) || /sub/#(subNumber)/level || 0-255
 
|-  
|-  
| Niveau du circuit # || /circ/# || 0-255 || /circ || /# 0-255
| Submaster Time # || /sub/#(subNumber)/flash || 0-255(value) || /sub/#(subNumber)/level || 0-255
 
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Niveau du circuit # || /circ/#(circNumber)/level || 0-255(value) || /circ/#(circNumber)/level || 0-255
|-
| Niveau Grandmaster || /grandmaster || 0-255 || /grandmaster || 0-255
| Niveau Grandmaster || /grandmaster || 0-255 || /grandmaster || 0-255
|-
 
| Sélecteur Time/Flash du sub # || /sub/#/mode || 0-1 || ||  
|- style="background:#F2F2F2;"
| Sélecteur Time/Flash/Inhib du sub # || /sub/#(subNumber)/mode || 1-2-3 || ||
 
|-
| Solo (sub # prioritaire) || /sub/#(subNumber)/type || 0-1 || ||  
 
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Solo (sub # prioritaire) || /sub/#/type || 0-1 || ||  
| Pavé numérique || /pad/1...9 || 1 ||pad/saisieText ||#
 
|-
|-
| Pavé numérique || /pad/1...9 || 1 ||/pad/saisieText ||#
| Point du pavé numérique || /pad/dot || 1 || ||  
 
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Point du pavé numérique || /pad/dot || 1 || ||
|-
| CHANNEL || /pad/channel || 1 || ||  
| CHANNEL || /pad/channel || 1 || ||  
|-
| LEVEL || /pad/level || 1 || ||
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| LEVEL || /pad/level || 1 || ||
|-
| FULL || /pad/ff || 1 || ||  
| FULL || /pad/ff || 1 || ||  
|-
| THRU || /pad/thru || 1 || ||
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| THRU || /pad/thru || 1 || ||
|-
| CLEAR || /pad/clear || 1 || ||  
| CLEAR || /pad/clear || 1 || ||  
|- style="background:#F2F2F2;"
 
|-  
| Freeze (gêle le DMX) (Toggle mode)|| /pad/freeze || 1 || ||  
| Freeze (gêle le DMX) (Toggle mode)|| /pad/freeze || 1 || ||  
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Freeze (gêle le DMX) (Set mode)|| /force/freeze || 0-1 || ||  
| Freeze (gêle le DMX) (Set mode)|| /force/freeze || 0-1 || ||  
|-
|-
| Blackout (Toggle mode)|| /pad/blackout || 1 || ||  
| Blackout (Toggle mode)|| /pad/blackout || 1 || ||  
|-
 
|- style="background:#F2F2F2;"
| Blackout (Set mode)|| /force/blackout || 0-1 || ||  
| Blackout (Set mode)|| /force/blackout || 0-1 || ||  
|-
| + || /pad/plus || 1 || ||
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| + || /pad/plus || 1 || ||
|-
| - || /pad/moins || 1 || ||  
| - || /pad/moins || 1 || ||  
|-
| +% || /pad/pluspourcent || 1 || ||
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| +% || /pad/pluspourcent || 1 || ||
|-
| -% || /pad/moinspourcent || 1 || ||  
| -% || /pad/moinspourcent || 1 || ||  
|-
| ALL || /pad/all || 1 || ||
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| ALL || /pad/all || 1 || ||
|-
| Validation (ENTER) || /pad/enter || 1 || ||  
| Validation (ENTER) || /pad/enter || 1 || ||  
|-
| Sélection active à zéro || /pad/clearclear || || ||
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Sélection active à zéro || /pad/clearclear || || ||
|-
| Clone || /pad/clone || || ||  
| Clone || /pad/clone || || ||  
|-
| Inv || /pad/inv || || ||
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Inv || /pad/inv || || ||
|-
| Sélecteur du mode Scène || /pad/scene || || ||  
| Sélecteur du mode Scène || /pad/scene || || ||  
|-
| Sélecteur du mode Scène || /pad/X1 || || ||
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Sélecteur du mode Scène || /pad/X1 || || ||
|-
| Sélecteur du mode Prépa || /pad/prepa || || ||  
| Sélecteur du mode Prépa || /pad/prepa || || ||  
|-
| Sélecteur du mode Prépa || /pad/X2 || || ||
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Sélecteur du mode Prépa || /pad/X2 || || ||  
| Load a palette for selected Device(s)|| /pad/palette || #|| ||  
 
|-
|-
| Ouverture de la fenêtre de check || /checkcirc/launch || || ||  
| Update a palette|| /pad/paletteUpdate || (use commandLine to determine which palette to updated) || ||  
 
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Circuit à checker || /checkcirc/circ || 0-512 || ||  
| Record a palette (open the record palette panel)|| /pad/paletteRecord || (use commandLine to determine which palette to updated) || ||
 
|-  
| RingBufffer Next || /pad/ringBufferNext || || ||
 
|- style="background:#F2F2F2;"
| RingBufffer Prev || /pad/ringBufferPrev || || ||  
 
|-
|-
| Niveau de test des circuits || /checkcirc/level || 0-255 || ||  
| || || || ||  
 
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Teste le circuit suivant || /checkcirc/next || || ||
|-
| Teste le circuit précédent || /checkcirc/prev || || ||
|-
| Open PATCH window || /patch/launch || || ||  
| Open PATCH window || /patch/launch || || ||  
|-
| Checking level (patch) || /patch/levelRequest || 0-255 ||/patch/displayLevel ||#
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Checking level (patch) || /patch/levelRequest || 0-255 ||/patch/displayLevel ||#
|-
| Pad Digits (patch) || /patch/# || 1 || ||  
| Pad Digits (patch) || /patch/# || 1 || ||  
|-
| Pad Dot (patch)|| /patch/dot ||1 || ||
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Pad Dot (patch)|| /patch/dot ||1 || ||
|-
| Inserted Digits (patch)||  ||  || /patch/input||#  
| Inserted Digits (patch)||  ||  || /patch/input||#  
|-
| Pad Clear (patch)|| /patch/clear || 1 || ||
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Pad Clear (patch)|| /patch/clear || 1 || ||
|-
| Pad Thru (patch)|| /patch/thru || 1 || ||  
| Pad Thru (patch)|| /patch/thru || 1 || ||  
|-
| Pad Next (patch)|| /patch/next || 1 || ||
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Pad Next (patch)|| /patch/next || 1 || ||
|-
| Pad Prev (patch)|| /patch/prev || 1 || ||  
| Pad Prev (patch)|| /patch/prev || 1 || ||  
|-
| Display Channel (patch)||  || ||/patch/displayChannel ||#
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Display Channel (patch)||  || ||/patch/displayChannel ||#
|-
| Display Patched Dimmer (patch)||  || || /patch/displayDimmer ||#  
| Display Patched Dimmer (patch)||  || || /patch/displayDimmer ||#  
|-
| Switch DIM-CHAN (patch)|| /patch/switch || 0-1 ||/patch/displayActiveSwitch ||DIM-CH
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Switch DIM-CHAN (patch)|| /patch/switch || 0-1 ||/patch/displayActiveSwitch ||DIM-CH
|-
| Active Channel (patch)||  ||  ||/patch/displayActiveChannel ||#  
| Active Channel (patch)||  ||  ||/patch/displayActiveChannel ||#  
|-
| Active Dimmer (patch)||  || ||/patch/displayActiveDimmer ||#
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Active Dimmer (patch)||  || ||/patch/displayActiveDimmer ||#
|-
| Active Thru Dimmer (patch)||  ||  || /patch/displayActiveThru||#  
| Active Thru Dimmer (patch)||  ||  || /patch/displayActiveThru||#  
|-
| Add Patch|| /patch/plus ||1 || ||
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Add Patch|| /patch/plus ||1 || ||
|-
| Remove Patch||/patch/moins ||1 || ||  
| Remove Patch||/patch/moins ||1 || ||  
|-
| Test Channel (patch)|| /patch/testChannel || 0-1 ||/patch/testChannel ||#
|- style="background:#F2F2F2;"
|- style="background:#F2F2F2;"
| Test Channel (patch)|| /patch/testChannel || 0-1 ||/patch/testChannel ||#
|-
| Test Dimmer (patch)||/patch/testDimmer  ||0-1  ||/patch/testDimmer ||#  
| Test Dimmer (patch)||/patch/testDimmer  ||0-1  ||/patch/testDimmer ||#  
|}
|}


== Communication OSC entre D::Light et Pure Data ==
=Communication OSC entre D::Light et Pure Data=


=== L'envoi des données vers D::Light ===
=== L'envoi des données vers D::Light ===
Un seul objet est nécessaire :
Un seul objet est nécessaire :
* L'objet '''sendOSC'''. Il doit recevoir un message qui établit la connexion (''connect''), indique à ''sendOSC'' vers quelle machine envoyer les informations (''localhost'' si c'est la même machine ou adresse IP s'il s'agit d'une machine distante) et lui précise que l'on s'adresse à D::Light en spécifiant son port ('''7000'''). Un second message (''disconnect'') permet la déconnexion manuelle. Facultativement, un objet '''loadbang''' permet d'activer automatiquement la connexion à l'ouverture du patch Pd. Mais l'état de la connexion ne peut pas être affiché. La syntaxe des messages d'envoi doit toujours commencer par le préfixe ''send'' (exemple : ''send /seq/go'').
* L'objet '''sendOSC'''. Il doit recevoir un message qui établit la connexion (''connect''), indique à ''sendOSC'' vers quelle machine envoyer les informations (''localhost'' si c'est la même machine ou adresse IP s'il s'agit d'une machine distante) et lui précise que l'on s'adresse à D::Light en spécifiant son port ('''7000'''). Un second message (''disconnect'') permet la déconnexion manuelle. Facultativement, un objet '''loadbang''' permet d'activer automatiquement la connexion à l'ouverture du patch Pd. Mais l'état de la connexion ne peut pas être affiché. La syntaxe des messages d'envoi doit toujours commencer par le préfixe ''send'' (exemple : ''send /seq/go'').
Ligne 361 : Ligne 295 :


=== La réception des données provenant de D::Light ===
=== La réception des données provenant de D::Light ===
Deux objets sont nécessaires :
Deux objets sont nécessaires :
* L'objet '''dumpOSC''' permet de recevoir les messages OSC. On lui attribue en paramètre le numéro de port de D::Light ('''7001''').
* L'objet '''dumpOSC''' permet de recevoir les messages OSC. On lui attribue en paramètre le numéro de port de D::Light ('''7001''').
Ligne 367 : Ligne 302 :


=== Les objets OSC de Martin Peach ===
=== Les objets OSC de Martin Peach ===
L'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).<br />
L'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).<br />


Ligne 390 : Ligne 326 :


=== Le tri des données OSC provenant de D::Light ===
=== Le tri des données OSC provenant de D::Light ===
D::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.
D::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.
* Lorsque le message de réception renvoie un seul nombre, la sortie correspondante de l'objet ''routeOSC'' reçoit un nombre. C'est le cas uniquement pour le message ''/grandmaster'' (niveau) dans la version 3.0.3. C'était le cas, dans les versions antérieures, pour ''/go'' (pas), ''/goback'' (pas) et ''/pause'' (pas).
* Lorsque le message de réception renvoie un seul nombre, la sortie correspondante de l'objet ''routeOSC'' reçoit un nombre. C'est le cas uniquement pour le message ''/grandmaster'' (niveau) dans la version 3.0.3. C'était le cas, dans les versions antérieures, pour ''/go'' (pas), ''/goback'' (pas) et ''/pause'' (pas).
Ligne 442 : Ligne 379 :




== Voir aussi ==
=Communication OSC entre D::Light et le terminal=
=== Documents complémentaires ===
 
* [http://spreadsheets.google.com/ccc?key=0AhgzuANs_G4GdDR4MkhmTm5ZN053bTh0MzVmeTB4ZXc&hl=fr Tableau Google.doc avec annotations pour la Bibliothèque OSC de D::Light]
Il est possible d'envoyer des messages OSC en ligne de commande via le terminal, avec [https://fukuchi.org/works/oscsend/index.html.en '''oscsend'''] qui fonctionne grace à la librairie [http://liblo.sourceforge.net '''Liblo''']
 
Ces outils sont disponibles dans la plupart des repos officiels. Vous pouvez les installer en utilisant apt, pacman, brew, etc.
 
 
Une fois l'outil installé, la commande suivante vous permet d'envoyer un GO :
 
oscsend localhost 7000 /seq/go f 1.0
 
 
la commande suivante vous permet d'envoyer le STEP ID 12
 
oscsend localhost 7000 seq/X2LoadAndFireID f 12
 
 
Avec cette commande, vous pouvez synchroniser simplement [http://linux-show-player.sourceforge.net Linux Show Player] et D::Light, en une seule cue list dans LiSP, en y créant une Cue Command, qui exécutera la ligne de commande.
 
=Voir aussi=
 
 
===Télécommande OSC===
 
Page 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 ===
=== Liens externes ===
* [http://opensoundcontrol.org Site officiel OSC]
* [http://opensoundcontrol.org Site officiel OSC]
* [http://www.interface-z.com/patchs/ut-osc.htm La communication OSC selon Interface-Z]
* [http://www.interface-z.com/patchs/ut-osc.htm La communication OSC selon Interface-Z]


=== Tutoriels ===
 
 
 
----
 
Retourner à la page [[Les Menus]]
 
Retourner à la page [[Accueil]]

Dernière version du 18 novembre 2020 à 11:06

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[modifier]

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[modifier]

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][modifier]

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
Load a palette for selected Device(s) /pad/palette #
Update a palette /pad/paletteUpdate (use commandLine to determine which palette to updated)
Record a palette (open the record palette panel) /pad/paletteRecord (use commandLine to determine which palette to updated)
RingBufffer Next /pad/ringBufferNext
RingBufffer Prev /pad/ringBufferPrev
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 #

Communication OSC entre D::Light et Pure Data[modifier]

L'envoi des données vers D::Light[modifier]

Un seul objet est nécessaire :

  • L'objet sendOSC. Il doit recevoir un message qui établit la connexion (connect), indique à sendOSC vers quelle machine envoyer les informations (localhost si c'est la même machine ou adresse IP s'il s'agit d'une machine distante) et lui précise que l'on s'adresse à D::Light en spécifiant son port (7000). Un second message (disconnect) permet la déconnexion manuelle. Facultativement, un objet loadbang permet d'activer automatiquement la connexion à l'ouverture du patch Pd. Mais l'état de la connexion ne peut pas être affiché. La syntaxe des messages d'envoi doit toujours commencer par le préfixe send (exemple : send /seq/go).


La réception des données provenant de D::Light[modifier]

Deux objets sont nécessaires :

  • L'objet dumpOSC permet de recevoir les messages OSC. On lui attribue en paramètre le numéro de port de D::Light (7001).
  • L'objet OSCroute, permet de trier les messages arrivant par l'objet dumpOSC. Les messages de réception des données provenant de D::Light constituent les paramètres de cet objet. Par chaque sortie on récupère les valeurs et/ou les symboles correspondants aux messages inscrits en paramètres selon leur ordre respectif. En l'absence de paramètre, la sortie de gauche liste les dernières informations reçues (par exemple : /4 255 si le submaster 4 est à full).

Les objets OSC de Martin Peach[modifier]

L'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.)

  • Pour l'envoi des données, l'objet sendOSC est remplacé par un couple d'objets : packOSC et udpsend. Les messages de connexion et déconnexion restent identiques. La sortie de udpsend peut recevoir un nombre qui affiche l'état de la connexion (0 ou 1). La syntaxe des messages d'envoi est simplifiée : il n'est plus nécessaire d'utiliser le préfixe send (il suffit, par exemple, d'écrire /seq/go). De plus, les envois simultanés peuvent être regroupés en un seul message, chaque syntaxe étant séparée par une virgule suivie d'un espace (exemple : /grandmaster 127, /seq/go, /sub/1/flash 188, /sub/4/flash 255, /circ/22 50, /circ/24 220).
  • Pour la réception des données, les 2 objets dumpOSC et OSCroute sont remplacés par le trio udpreceive, unpackOSC, routeOSC. La sortie de droite de udpreceive donne l'adresse IP de D::Light qui se trouve dans l'OSCwriter.
  • Cette bibliothèque d'objets est associée à Pd-extended mais elle doit être importée dans le patch. L'invocation se fait sous forme d'objets nommés import mrpeach/udpsend et import mrpeach/packOSC pour l'envoi, import mrpeach/udpreceive, import mrpeach/unpackOSC et import mrpeach/routeOSC pour la réception.

On peut accéder à la documentation dans Pd par help/browser:

    • /usr/lib/pd/doc/5.reference/mrpeach/packOSC-help.pd
    • /usr/lib/pd/doc/5.reference/mrpeach/routeOSC-help.pd
    • /usr/lib/pd/doc/5.reference/mrpeach/udpreceive-help.pd
    • /usr/lib/pd/doc/5.reference/mrpeach/udpsend-help.pd

Sous linux:

    • /usr/lib/pd/extra/mrpeach/packOSC.pd_linux
    • /usr/lib/pd/extra/mrpeach/routeOSC.pd_linux
    • /usr/lib/pd/extra/mrpeach/udpreceive.pd_linux
    • /usr/lib/pd/extra/mrpeach/udpsend.pd_linux
    • /usr/lib/pd/extra/mrpeach/unpackOSC.pd_linux


Le tri des données OSC provenant de D::Light[modifier]

D::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.

  • Lorsque le message de réception renvoie un seul nombre, la sortie correspondante de l'objet routeOSC reçoit un nombre. C'est le cas uniquement pour le message /grandmaster (niveau) dans la version 3.0.3. C'était le cas, dans les versions antérieures, pour /go (pas), /goback (pas) et /pause (pas).
  • Les messages de réception /fadeX1 et /fadeX2 (anciennement: /XfadeX1 et /XfadeX2) renvoient une liste de 2 nombres (pas de séquence et niveau). Ils doivent être séparés par l'objet unpack avec 2 arguments f f (=float) qui spécifient qu'il s'agit de nombres.
  • Les messages de réception /X1, /X2, /go, /goback et /pause doivent être extraits par un objet routeOSC de second niveau relié à la sortie du premier routeOSC qui correspond à /seq.
  • Les messages de réception /sub et /circ renvoient une liste qui comporte un symbole (/#/level) et un nombre (niveau).
    • L'opération la plus simple mais aussi la plus fastidieuse consiste à établir un routage à plusieurs niveaux. Pour les submasters, par exemple, le premier routeOSC extrait les données /sub, le second les données /#, le troisième les données /level, c'est-à-dire la valeur du niveau. Ce qui oblige à reproduire l'opération 250 fois pour les 250 submasters disponibles. De même pour les circuits.
    • Une opération, plus économique, consiste à extraire directement les valeurs numériques en séparant les éléments symboles, non numériques(/ et /level), grâce à un séparateur. Symbole et nombre doivent préalablement être séparés par l'objet unpack avec 2 arguments qui sont s (=symbole) et f (=float). Le séparateur permet ensuite d'extraire le numéro de sub. On utilise pour cela l'objet symbol2list qui reçoit à gauche le symbole et à droite un message comportant le signe séparateur. Un nouvel objet unpack ayant f comme argument permet alors de récupérer le nombre qui était associé au slash. On peut procéder de la même manière pour les circuits. L'avantage est de taille: 2 nombres permettent la réception de toutes les données concernant les submasters (numéro de sub et niveau), de même pour les circuits. Il ne reste plus qu'à les dispatcher selon les besoins... (voir ci-dessous).

(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::Light[modifier]

Dans 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.

  • L'objet dispatch va permettre de faire apparaître, pour chaque submaster et pour chaque circuit, sa valeur respective.
  • Cet objet dispatch nécessite l'importation d'une bibliothèque associée à Pd-extended: pour cela, on crée un objet import moonlib/dispatch.
  • On crée ensuite 2 objets dispatch, l'un pour les subs, l'autre pour les circuits, dans lesquels on déclare en arguments la syntaxe générique utilisée pour chacun et les minima et maxima, c'est-à-dire les numéro du premier et du dernier submasters dont on veut récupérer les données (dans l'exemple ci-dessous, de 1 à 10). Même déclaration pour les circuits. Ce qui donne: dispatch $0-sub 1 10 et dispatch $0-circ 1 10. Si l'on veut récupérer les valeurs de 250 submasters et de 120 circuits, on déclarera: dispatch $0-sub 1 250 et dispatch $0-circ 1 120.


Le dispatch des données sub et circ (exemple pour 10 submasters et 10 circuits) :

  • Reste à créer les objets qui vont réceptionner les données (dans l'exemple, ce sont des objets nombre mais on pourrait utiliser des sliders, des objets symbole ou faire apparaître les données comme label de canvas). Chacun devra comporter en label le nom et le numéro qui lui correspond afin de les identifier (Sb-1, Sb-2... Ch-1, Ch-2...).


Les objets de réception des données sub et circ (exemple pour 10 submasters et 10 circuits) :

Dernière opération: la création des messages d'envoi et de réception.

  • Les nombres issus de routeOSC qui correspondent aux numéros et aux valeurs sont compactés par un objet pack f f puis envoyés (s = send) par un message qui reprend la syntaxe générique initialement déclarée à laquelle on ajoute le suffixe -rcv (receive). Ce qui donne: s $0-sub-rcv et s $0-circ-rcv.
  • Chaque objet objet nombre appelé à réceptionner les données doit avoir la même déclaration en réception à laquelle s'ajoute son numéro propre: r $0-sub1-rcv pour le sub n°1 et r $0-sub2-rcv pour le sub n°2, etc. De même pour les circuits.


Les messages de réception des données sub et circ :


Et hop, le tour est joué: chaque objet nombre reçoit instantanément son dû!

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 terminal[modifier]

Il 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.


Une fois l'outil installé, la commande suivante vous permet d'envoyer un GO :

oscsend localhost 7000 /seq/go f 1.0


la commande suivante vous permet d'envoyer le STEP ID 12

oscsend localhost 7000 seq/X2LoadAndFireID f 12


Avec cette commande, vous pouvez synchroniser simplement Linux Show Player et D::Light, en une seule cue list dans LiSP, en y créant une Cue Command, qui exécutera la ligne de commande.

Voir aussi[modifier]

Télécommande OSC[modifier]

Page 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[modifier]




Retourner à la page Les Menus

Retourner à la page Accueil