Electronique > Réalisations > Indicateur lumineux enregistrement 001

Dernière mise à jour : 09/01/2012

Article non terminé, volontairement non référencé dans les sommaires du site


Présentation

Cet indicateur lumineux est conçu pour un usage en studio audio / vidéo (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.

indic_rec_001_pcb_3d_a   indic_rec_001_pnl_front_001a

Il permet d'allumer des voyants très visibles selon des messages MIDI provenant de stations de travail audio équipées de Cubase, Nuendo, ou Protools, selon les protocoles standard RT (temps réel), MMC (MIDI Machine Control) ou MCP/HUI (Mackie Control Protocol). Le système est doté de son propre système d'éclairage à LED et dispose en outre de plusieurs relais qui permettent le raccord à des systèmes d'éclairage déjà installés ou qui établissent des liaisons ou des coupure 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 confirmations de l'extérieur pour pouvoir continuer à envoyer ses messages. L'alimentation s'effectue via secteur 230 V, mais peut aussi provenir d'un bloc d'alimentation du commerce dont la tension de sortie (obligatoirement régulée) est de 12 V. J'ai travaillé sur deux versions :
- Schéma 001 : version avec PIC 16F628A, buffer réception MIDI 64 octets.
- Schéma 001b : version avec PIC 18F2520, buffer réception MIDI 1024 octets.
Les deux 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 deux, aux différences mentionnées près.

Avertissement

Pour l'heure, l'indicateur avec PIC 16F628A 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 d'assez nombreux Control Change) ne sont pour l'instant pas concluants.
09/01/2011 : le logiciel du PIC 18F2520 est terminé et la simulation est OK, mais je n'ai pas encore fait de proto avec ce circuit. J'ai un peu plus d'espoirs avec ce dernier.

Schéma 001 - version avec PIC 16F628A

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

indic_rec_001

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. C'est peut-être un peu ambitieux mais je ne ferais de tests avec des quartz 4 MHz et 8 MHz que si je dispose d'un temps suffisant (au niveau simulation c'est OK mais il faut voir en situation réelle).

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.

indic_rec_001_midi_thru

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". 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 acceptées sont :
(*) Pour l'heure, uniquement testé avec une petite surface de contrôle NI Kore avec é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 simple 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é.
Usage possible de la commande In_Lock_R : permettre à celui qui est aux manettes de faire croire qu'un enregistrement est en cours (pour éviter d'être dérangé entre deux prises par exemple).

Blocs d'éclairage
On veut ici disposer d'une indication lumineuse à trois états :
On peut pour cela opérer de deux façons différentes : usage de trois voyant séparés rouge, vert et jaune, ou usage d'un voyant bicolore rouge / vert qui quand ses deux élements sont allumés affiche du jaune. C'est cette deuxième solution qui est retenue. Le boîtier principal dispose d'une signalétique locale (LED bicolore standard anode commune ou deux LED séparées) et de sorties permettant le raccord direct de LED haute luminosité, qui peuvent être déportées de plusieurs mètres sans aucun soucis (laison 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. 

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 même 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 même sortie repasse à l'état bas sur réception d'une commande MIDI de type STOP. Selon la même philosophie de fonctionnement, la sortie Out_HUI change d'état lors de la réception de messages MIDI suivant le protocole Mackie. Ces trois sorties sont de type logique TTL 5 V, la connexion directe d'une LED (avec bien sûr une résistance série de limitation de courant) est possible, et pourra être utile pour visualiser le type de messages reçus. Les autres sorties se font sur relais qui disposent toutes de points "Commun" et de points "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 (non nécessaire si vous optez pour des modèles classiques 20 mA).
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 - version avec PIC 18F2520

Même chose que le schéma 001, à peu de choses près.

indic_rec_001b

Différences entre schéma 001 (PIC 16F628A) et schéma 001b (PIC 18F2520)
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)
Entrée In_Inhib_R RB4 RB4
Entrée In_Lock_R RB5 RB5
Entrée In_Cue_G RB6 RB6
Entrée In_Mute_Mon RB7 RB7
Sortie Out_MMC RA0 RC0
Sortie Out_RT RA1 RC1
Sortie Out_MCP RA2 RC2
Sortie Out_LED_R RA3 RC3
Sortie Out_LED_G RA4 RC4
Sortie Out_Cue RB0 RB1
Sortie Out_Mon_Mute RB3 RB0

Dans les faits ces changements ne sont pas "pénalisants" dans la mesure où les deux 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 autre circuit imprimé.

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. Tension de 12 V pour les relais et voyants (internes et externes) et tension de 5 V pour la logique principale (microcontrôleur). Comme ce type d'alimentation peut être requise pour d'autres montages, j'ai décidée de constituer pour elle un circuit à part.

alim_multiple_005 alim_multiple_005_pcb_3d_a

Détails de cette alim en page Alimentation multiple 005.
Si vous n'utilisez que trois relais 12 V de petite puissance, et vu 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.

midi_din_cablage_001

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

Configuration pour Protools (V9)
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...

Procédures tests et développement

J'ai passé pas mal de temps à débroussailler les données que je ne connaissais pas très bien. Et comme de bien entendu j'ai fait plusieurs erreurs qui m'ont retardées. Mais c'est bien comme ça que ça marche, non ? Pour limiter le nombre d'heures perdue pour rien, j'ai d'abord procédé à quelques recherches, documentations sur les divers protocoles MIDI (j'en connaissais une partie seulement), fouine dans les forums de discussion. Parce que bien sûr, je ne suis pas le seul à chercher comment fonctionnent ces petites bêtes qu'on nomme contrôleurs ou accessoires de studio.

Simulation pour commencer
Pour les tests pratiques, j'ai d'abord procédé par "simulation". L'indicateur d'enregistrement n'a pas encore vu le jour sur sa petite plaque alors il fallait bien que je fasse croire à mes outils de test qu'il existait. Pour ce faire, rien de bien compliqué, 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.

indic_rec_001_tests_001a indic_rec_001_tests_001b indic_rec_001_tests_001c

Tests de simulation logiciels concluants. J'arrive bien à lire et reconnaître les commandes de transport venant 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. Bref, ça avance. Les tests matériels seront réalisés le plus simplement possible. Je ne vais pas m'encombrer de relais puisque de simples LED suffiront pour visualiser l'état des sorties en fonction des messages MIDI reçus.

Débugage et partage des essais
Premier exemplaire de prototype terminé (avec utilisation de mon interface MIDI 011 pour simplifier), le fonctionnement d'ensemble est validé.

indic_enr_001_proto_001a

Malheureusement, tout ne fonctionne pas parfaitement pour le moment. Si l'indicateur réagit parfaitement 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 côté buffer d'entrée (qui est déjà de type circulaire) et filtrage des données reçues. Malgré un fonctionnement mitigé, je met le logiciel à disposition, pour les plus curieux d'entre vous. Je ne compte pas faire tous les tests suivants tout seul, ce serait idiot de ma part car tout le monde à des besoins différents. Il va de soi que l'expérience globale apportée par les autres sera bien plus enrichissante, je suis loin d'avoir l'expérience requise pour proposer du premier coup une machine "révolutionnaire" (aurait-on besoin de ça pour mieux bosser ?).

Logiciel du PIC

Le fichier binaire compilé (*.hex) est disponible dans l'archive dont le lien suit.
Logiciel 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.

Circuit imprimé

En cours de réalisation. En cours parce qu'en double face c'est déjà fini, mais j'aimerais le proposer en simple face. Je crois que pour cela je vais devoir écarter les composants et ajouter quelques straps...

indic_rec_001_pcb_composants

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

09/01/2012
- Première mise à disposition