Cette interface MIDI, similaire à l'interface MIDI 020, a été conçue pour "midifier" un synthé analogique ARP OMNI modèle 2480 (49 touches).
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.
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).
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).
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).
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).
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 |
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...
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.
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.
Il est possible d'utiliser d'autres optocoupleurs pour l'entrée MIDI, voir page Interfaces MIDI pour plus de détails.
Câblage valable pour les prises MIDI IN, MIDI OUT et MIDI THRU.
Une simulation sous Proteus a été réalisée avant tests pratiques avec prototype et clavier maître.
Pro - Logiciel non disponible en libre service.
Interface MIDI 020b - PIC 18Fxx - 24/04/2022
Réalisés en double face.
Réalisé en double face, avec emplacement pour les prises MIDI IN et MIDI OUT qui au besoin peuvent être déportées.
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".
Première version, février 2022. Circuit imprimé réalisé mais non peuplé, faute de disponibilité des composants dans leur version DIL24.
Seconde version, avril 2022. Circuit imprimé réalisé, commutateurs analogiques nettement mieux distribués en version CMS SOP24...
24/04/2022
- Première mise à disposition.