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.
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.
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.
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
Pro - Demande pro, logiciel non disponible.
Historique
17/07/2016
- Première mise à disposition.