Electronique > Réalisations > Interfaces > Interfaces MIDI > Indicateur tempo MIDI 003 [Pro]

Dernière mise à jour : 17/07/2016

Présentation

A partir d'une entrée audio ligne, cet indicateur de tempo MIDI marque les temps d'une musique rythmée par des basses.

indicateur_tempo_003_pcb_3d_a

Ah, encore un... Oui, sauf que là je ne me suis pas contenté d'utiliser un filtre passe-bas suivi d'une interface de puissance pour allumer une ampoule. Pourquoi ? Parce qu'en plus de cette fonction de base (se baser sur le contenu des basses fréquences pour extraire la base rythmique) le système devait afficher le tempo en cours (affichage numérique 3 digits) et surtout continuer de délivrer des impulsions quand les fréquences basses disparaissent subitement du signal d'entrée. Le schéma et les explications de ce projet sont fournis, mais pas le logiciel (demande pro).

Schéma

Le filtrage BF est analogique (pas de DSP) et le coeur de traitement des infos rythmiques s'appuie sur un PIC 18F25K22 dans lequel réside un OS temps réel coopératif (C-RTOS). J'aurais certes pu utiliser un dsPIC ou autre composant infernal pour simplifier la partie hard (et compliquer le soft) mais je ne me sentais pas assez en forme pour cette épreuve de fin d'année scolaire.

electronique_indicateur_tempo_004

Fonctionnement général
Quand on est technicien chevronné (ou pas) et qu'on veut en mettre plein la vue aux débutants, il est d'usage d'employer des mots savants que peu risquent de connaître. Voici donc comment on pourrait décrire la fonction de base du montage qui consiste à garder l'information de rythme quand les basses disparaissent : "Boucle à verrouillage de phase (PLL) à fréquence centrale automatique" (et là, je tire la langue avec dédain pour conclure).
Dit autrement : le logiciel du PIC mesure le temps qui s'écoule entre deux informations rythmiques (coups de basse). Il le fait de manière répétée, pour établir une moyenne glissante sur 4 mesures (5 tops rythmiques). Cette valeur moyenne est conservée en mémoire et est simplement utilisée pour venir à la rescousse si les tops rythmiques (basses) viennent à disparaître (fonctionnement en roue libre). Quand les tops "externes" (coups de basse) reviennent, le logiciel se resynchronise immédiatement dessus. Simple, non ? Oui, dans le principe...

Filtre passe-bas d'entrée
Le signal audio filtré et traité par le montage doit provenir d'une sortie "ligne", qui généralement délivre un signal audio dont l'amplitude est de quelques centaines de mV (sortie principale, AUX ou FxSend d'une table de mixage, par exemple). Le filtre passe-bas utilisé ici a pour but de diminuer fortement l'amplitude électrique des signaux dont la fréquence est supérieure à 200 Hz. Pas besoin d'un filtre d'ordre très élevé, mais il faut tout de même une bonne atténuation des sons qui ne nous intéressent pas (ce qui se trouve au-dessus des basses) ce qui m'a conduit à opter pour un filtre d'ordre 4 (24 dB/octave). Dans la pratique, il faut tout de même que la musique utilisée ne comporte pas trop de signaux d'amplitude trop élevée au-delà de 200 Hz. Dans la musique normale en effet, le plus gros de l'énergie sonore se situe dans le bas du spectre. Mais avec les musiques "tout synthé" et dont la dynamique est compressée à outrance, l'ensemble du spectre est rempli à ras-bord, et cela peut parfois poser problème. Pour faire fonctionner ce montage avec un microphone, il faut le faire précéder d'un préamplificateur pour microphone, et éventuellement d'un système de régulation automatique du gain (CAG, ou pourquoi pas compresseur de modulation rustique).

Traitement logiciel
Le descriptif qui a été fait ci-avant peut laisser penser que le traitement logiciel se réduit à compter des impulsions pour mesurer le temps qui s'écoule entre deux tops rythmiques. Si cette façon de faire constitue bien la base de fonctionnement, cela ne suffit pas. Il fallait en outre :
- disposer d'une sortie MIDI;
- disposer d'une sortie bip audio;
- faire la distinction entre un ralentissement de tempo et sa disparition totale;
- interdire tout traitement d'impulsion d'entrée pendant un certain temps après chaque déclenchement (hold-off).
Ces fonctions ne sont pas bien compliquées - au grand dam du technicien chevroné qui du coup ne sait plus quoi faire pour mettre en avant sa toute puissance - mais il faut bien les traduire en fonctions logicielles. Ce qui est long, difficile, fastidieux et épuisant (rien que de l'écrire, j'ai envie de sortir une glace et de faire une sieste).

Affichage numérique du tempo
L'affichage du tempo est réalisé avec 3 afficheurs 7 segments traditionnels à cathode commune, en mode multiplexé (détails). La cathode des afficheurs est "activée" via des transistors en collecteur ouvert inclus dans un même boîtier ULN2803, eux-mêmes sont pilotés par le PIC. Le schéma montre quatre afficheurs, mais l'affichage du tempo n'en réclame que trois. Les quatre derniers segments sont en fait utilisés pour allumer des LED d'état.

Sortie principale
A chaque détection de basse rythmique, la sortie Tempo0 du PIC délivre une impulsion de durée 50 ms. Cette sortie peut être employée pour allumer une simple LED, une LED de puissance via un étage d'amplification de courant ou une lampe 230 V via un optotriac suivi d'un triac (exemple). J'ai pour ma part profité d'entrées libres sur le ULN2803 (utilisé pour l'affichage numérique) pour dupliquer la sortie principale en une seconde avec sortie collecteur ouvert (500 mA max).

Sortie MIDI
La sortie MIDI correspond à la sortie Tx de l'UART1 du PIC. Le côté matériel se résume au câblage d'une prise DIN 5 broches et deux résistances de 220 ohms (R13 et R14). A la mise sous tension, le PIC délivre une unique note MIDI et la LED LED1 s'allume brièvement, pour confirmer que le logiciel du PIC démarre bien. Une fois le programme démarré, la sortie MIDI délivre une note MIDI La3 de durée 100 ms à chaque "impulsion" de tempo.

Sortie sonore
La broche RC2 (libélé "Sound" sur le schéma) délivre une succession d'impulsions propres à produire un son audible. Cette sortie peut être reliée à un petit HP à travers une résistance d'une centaine d'ohm, ou être reliée directement à un transducteur piezo (au repos la sortie est à l'état logique bas). Il va de soi que la puissance de sortie est trop faible pour un usage en environnement sonore élevé, c'est pourquoi il est également prévu une sortie ligne qui pourra être raccordée sur un ampli externe ou sur une entrée ligne de table de mixage (In-Line, Aux, FxReturn, etc).

Oscillateur PIC
L'utilisation d'un quartz externe de 8 MHz est justifié par la présence d'une sortie MIDI, qui est une liaison série dont la vitesse de transmission doit être précise et surtout stable. Et puis comme il est également question de mesurer des temps à la milliseconde près, ce choix n'est pas un luxe.

Alimentation
Un régulateur de tension de +5 V est prévu directement sur le circuit (U101) ce qui permet d'alimenter ce montage avec n'importe quel bloc d'alimentation secteur qui délivre une tension comprise entre +9 V et +15 V. La consommation n'est pas très élevée et l'emploi d'un dissipateur thermique pour le régulateur n'est pas justifié. La diode D101 n'est pas indispensable mais vivement conseillée, les blocs secteurs du commerce permettant parfois d'inverser la polarité de la tension de sortie. Il serait dommage de vous trouver dans cette situation fâcheuse qui n'arrive qu'aux autres. Si vous disposez déjà d'une alimentation de +5 V, alors vous pouvez supprimer tous les composants relatifs à cette section, à savoir D101, D102, C101 à 103 et bien sûr U101. Notez que l'alimentation des parties logique et analogique sont communes, avec toutefois un découplage entre les deux assuré par le couple D102+C103. Façon de faire pas idéale en hi-hi, mais suffisante pour la présente application.

Procédure de réglage
La procédure n'est pas très compliquée. Il suffit d'appliquer une source sonore riche en "boom boom boom" à l'entrée Audio_In, et d'en ajuster le niveau (à la source) pour que la sortie Tempo0 marque le tempo (raccorder au moins une LED pour les tests, n'est-ce pas). Le marquage du tempo entrant est également visualisé par le segment "a" du quatrième afficheur numérique.

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 de la sortie MIDI mais pas au niveau de l'entrée, ce qui nous fait une belle jambe puisqu'il n'y a pas d'entrée MIDI.

Circuit imprimé

Non réalisé par mes soins.

Logiciel du PIC

Demande pro, logiciel non disponible.

Historique

17/07/2016
- Première mise à disposition.