Electronique
> Réalisations
> Indicateur lumineux enregistrement 001 - Pro
Dernière mise à jour :
22/03/2020
Présentation
Cet indicateur lumineux est conçu pour un usage en studio
d'enregistrement (post-production audio, doublage) 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 maintenu
-
Schéma 001b
: version avec PIC 18F2520, buffer réception MIDI 1024 octets -
plus maintenu
-
Schéma 001c
: version avec PIC 18F26K22, buffer réception MIDI 2048 octets -
maintenu -
Pro
Les trois schémas ont une structure rigoureusement identique,
il n'y a que le type de microcontrôleur qui change. Le texte descriptif
est donc valable pour les trois systèmes, aux différences mentionnées
près.
Avertissement
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,
code 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 pour l'heure ce système qui est
maintenu et bénéficiera d'un suivi. Projet passé en statut Pro,
logiciel non disponible.
Schéma 001 - avec PIC 16F628A ou 16F648A
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.
Oscillateur de référence
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.
Entrée MIDI et sortie MIDI Thru
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 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.
Sortie MIDI Out
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.
Analyse des données MIDI reçues
Les données de transport acceptées par ce système sont les suivantes :
- Informations temps réel standard (un seul octet) - OK
- Informations temps réel MMC (trame
sysex) - OK
- Informations au protocole Mackie MCP/HUI - OK (*)
(*) Uniquement testé (avec succès) avec une surface de
contrôle
NI Kore supportant l'émulation Mackie.
Inhibition et forçage des sorties logiques
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).
- Entrée
In_Inhibit_R (broche RB4 du PIC) : si
cette entrée est activée (broche RB4 reliée à la
masse), alors la sortie Out_LED_R (voyant rouge) reste
désactivée quelque soient les messages MIDI reçus.
- Entrée
In_Lock_R (broche RB5 du PIC) : si
cette entrée est activée (broche RB5 reliée à la
masse), alors la sortie Out_LED_R (voyant rouge) reste activée
quelque soient les messages MIDI reçus.
- Entrée
In_Cue_G (broche RB6 du PIC) : si
cette entrée est activée (broche RB6 reliée à la
masse), alors la sortie Out_Cue (voyant Cue)
reste activée quelque soient les messages MIDI reçus.
- Entrée
In_Mute_Mon (broche RB7 du PIC) : si
cette entrée est activée (broche RB7 reliée à la
masse), alors la sortie Out_Mute_Mon (Mute Monitoring)
reste activée quelque soient les messages MIDI reçus.
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é.
Usage possible de la commande In_Lock_R : permettre à
celui qui est aux manettes de faire croire qu'un enregistrement est en
cours alrs que ce n'est pas le cas (pour éviter d'être dérangé entre
deux prises par exemple).
Blocs d'éclairage
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)
:
- RECORD
(enregistrement) = rouge fixe
- RECORD ARM
(enregistrement armé) = rouge clignotant - Pas encore implémenté
- PLAY
(lecture) = Vert
- STANDBY
(pause) = Jaune
- STOP
(arrêt) = <éteint>
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 ;)
Exploitation des sorties
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 :
- PLAY
: éclairage en Vert
(LED verte allumée, LED rouge éteinte)
- STOP
: éclairage en Jaune
(LED verte allumée, LED rouge allumée)
- REC
: éclairage en Rouge
(LED verte éteinte, LED rouge allumée)
Toutes
ces 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.
Schéma 001b - avec PIC 18F2520
Même chose que le schéma 001, au type de PIC et numéros de broches près.
Schéma 001c - avec PIC 18F26K22
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.
Extensions prévues :
- ROUGE clignotant en mode RECORD ARM (quand l'information
est fournie)
- Ajout de 6 ou 8 sorties logiques configurables à la demande
(via envoi d'informations MIDI spécifiques)
Différences entre schéma 001 (PIC 16F628A), schéma 001b (PIC
18F2520) et schéma 001c (PIC 18F26K22)
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.
Alimentation secteur
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.
Brochage des prises MIDI
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.
Configuration du logiciel hôte (Cubase / Protool)
Les procédures de configuration données ici s'appliquent seulement à
Cubase et Protools. Pour les autres systèmes, merci de
consulter le manuel utilisateur.
Configuration pour Cubase (V6.5)
Appuyer sur le bouton In_Inhib_R en même temps que l'équipement est mis
sous tension. La LED REC clignote deux fois. Cette opération n'est
requise qu'une seule fois puisque le choix est conservé en EEProm.
Config. Cubase...
non décrite
Configuration pour Protools (V9.0.5)
Appuyer sur le bouton In_Lock_R en même temps que l'équipement est mis
sous tension. La LED REC clignote trois fois. Cette opération n'est
requise qu'une seule fois puisque le choix est conservé en EEProm.
Config. Protools...
non décrite
Procédures de tests et développement
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 !
Simulation pour commencer
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).
Débugage et partage des essais
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, là 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.
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 ;)
Logiciel du PIC
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
Logiciel 001b : plus
maintenu
Logiciel 001c :
Pro - non disponible en libre
téléchargement
Si
vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à
utiliser, merci de consulter la page
PIC - Sources.
Circuit imprimé (PCB)
La version 001 (PIC 16F628A) avait été
réalisée en double face... mais ne sera finalement pas exploitée. En
attendant la version 001c...
Remarques
Si pas besoin de la sortie MIDI Thru, ignorer l'implantation des deux
résistances R12 et R13. Mais entre nous, il serait dommage de se passer
de cette sortie pour si peu...
Historique
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).