Cet indicateur lumineux est conçu pour un usage en studio d'enregistrement (post-production audio, doublage) ou pour scène, quand une indication visuelle de début ou de fin d'enregistrement est requise auprès de techniciens son, musiciens ou comédiens.
Il permet d'allumer un ou plusieurs voyants très visibles à partir de messages MIDI provenant de stations de travail audio équipées de Cubase, Nuendo, Protools, Reaper ou autre logiciel séquenceur, selon les protocoles standard RT (RealTime, infos temps réel standard MIDI), MMC (MIDI Machine Control) ou MCP/HUI (Mackie Control Protocol). Le système est doté de son propre système d'éclairage à LED et de plusieurs relais qui permettent le raccord à des lampes déjà installés ou qui établissent des liaisons ou coupures audio de façon automatisée. Le système dispose d'une entrée MIDI et d'une sortie MIDI. L'entrée MIDI est requise dans tous les cas puisque c'est par elle que les messages d'information MIDI arrivent. La sortie MIDI n'est requise que pour Protools qui attend des accusés de réception pour pouvoir continuer à envoyer ses messages. L'alimentation s'effectue par le secteur 230 V, mais peut aussi provenir d'un bloc d'alimentation du commerce dont la tension de sortie est de 12 V (obligatoirement régulée). J'ai travaillé sur 3 versions dont une seule à ce jour est maintenue :
- Schéma 001 : version avec PIC 16F628A (ou 16F648A), buffer réception MIDI 64 octets (ou 128 octets) - plus maintenuLes trois schémas ont une structure rigoureusement identique, seul le type de microcontrôleur change. Le texte descriptif est donc valable pour les trois systèmes, aux différences mentionnées près.
09/01/2012 : l'indicateur avec PIC 16F628A/16F648A (schéma 001) fonctionne bien quand les données MIDI qu'il reçoit ne contiennent pas trop de données en complément des commandes de transport. Mes essais avec Cubase et Protools, lesquels transmettent pas mal de données annexes (Time Code et nombreux Control Change) ne sont pour l'instant pas concluants. Système non maintenu mais disponible en libre téléchargement. Le logiciel du PIC 18F2520 (schéma 001b) est terminé et la simulation est OK, mais je n'ai pas fait de proto et n'en ferai pas (système non maintenu, logiciel non disponible).
22/03/2020 : portage du logiciel sur PIC 18F26K22 (schéma 001c). Fonctionnement OK avec de volumineux flux de données MIDI (Timecode ou autres). C'est ce système qui est maintenu et bénéficie d'un suivi. Projet passé en statut Pro, logiciel non disponible.
Le coeur du montage repose sur un PIC 16F628A ou 16F648A, dont le logiciel est très largement inspiré de celui développé pour mon interface MIDI 005b.
Les données MIDI doivent être transmises à une vitesse de 31250 bauds, et cette vitesse doit être respectée à quelques dizièmes de pourcents près. Le PIC 16F628A dispose d'un oscillateur interne de 4 MHz qu'on n'utilise pas ici, puisqu'il est fait usage d'un quartz externe de 20 MHz.
Elle se fait sur l'optocoupleur U2/CNY17-2 qui assure une isolation électrique totale avec la source MIDI. La résistance R1 limite le courant dans la LED émissive contenue dans l'optocoupleur et la diode D1 prévient tout dommage consécutif à une inversion des broches 4 et 5 de la prise MIDI (câble MIDI fait maison malencontreusement croisé ou erreur au niveau du connecteur d'entrée J1). Il est possible d'utiliser d'autres optocoupleurs pour l'entrée MIDI, voir page Interfaces MIDI pour plus de détails. Une sortie MIDI Thru peut être ajoutée, si on souhaite utiliser ce montage en parallèle d'une liaison déjà utilisée pour un autre équipement. Comme la simple mise en parallèle de la prise MIDI In avec une prise MIDI Thru est tout bonnement exclue, un peu d'électronique complémentaire est ajoutée, qui se résume à la simple mise en place d'un circuit intégré TTL 74HCT04 (dont on exploite deux portes logiques) et de deux résistances additionnelles. Cette petite portion de montage prévue sur le circuit imprimé est optionnelle, si vous n'en avez pas besoin il suffira d'ignorer l'implantation des deux résistances R12 et R13. Le circuit intégré U4 devra dans tous les cas rester en place car une autre de ses portes logiques sert à inverser les données MIDI d'entrée pour permettre leur visualisation sur une LED dédiée.
Bien sûr, si en plus visualiser l'état de l'entrée MIDI In ne vous est pas utile non plus, le CI U4 devient dans ce cas entièrement superflu.
La sortie MIDI Out est requise pour les logiciels qui attendent un retour de la part de l'interface (Protools par exemple). Les données MIDI sortent telles quelles au format TTL de la patte RB2 du PIC (sortie TX de l'UART matériel) et sont délivrées via les deux résistances de limitation de courant R3 et R4, de 220 ohms chacune.
Les données de transport acceptées par ce système sont les suivantes :
(*) Uniquement testé (avec succès) avec une surface de contrôle NI Kore supportant l'émulation Mackie.
Le circuit est doté de plusieurs entrées de commande destinées à contourner manuellement les automatismes liés à la réception des messages MIDI. Toutes ces entrées de commande sont actives quand on les porte à un état logique bas, ce qui est simplement assuré en les connectant à la masse via un bouton-poussoir de façade ou poussoir au pied (on pourrait aussi prévoir une commande via logique externe, au travers d'un transistor NPN câblé en interrupteur / émetteur commun, point non abordé ici).
Toutes ces entrées sont de type à bascule : un appui pour activer, un autre pour désactiver.
Usage possible de la commande In_Inhibit_R : permettre à celui qui est aux manettes de désactiver la lampe rouge pour ne pas signaler que l'enregistrement est démarré.Contrairement aux panneaux indicateurs d'enregistrement standards avec un seul éclairage rouge (punchlight ou OnAir light, affichage "RECORDING" ou "ON AIR"), on veut ici disposer d'une indication lumineuse à plusieurs états (plusieurs couleurs différentes) :
On peut pour cela opérer de deux façons différentes : en utilisant soit trois voyants séparés rouge, vert et jaune, soit un voyant bicolore rouge/vert qui quand ses deux élements sont allumés affiche du jaune. C'est cette deuxième solution qui a été retenue. Le boîtier principal dispose d'une signalétique locale (une LED bicolore ou deux LED ordinaires) et de sorties permettant le raccord direct de LED haute luminosité, qui peuvent être déportées de plusieurs mètres sans aucun soucis (liaison en courant faible). La LED CUE est une LED verte simple. La LED MIDI_Rx est optionnelle, elle s'allume simplement lors de la réception d'évenements MIDI.
Remarque : il est bien entendu possible de se limiter à la seule couleur rouge, pour ceux qui estiment que l'utilisation de plusieurs couleurs risque embrouiller les esprits ;)
La sortie Out_MMC est à l'état bas au repos (0 V), et passe à l'état haut (+5 V) lors de la réception d'une commande MIDI de type RECORD START (PUNCH IN). Cette sortie repasse à l'état bas sur réception d'une commande MIDI de type RECORD STOP (PUNCH OUT).
La sortie Out_RT est à l'état bas au repos et passe à l'état haut lors de la réception d'une commande MIDI de type START. Cette sortie repasse à l'état bas sur réception d'une commande MIDI de type STOP.
La sortie Out_MCP change d'état lors de la réception de messages MIDI répondant au protocole MCP ou HUI.
Les sorties Out_LED_R et Out_LED_G s'allument selon les données reçues PLAY, STOP et REC :
Toutes les sorties sont de type logique TTL 5 V. Il est donc possible d'y raccorder directement une LED (avec bien sûr une résistance série de limitation de courant) ou un relais par le biais d'un amplificateur en courant. Les relais que j'ai choisis disposent de points "Commun", "Repos" et "Travail", ce qui permet de faire ce qu'on veut avec (établissement ou désactivation d'une fonction quelconque). Actuellement, le circuit bénéficie de contacts "secs" (contacts relais) pour les sorties Voyant Rouge, Voyant Vert et Mute Monitoring, via les connecteurs J6/GPIO1, J7/GPIO2 et J8/GPIO3, respectivement. Les LED haute luminosité déportées du boîtier pour les signalisations REC et CUE doivent être raccordées sur les points du connecteur J5/LED_Out. Les résistances série de limitation de courant qui leur correspondent (R9 à R11) devront éventuellement être ajustées en fonction des LED utilisées.
Le connecteur J9/PS_Out permet de disposer d'une tension de 12 V qui pourra être "exportée" du boîtier, par exemple pour piloter un appareil qui requiert cette tension, au travers des contacts d'un des relais. Un fusible de protection de 630 mA (FU1) est prévu pour parer tout dommage lié à un mauvais câblage externe.
Même chose que le schéma 001, au type de PIC et numéros de broches près.
Version 001b abandonnée / non maintenue.
Même "configuration" que le schéma 001b avec son PIC 18F2520, le code a été adapté pour de nouvelles fonctions.
L'interface à relais utilisée ici (non représentée) est rigoureusement la même que celle montrée dans la partie inférieure du schéma 001b ci-devant. On notera la présence sur le schéma 001c du connecteur supplémentaire ICSP uniquement utilisé pour la programmation du PIC "in situ". Le fait que les lignes d'horloge (PGC) et de données (PGD) se trouvent sur des entrées par ailleurs utilisées ne pose pas de problème ici, car lesdites entrées sont reliées à des boutons-poussoirs ouvert au repos.
L'affectation des sorties est modifiée selon tableau suivant. L'affectation des entrées reste inchangée.
Entrées
/ sorties (In_ / Out_) |
Schéma
001 (PIC 16F628A) |
Schéma
001b (PIC 18F2520) |
Schéma
001c (PIC 18F26K22) |
Entrée In_Inhib_R | RB4 | RB4 | RB4 |
Entrée In_Lock_R | RB5 | RB5 | RB5 |
Entrée In_Cue_G | RB6 | RB6 | RB6 |
Entrée In_Mute_Mon | RB7 | RB7 | RB7 |
Sortie Out_MMC | RA0 | RC0 | RC0 |
Sortie Out_RT | RA1 | RC1 | RC1 |
Sortie Out_MCP | RA2 | RC2 | RC2 |
Sortie Out_LED_R | RA3 | RC3 | RC3 |
Sortie Out_LED_G | RA4 | RC4 | RC4 |
Sortie Out_Cue | RB0 | RB1 | RB1 |
Sortie Out_Mon_Mute | RB3 | RB0 | RB0 |
Dans les faits, ces différences ne sont pas "pénalisantes" dans la mesure où les trois types de PIC n'ont pas le même brochage ni les mêmes dimensions physiques. Il faut dans tous les cas prévoir un circuit imprimé dédié au type de microcontrôleur choisi.
Le circuit proposé ici permet de s'affranchir d'un bloc secteur externe et produit les deux tensions de 12 V et de 5 V requises pour les divers élements du montage. La tension de 12 V n'est requise que pour les relais et voyants (internes et externes). La tension de 5 V est requise par la logique de commande (microcontrôleur PIC). Comme ce type d'alimentation peut être requis pour d'autres montages, j'ai décidée de constituer pour elle un circuit (et un article) à part.
Détails de cette alim en page Alimentation multiple 005.
Si vous n'utilisez que trois relais 12 V de petite puissance, et vue la consommation en courant requise pour le microcontrôleur, il n'est normalement pas nécessaire de mettre des dissipateurs thermiques sur les deux régulateurs de tension de ce bloc alim.
Remarque : sur la version 001c, le régulateur 5 V est placé sur le PCB, une tension de 12 V stabilisée doit être appliquée au montage.
Câblage valable pour les prises MIDI IN, MIDI OUT et MIDI THRU.
La borne 2 est reliée à la masse au niveau des sorties mais pas au niveau des entrées, pour éviter toute boucle de masse entre équipements.
J'ai commencé ce projet en 2012, à une époque où je ne connaissais pas le protocole Mackie. Le temps passé pour rechercher, comprendre et tester mes logiciels m'a demandé de nombreux jours de travail. Il m'a fallu du temps pour comprendre pourquoi Protools lui seul posait problème !
Pour les tests pratiques, j'ai d'abord procédé par "simulation". L'indicateur d'enregistrement n'avait pas encore vu le jour sur sa petite plaque d'expérimentation, alors il fallait bien que je fasse croire à mes outils de test qu'il existait. Pour ce faire, j'ai utilisé mon logiciel MIDI-Test (que j'ai du mettre à jour pour l'occasion) afin de lui permettre d'envoyer des commandes de transports au protocole Mackie (MCP). Une fois cette mise à jour logicielle effectuée, j'ai ressortie ma surface de contrôle NI Kore dont deux encodeurs optiques abîmé par une chute malencontreuse provoquent désormais l'envoi aléatoire de données, ce qui rend l'ustensile peu fonctionnel. Mais suffisant pour mes tests (d'autant que les données envoyées aléatoirement se sont révélées fort utiles pour mettre en évidence la faiblesse de l'interface).
Les tests de simulation se sont révélés concluants. Lecture et reconnaissance parfaite des commandes de transport issues de la surface de contrôle NI Kore configurée en émulation Mackie (et cette dernière reconnait bien les commandes de transport que je lui envoie). Les tests avec le "vrai matériel" ont été ensuite réalisés avec de simples LED pour visualiser l'état des sorties en fonction des messages MIDI reçus (inutile de s'encombrer de relais).
Premier exemplaire de prototype 001 terminé (avec mon interface MIDI 011 pour simplifier le proto), le fonctionnement d'ensemble est validé.
09/01/2012 : malheureusement, tout ne fonctionne pas parfaitement. Si l'indicateur réagit bien aux divers commandes des divers protocoles (RT, MMC et MCP/HUI), cela est vrai quand ne viennent pas s’immiscer trop de messages intermédiaires entre les messages de transport. Mes essais avec ma surface de contrôle NI Kore et mon séquenceur Yamaha QY70 montrent que ça fonctionne très bien quand on se limite à des flux de données "modestes". Mais dès qu'il faut se coltiner les time-codes et autres messages de Control Change répétés, mon indicateur ne suit plus. Il me faut donc travailler plus sérieusement sur le buffer d'entrée (qui est déjà de type circulaire) et sur le filtrage des données reçues. Malgré un fonctionnement mitigé, je met le logiciel à disposition, pour les plus curieux d'entre vous.
Comportement nettement amélioré !
22/03/2020 : la version avec PIC 18F26K22 (schéma 001c) fonctionne nettement mieux que les versions précédentes ! Le système n'est plus perturbé par les flux MIDI volumineux (Timecode ou autres). Le prototype 001c (doté d'un optocoupleur PC900) fonctionne bien avec Cubase et Protools (messages MMC / MCP / HUI).
J'aime bien cette dernière photo, allez savoir pourquoi ;)
Mise au propre du système, réalisation sur circuit imprimé pro.
Le système fonctionne comme le prototype précédent (001c), aucune modification logicielle n'a été apportée entre temps.
Cet indicateur d'enregistrement (001c) a été testé avec un enregistreur 24 pistes Alesis HD24 dont la fonction MIDI Send MMC a été activée.
Pour ces tests, j'ai relié la sortie MIDI OUT de l'enregistreur HD24 sur l'entrée MIDI IN de mon indicateur d'enregistrement et la sortie MIDI THRU de l'indicateur sur l'entrée MIDI IN de l'interface PC avec logiciel MIDI-Test. Je pouvais ainsi visualiser les données sortant de l'enregistreur Alesis avec ou sans MTC (Midi Time Code) et m'assurer que l'indicateur réagissait correctement à tous les messages MMC (Midi Machine Control).
Le fonctionnement de l'indicateur est 100% conforme à celui attendu.
Le fichier binaire compilé (*.hex) du système 001 (PIC 16F628A) est disponible dans l'archive dont le lien suit.
- Logiciel 001 (PIC 16F628A) : disponible mais non finalisé.Indicateur lumineux enregistrement 001 - PIC 16F628A - 08/01/2012
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.
Le PCB version 001 (PIC 16F628A) avait été dessiné en double
face (vue 3D ci-après à gauche), mais n'est
finalement pas exploité.
Le PCB
version 001c (PIC 18F26K22) quant à lui est réalisé et reste maintenu
(vue 3D ci-après à droite).
Si pas besoin de la sortie MIDI Thru, ignorer l'implantation des deux résistances R12 et R13 et du connecteur DIN correspondant. Mais entre nous, il serait dommage de se passer de cette sortie pour si peu...
05/06/2022
- Ajout retours avec enregistreur 24 pistes Alesis HD24.
06/02/2022
- PCB : ajout possibilité d'implanter des relais de
dimensions plus restreintes (non pour une question de place occupée,
mais en raison de l'actuelle difficulté d'approvisionnement des
composants électroniques).
- PCB : ajout photos prototype #2 du circuit version 001c.
16/01/2022
- Création PCB pour version 001c.
22/03/2020
- Nouveau schéma 001c avec PIC
18F26K22, plus robuste face aux volumineux flux de données
MIDI
(augmentation taille buffer d'entrée).
- Ajout indicateur de réception de messages MIDI, sortie Out_Rx sur la
ligne RC5 du PIC.
- Ajout envoi accusés de réception sur la sortie MIDI OUT pour maintien
de la connexion (requis par Protools)
09/01/2012
- Première mise à disposition (schéma 001 avec PIC 16F628A et schéma
001b avec PIC 18F2520).