Electronique > Réalisations > Interfaces > Interfaces MIDI > Interface MIDI 020b - Pro

Dernière mise à jour : 24/04/2022

Présentation

Cette interface MIDI, similaire à l'interface MIDI 020, a été conçue pour "midifier" un synthé analogique ARP OMNI modèle 2480 (49 touches).


interface_midi_020b_pcb_3d_a  interface_commandes_005f_pcb_3d_top  interface_commandes_005f-b_pcb_3d_top  

Elle dispose d'une entrée MIDI et de circuits de commutation analogiques destinés à simuler l'appui sur les touches. Chaque circuit analogique réagit à une note MIDI, sur une plage ajustable (détails dans le texte descriptif). L'interface est construite autour d'un PIC 18F26K22 auquel peuvent être associés différents modèles de commutateurs analogiques.

Avertissement

Les difficultés actuelles d'approvisionnement des composants électroniques (avril 2022) m'ont conduit à concevoir un circuit le plus universel possible, capable de travailler avec différents types de microprocesseurs PIC et différents types de commutateurs analogiques. Pour cette raison, j'ai décidé de scinder le système en deux circuits imprimés : un premier PCB pour l'intelligence, un second PCB pour l'interfaçage avec l'instrument.


Schéma

Le coeur du montage est un microcontrôleur PIC 18F26K22 (ou équivalent) cadencé par un quartz de 8 MHz. La commande des commutateurs analogiques (circuit séparé non représenté) se fait via un bus de liaison série à 3 fils : horloge (Clock), données (Data) et validation (Strobe).

   
interface_midi_020b
Circuit de réception MIDI seul (interface commutateurs analogiques non représentée)

 

Fonctionnement général

L'interface possède une entrée MIDI reliée à un microcontrôleur PIC, et un ensemble de commutateurs analogiques. Quand un événement MIDI de type Note (NoteOn ou NoteOff) se présente à l'entrée, l'interface décode les octets de l'événement et chaque changement d'état (note enfoncée ou relâchée) est enregistré dans une mémoire tampon. Immédiatement après, les commutateurs analogiques qui correspondent aux notes reçues sont mis à jour (ouverts ou fermés) pour refléter l'état des notes reçues. 

L'ensemble est polyphonique, mais il va de soi qu'un synthé monophonique ne peut profiter de cette possibilité. Un buffer circulaire de 1 ko permet de gérer correctement l'arrivée des notes même si elles arrivent en grand nombre et dans un temps court (rappelons au passage que chaque note MIDI - on ou off - est composée de trois octets).


Horloge / base de temps

Pour une question de stabilité en fréquence, l'oscillateur interne du PIC n'est pas utilisée. Les lignes RA7/OSC1 et RA6/OSC2 du PIC sont donc exploitées pour y connecter un quartz de 8 MHz avec deux condensateurs céramiques de faible valeur (22 pF / 63 V) dont le rôle est d'entretenir les oscillations. La PLL x4 du PIC est activée et le logiciel tourne donc en interne à 32 MHz (4 x 8 MHz).


Entrée MIDI

L'entrée MIDI est composée de l'optocoupleur U2 raccordé sur la prise DIN 5 broche J1, via une résistance de limitation de courant (R1) et une diode (D1) qui protège l'optocoupleur en cas d'inversion de polarité des lignes d'entrée de la prise DIN (broches 4 et 5). La sortie de l'optocoupleur permet de récupérer le signal MIDI au format TTL, grâce à la présence de la résistance de charge R2 raccordée au +5 V. Les données MIDI mises en forme aboutissent à l'entrée RC7/RX1 du PIC et sont traitées par l'UART intégré dans ce dernier. Ces données MIDI reçues ne sont traitées que si leur canal MIDI correspond au canal défini par la position des interrupteurs branchés sur les lignes RA0 à RA3 du PIC (canal MIDI 1 à 16 codé en binaire sur 4 bits, valeurs 0 à 15). La LED LED1 s'allume (clignote) lors de la réception des données MIDI. La LED LED2 s'allume quand au moins une note est en cours de jeu (NoteOn), elle ne s'éteind qu'après réception du ou des événements NoteOff correspondants. Tous les commutateurs analogiques sont désactivées (ouverts) si l'interface reçoit un message de "Mode canal" de valeur comprise entre 123 et 127 (All Notes Off).


Conversion MIDI vers commutateurs analogiques

Chaque commutateur analogique s'active sur réception de la note MIDI correspondante : NoteOn = activation de la porte correspondante et NoteOff = désactivation. Comme la norme MIDI prévoit 128 notes et que le clavier qu'on veut midifier en possède moins (ici 49 notes), il est inutile de disposer de plus de commutateurs qu'il n'en faut. J'ai toutefois prévu que l'interface puisse travailler avec un maximum de 88 notes. 

Cette interface est dotée d'une configuration qui permet de définir la première note qui correspond au premier commutateur analogique. Les interrupteurs raccordés sur les lignes RB0 à RB3 du PIC permettent de spécifier à partir de quelle note MIDI l'interface commence à réagir, selon les indications données dans le tableau qui suit.


RB3 RB2 RB1 RB0 Première note traitée
0 0 0 0 C-2
0 0 0 1 F-2
0 0 1 0 C-1
0 0 1 1 F-1
0 1 0 0 C0
0 1 0 1 F0
0 1 1 0 C1
0 1 1 1 F1
1 0 0 0 C2
1 0 0 1 F2
1 0 1 0 C3
1 0 1 1 F3
1 1 0 0 C4
1 1 0 1 F4
1 1 1 0 C5
1 1 1 1 F5

Exemple : on veut que le premier commutateur analogique soit activé sur la note C2, que le deuxième commutateur soit activé sur C#2, le troisième sur D2, etc. Pour ce faire, il faut mettre l'entrée RB3 à 1 (inter fermé) tandis que les entrées RB2, RB1, RB0 doivent être à 0 (inters ouverts). Bien sûr, les interrrupteurs de configuration peuvent être remplacés par de simples straps ou ponts de soudure.

 

Temps de transit et temps de traitement

Les données MIDI arrivent dans le PIC, qui les traite au fil de l'eau pour détecter la présence de notes. A chaque changement d'état d'une note (enfoncement ou relâchement d'une touche du clavier synthé), l'état de tous les commutateurs analogiques est mis à jour, même si un seul évenement Note (on ou off) a été reçu. A partir du moment où une note MIDI a été réceptionnée (3 octets), la sortie correspondante est mise à jour au bout de 700 us (0,7 ms) maximum. On peut comparer ce temps de réaction au temps nécessaire pour transférer les trois octets de la note MIDI dans le câble MIDI, qui lui-même avoisine la milliseconde...


Sortie MIDI

Le schéma fait apparaitre une sortie MIDI qui est facultative. Au démarrage du système, cette sortie délivre une brève note MIDI (Do3) qui permet de s'assurer que le PIC démarre bien et qu'il tourne à la bonne vitesse. Si cette sortie n'est pas souhaitée, il suffit de ne pas la câbler et de ne pas implanter les deux résistances R4 et R5 associées au connecteur J2.


Alimentation

Une source de tension de 5 V est nécessaire pour faire fonctionner la partie "commande". Cette tension est obtenue à partir d'un bloc secteur (tension de sortie comprise entre 8 V et 12V) suivi d'un régulateur de tension intégré (LM7805). Les commutateurs analogiques quant à eux réclament deux tensions de +15 V et de -15 V pour adaptation au synthé ARP objet de cette conception.


Choix d'autres optocoupleurs

Il est possible d'utiliser d'autres optocoupleurs pour l'entrée MIDI, voir page Interfaces MIDI pour plus de détails. 


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.

Prototype

Une simulation sous Proteus a été réalisée avant tests pratiques avec prototype et clavier maître.

  

Logiciel du PIC

Pro - Logiciel non disponible en libre service.

Interface MIDI 020b - PIC 18Fxx - 24/04/2022


Circuits imprimés (PCB)

Réalisés en double face.

Circuit de contrôle

Réalisé en double face, avec emplacement pour les prises MIDI IN et MIDI OUT qui au besoin peuvent être déportées.

  

interface_midi_020b_pcb_components_top

  

Circuit d'interface (commutation touches)

Deux versions ont été développées : une avec les circuits intégrés commutateurs en boîtier DIL24, l'autre avec les circuits intégrés en boîtier SOP24 (CMS). Toutes les alimentations sont externes, des protections contre toute surtension éventuelle sont prévues "sur place".

Version avec circuits intégrés traversants (circuit 005f)

Première version, février 2022. Circuit imprimé réalisé mais non peuplé, faute de disponibilité des composants dans leur version DIL24.

   

interface_commandes_005f_pcb_components_top

  

Version avec circuits intégrés CMS (circuit 005f-b)

Seconde version, avril 2022. Circuit imprimé réalisé, commutateurs analogiques nettement mieux distribués en version CMS SOP24...

      

interface_commandes_005f-b_pcb_components_top 

   

Historique

24/04/2022
- Première mise à disposition.