Commande numérique SIMDA 3262

Les projecteurs 3262 et 3245, ainsi que leurs versions 400W 3462 et 3445, sont pilotables par liaison série RS-232. Les 3245/3445 sont équipés d'une prise DB9 standard. Un câble standard peut donc être utilisé. Les 3262/3462 sont équipés d'une prise DIN 6 broches. Il est nécessaire de réaliser un câble. Pour des ports série mini-DIN (environnement Macintosh), le schéma est le suivant. Pour des DB 9, DB15 ou DB25, on extrapolera facilement. Cela peut paraître une erreur, mais TxD- est effectivement relié au blindage de la DIN 6 broches.

Le protocole est documenté dans [PDF] Protocole série 3262,3462,3245,3445

Le protocole doit être suivi avec rigueur. Un caractère de trop ou de moins désynchronise le projecteur qui attend alors la commande suivante et ne la comprend pas. Le processus se répète et le projecteur paraît bloqué. Afin de maintenir une stricte synchronisation avec le projecteur, nous avons choisi le mode synchrone. Chaque commande est acquitée par un caractère ("$").

C'est donc le projecteur qui imposera la cadence des commandes. Celle-ci peut varier de quelques millisecondes à 5 secondes pour l'opération la plus longue (un demi-tour du magasin). La vitesse de la liaison série (9600 bauds) place une limite supérieure à cette cadence: 960 caractères par seconde, soit à raison de 5 caractères par commande (4 + 1 d'acquitement) : 192 commandes/sec.

A l'autre extrêmité, le séquenceur émet des ordres (lumière et passe-vue) à sa propre cadence. Nous avons donc à synchroniser ce flux sur l'état du projecteur, ce qui implique d'omettre certaines commandes, ce qui implique encore de distinguer les commandes qui peuvent être omises (faibles variations de la lumière de lampe) des commandes impératives (changements de vue, positionnement, variations brutales de lumière "cut").

Du protocole, nous n'utilisons que 3 commandes:

Il est obligatoire de travailler en hexadécimal pour représenter le niveau de lumière maximum sur deux digits (FF = 255). Malheureusement, les projecteur se réveillent en mode décimal. Un J31 (set hexadecimal mode) devra être envoyé en début de session.

Réalisation

Le logiciel choisi pour réaliser l'interface séquenceur/projecteur est Max/MSP
http://www.cycling74.com/products/maxmsp.html

Il s'impose tout naturellement par son aptitude à traiter les commandes MIDI, ce pour quoi il est conçu. Les problèmes du synchronisme dans un environnement parallèle (ou quasi-parallèle) sont loins d'être triviaux, mais sont des classiques du temps-réel et des graphes de Petri. C'est ce qui s'est révélé être la seule difficulté du projet.

Le driver

Un peu délicat (et qui pourrait certainement être mieux programmé), ce patch réalise un cycle requête/réponse sur la liaison série. Il est instantible, l'argument #1-SIMDA devenant 1-SIMDA, 2-SIMDA, 3-SIMDA, ..., 92-SIMDA en fonction de l'instanciation et selon votre capacité en nombre de ports série (et de votre budget à multiplier les projecteurs). Il accepte une requête sous forme de symbole (exemple: J00) et renvoie un "bang" lorsque le projecteur a répondu.

Le sérialiseur et le hiérarchiseur

Ce wrapper "enveloppe" le pilote série et assure le séquencement des commandes. Le "bang" de requête terminée est recyclé pour synchroniser la requête suivante. Il faut évidemment injecter un premier jeton à l'initialisation (loadbang). Le sérialiseur repose sur prioritize, qui distingue les commandes impératives des commandes "omissibles".

Un contrôleur, parmi d'autres

Les trois modules précédents étant acquis, le chemin est ouvert à toutes formes de contrôle des projecteur. Le patch présénté ici exerce toutes les fonctions dont nous avons besoin: avance, recul, positionnement, variation lumière et fondu-enchaîné avec table de lumière. Le petit utilitaire hex convertit un nombre en deux digits hexa, préfixés par une lettre, et produit donc une commande 3262.

L'interface ProTools

Un assez gros morceau, mais totalement spécifique à notre séquenceur, ProTools. Nous entrons ici de plein pied dans le domaine du studio MIDI, avec ses protocoles de synchronisation (MTC = MIDI Time Code) et de commande machines (MMC = MIDI Machine Control). Nous avons besoin de synthétiser deux informations:

Le reste est plus trival: PT:VOLUME est le volume de la voie MIDI dont nous nous servons pour enregistrer les niveaux de lumière et qui, bien heureusement, est chasé par ProTools, ce qui nous évite de nouvelles contorsions. Enfin, PT:PCIN et PT:PCOUT sont les entrées et sorties des Program Change dans lesquels nous coderons les numéros de vues.

Si vous trouvez cela trop complexe, il est encore temps de retourner à l'analogique. Sinon, nous abordons (enfin)...

Le contrôleur de fondu-enchaîné

Il reçoit une rampe de lumière (PT:VOLUME) et allume les projecteur en conséquence: projecteur 1 à la valeur spécifiée, projecteur 2 à (lumière max - valeur spécifiée). Les courbes de fondu sont calculées en aval.

Sur présence de PT:ONLINE, le contrôleur synthétise les changements de vue au moment ou les rampes de lumière arrivent à zéro. On peut retarder ce moment pour éviter les images fantômes, mais le dispositif ACD (Auto Cooling Delay) de SIMDA fait merveille et nous en dispense. Les lampes s'éteignent quelques secondes après disparition de ONLINE pour les économiser.

Le contrôleur compte les vues, mais n'envoie aux projecteurs que des ordres d'avance, pas d'adressage direct. Ce compteur peut être écrit sur la piste Program Change du séquenceur en jouant le diaporama depuis le début. Une fois que le diaporama a été ainsi "topé", le contrôleur est capable de relire les compteurs de vue et de repositionner automatiquement les projecteurs sur réception de l'évènement PT:LOCATE. L'objet grab lit les compteurs de vue et les envoie aux projecteurs.


[Retour à l'index] [Ecrire à l'auteur]