Dernière mise à jour :
19/03/2017
Présentation
Cette interface MIDI permet d'ajuster le volume d'un signal audio
stéréo niveau ligne, à partir de commandes MIDI (notes, PC ou
CC).
Contrairement à mon
interface
MIDI 010 qui s'appuie sur des potentiomètres numériques,
l'interface décrite ici présente une isolation galvanique totale entre
le circuit de commande MIDI et les entrées/sorties audio. Elle peut
être insérée entre n'importe quelle sortie audio
"basse impédance" (inférieure à 1 kO) et n'importe quelle entrée audio
ligne "moyenne impédance" (10 kO à 100 kO) sans risque de rajouter de
la ronflette (utilisation possible dans la boucle d'effet d'un ampli
guitare, ou en insert console).
Schéma
Le coeur du montage est un microcontrôleur
PIC 18F46K22 cadencé par un quartz de 8 MHz.
Circuit de commande
Le
schéma qui précède montre le coeur du montage qui commande
l'étage
de sortie analogique. Ce dernier est réalisé avec des
optocoupleurs analogiques "asservis" à des convertisseurs
numérique/analogique.
Schéma "Etage de sortie analogique"
non disponible
Circuit de sortie audio
analogique
Fonctionnement général
En fonction de
la configuration spécifiée par l'utilisateur (via les entrées de
configuraion Cfg0 à Cfg7) ce sont des événements de
type NoteOn, CC (Control Change) ou PC (Program Change) qui sont
traduits en variation de volume "physiques". Le réglage de volume est
assuré par des optocoupleurs analogiques placé dans une "boucle
d'asservissement numérique" (disons-le vite).
Modes de fonctionnement
L'interface peut être configurée pour répondre à différents événements
MIDI :
- CFG2=0, CFG1=0, CFG0=0 : Vélocité de note
- Dans ce mode, le réglage de volume est déterminé par la valeur de
vélocité de n'importe quelle note véhiculée dans le canal MIDI spécifié
par les interrupteurs CFG4 à CFG7 (nota 1). Toute note est prise en compte, sans
tenir compte de sa hauteur (pitch).
- CFG2=0, CFG1=0, CFG0=1 : Hauteur de note
- Dans ce mode, le réglage de volume est déterminé par la
hauteur
(pitch) de la dernière note reçue dans le canal MIDI spécifié
par
les
interrupteurs CFG4 à CFG7 (nota 1).
- CFG2=0, CFG1=1, CFG0=0 : Programme Change
- Dans ce mode, le réglage de volume est déterminé par la
valeur
de Program Change reçue dans le canal MIDI spécifié par les
interrupteurs CFG4 à CFG7 (nota 1).
- CFG2=0, CFG1=1, CFG0=1 : Control Change
- Dans ce mode, le réglage de volume est déterminé par la
valeur
de Control Change reçue pour le contrôleur #7 (Volume) véhiculée dans
le canal MIDI spécifié par les
interrupteurs CFG4 à CFG7 (nota 1).
Nota 1 : si CFG3=1, le canal MIDI est pris en compte. Si CFG3=0, le canal MIDI est ignoré.
La configuration est lue lors du démarrage de l'interface, tout
changement de configuration nécessite donc un reset.
Réglage du niveau audio
Le réglage du niveau BF est assuré par des optocoupleurs
analogiques, assemblés de telle sorte qu'il est possible d'obtenir une large plage dynamique et de réglage (0 dB à -63
dB). Variation par pas de 0,5 dB sur la plage 0 dB à -63 dB,
et -80 dB pour la valeur minimale :
- La valeur MIDI 0 correspond à une atténuation
de -80 dB.
- La valeur MIDI 1 correspond à une atténuation de -63.0 dB.
- La valeur MIDI 2 correspond à une atténuation de -62.5 dB.
- La valeur MIDI 3 correspond à une atténuation de -62.0 dB.
- ...
- La valeur MIDI 125 correspond à une atténuation de
-1.0 dB.
- La valeur MIDI 126 correspond à une atténuation de
-0.5 dB.
- La valeur MIDI 127 correspond à une atténuation de
0 dB.
Le taux d'atténuation suit une courbe log créée de toute pièce
pour les besoins de l'interface. Comme les optocoupleurs utilisés sont
loin d'avoir une "réponse" linéaire entre courant d'attaque et
résistance ohmique, j'ai du utiliser deux tables de valeurs
pour obtenir un réglage de volume proportionnel aux données MIDI
reçues. Travail plutôt long et fastidieux, mais qui donne de bons
résultats de proportionnalité.
Auto-calibrage "numérique/opto-analogique"
L'interface
fonctionne bien avec l'ensemble des valeurs numériques utilisées pour
la "transposition analogique" (128 valeurs codées en dur, chacune sur
une échelle de 0 à 16383). Cependant, et pour faire face aux
tolérances des optocoupleurs et obtenir une très grande précision
du taux d'atténuation, j'ai prévu une
procédure de calibrage automatique, qui fait appel au CAN interne
au PIC. Cette procédure de calibrage est très longue (plus d'une heure)
car elle évalue la situation sur plus de 2 millions d'itérations (16384
combinaisons
possibles pour chaque valeur MIDI comprise entre 1 et 126), et
il faut tenir compte de l'inertie des optocoupleurs qui est
loin d'être négligeable. La procédure
d'auto-calibrage reste optionnelle, et n'est à faire qu'une seule
fois, de préférence bien sûr avant la première utilisation de
l'interface.
Entrée MIDI
Adaptation avec optocoupleur PC900.
Sortie MIDI
La sortie MIDI duplique les données appliquées à l'entrée
MIDI, on dispose donc d'un MIDI THRU sur sortie TTL standard.
Alimentation
Un
régulateur de tension de +5 V est prévu directement sur le circuit pour
alimenter le PIC. N'importe quel bloc d'alim du commerce délivrant une
tension de 12 V sous un courant max de 500 mA convient.
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.
Logiciel du PIC
Demande pro, logiciel non disponible sur ce site.
Interface
MIDI 023 - PIC 18F46K22 - 16/03/2017
Circuit imprimé
Non réalisé.
Historique
19/03/2017
- Première mise à disposition.