Electronique > Réalisations > Interfaces > Norme MIDI > Interfaces MIDI

Dernière mise à jour : 09/10/2011

Quelques interfaces réalisées ou en cours de développement

Quelques interfaces MIDI à base de composants traditionnels ou à base de microcontrôleur.
MIDI Merger 001 - Version "non intelligente", sans composant programmable.
MIDI Merger 002 - Version "non intelligente" et toujours sans composant programmable, mais améliorée par rapport à la version 001.
Distributeur MIDI 001 - 1 entrée MIDI, 4 sorties MIDI (MIDI Thru).
Interface MIDI 001 - Une prise MIDI IN, deux prises MIDI OUT et une prise MIDI THRU, sur un port joystick.
Interface MIDI 002a - Envoi de notes MIDI lors d'activation de boutons poussoir - 10 entrées logiques, 1 sortie MIDI OUT.
Interface MIDI 002b - Commandes logiques sur réception de notes MIDI - 1 entrée MIDI IN, 8 sorties logiques.
Interface MIDI 003 - 8 entrées analogiques, 64 entrées logiques, 1 sortie MIDI OUT, 1 entrée MIDI IN pour la configuration. Non fini
Interface MIDI 004 - 32 entrées logiques, 1 sortie MIDI OUT, 1 entrée MIDI IN pour la configuration. Non fini.
Interface MIDI 005a - 2 entrées logiques START / STOP, 1 sortie MIDI OUT.
Interface MIDI 005b - 1 entrée MIDI IN, sorties logiques START / STOP sur commandes MMC et RT.
Interface MIDI 006 - Générateur MIDI Note On / Off ou Control Change, 4 entrées logiques, 1 sortie MIDI OUT.
Interface MIDI 007 - Commandes logiques sur réception de notes MIDI - 1 entrée MIDI IN, 128 sorties logiques.
Interface MIDI 008 - Filtre MIDI pour supprimer les messages de type Active Sensing - 1 entrée MIDI IN, 1 sortie MIDI OUT.
Interface MIDI 009 - Emission de plusieurs messages Control Change sur réception de Note On pour pilotage jeux lumière DMX - 1 entrée MIDI IN, 1 sortie MIDI OUT.
Interface MIDI 010 - Commande de huit potentiomètres numériques MCP41xxx via notes MIDI, à base de PIC 16F628A.
Interface MIDI 011 - Interface simple développée comme extension pour ma platine de développement PIC EasyPIC.
Contrôleur MIDI 001 - 7 entrées analogiques, 1 sortie MIDI OUT, 1 entrée MIDI IN pour la configuration. Non fini.
Contrôleur MIDI 002 - 16 entrées logiques, 1 sortie MIDI OUT, 1 entrée MIDI IN pour la configuration. Non fini.
Contrôleur MIDI 003 - 128 boutons poussoir, 1 sortie MIDI OUT, génération de notes MIDI, avec PIC 16F628A.

Brochage des prises MIDI

Le genre de question qu'on se pose dès qu'on n'a pas bidouillé depuis un certain temps avec les fameuses prises...

midi_din_cablage_001

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.

Principe général des liaisons MIDI

Les liaisons MIDI sont des liaisons de type série : on y transmet des informations binaires - informatiques - sur un "fil" unique. Afin d'éviter tout rebouclage de masse entre deux équipements reliés d'une part par un cable audio et d'autre part par un câble MIDI, ce dernier est branché sur une interface électriquement isolée du reste de la circuiterie de l'équipement. Cette isolation s'effectue grace à un opto-coupleur, qui est un composant qui intègre une led et un "interrupteur électronique" (photo-transistor par exemple) qui se ferme en présence de lumière. Les données MIDI transmises par un câble MIDI sont bien électriques (on n'utilise pas de la fibre optique), mais une barrière optique est mise en oeuvre à l'arrivée (prise MIDI IN), dans l'équipement récepteur. Ce type d'isolation optique n'existe pas du côté de l'émetteur (prise MIDI OUT), cela n'étant nullement nécessaire de le faire aux deux bouts. Pour ce qui est de la norme de transmission, merci de vous reporter à la page Norme MIDI.

Construire soi-même une interface MIDI

Cela n'est pas compliqué du tout d'un point de vue matériel, cela peut l'être un peu plus côté logiciel, puisqu'un minimum de connaissances de la norme MIDI doit être intégrée et comprise (ceci dit, elle n'est guère complexe à comprendre). Cette connaissance n'est pas du tout requise si on veut construire un distributeur MIDI, lequel ne touche absolument pas aux informations transmises (exemple). Si par contre un traitement informatique est voulu (filtrage ou action sur réception de certains évenements par exemple), il faut savoir de quoi il en retourne et se taper la norme (exemple). Dans tous les cas, il faut s'adapter à la norme électrique pour tout ce qui touche au matériel, à savoir :
- Côté émission : délivrance de signaux logiques à la norme TTL (0 V et +5 V).
- Côté réception : mise en oeuvre d'une isolation galvanique avec un opto-coupleur.
En procédant ainsi, les deux équipements émetteur et récepteur sont totalement isolés l'un de l'autre d'un point de vue électrique, en ce qui concerne la liaison MIDI tout du moins.

interfaces_midi_out_001a interfaces_midi_in_001a

- MIDI OUT - Broche 2 = Masse
- MIDI OUT - Broche 4 = +5 V (via résistance 220 ohms)
- MIDI OUT - Broche 5 = Sortie données (via résistance 220 ohms)
- MIDI THRU - Broche 2 = Masse
- MIDI THRU - Broche 4 = +5 V (via résistance 220 ohms)
- MIDI THRU - Broche 5 = Sortie données (via résistance 220 ohms)
- MIDI IN - Broche 2 = non reliée
- MIDI IN - Broche 4 = Anode optocoupleur d'entrée (via résistance 220 ohms)
- MIDI IN - Broche 5 = Cathode optocoupleur d'entrée

Remarque : le niveau logique actif correspond à l'état logique bas (0 V), et l'état logique de repos correspond à l'état logique haut (+5 V). Si le signal appliqué sur la broche 5 de la prise MIDI OUT est à l'état bas (actif), la led de l'opto-coupleur du récepteur s'allume, ce qui fait conduire l'élement photo-sensible qui lui est associé, et on retrouve donc un signal logique bas en sortie de l'opto-coupleur.

Choix de l'opto-coupleur pour l'entrée MIDI IN

Quand on cherche sur le net, on trouve plein d'interfaces MIDI, et l'opto-coupleur placé à l'entrée MIDI IN n'est pas toujours le même. Et quand on retrouve le même dans deux schémas différents, ce n'est pas forcement avec les mêmes composants alentours. Il existe plusieurs types d'opto-coupleurs et tous ne conviennent pas pour transmettre les données MIDI, tout simplement parce qu'ils ne sont pas assez rapides. Les données MIDI étant transmises à une vitesse de 31,250 Kbauds (31,25 kHz maxi) avec des durées d'élements de base (bits) de 32 us, il faut que l'optocoupleur accèpte de travailler au moins trois ou quatre fois plus vite, c'est à dire au moins à 100 kHz ou autrement dit présenter des temps de transition qui ne dépassent pas 10 us. Si l'opto-coupleur est mal choisi, les données peuvent être complètement massacrées et inexploitable, ou pire passer de temps en temps seulement (rien de pire qu'un problème intermittant). Il est très important que les données MIDI en sortie de l'opto-coupleur soient "propres", avec une amplitude correcte et avec des fronts montants et descendants les plus raides possibles. Possédant dans mon stock de composants plusieurs types d'opto-coupleurs, je me suis un peu penché sur la question.

Méthodologie des tests
Un bien grand mot juste pour dire comment j'ai fait ;-) Dans un premier temps, j'ai regardé ce que j'avais comme opto-coupleurs, j'ai noté leur référence et ai cherché de la doc technique à leur sujet (Datasheet). Les fabricants donnent en effet très souvent quelques exemples d'applications pratiques, fort utiles pour démarrer. J'ai donc fait des tests avec les valeurs par défaut, et j'ai regardé ce qui se passait quand je m'éloignais des valeurs préconisées. Deux types de contrôle pour cela :
- un contrôle de "bonne transmission" avec un opto-coupleur directement relié à un transmetteur TTL (logiciel MIDI-Test pour générer manuellement des évenements de type NoteOn, et réception des notes "traitées" sur mon PC équipé de Cubase, via interface MIDI intégrée à mon interface audio RME Fireface 800).
- un contrôle de la forme des signaux numériques en sortie de l'opto-coupleur (logiciel MIDI-Test pour générer automatiquement - et rapidement - des évenements de type NoteOn, et visualisation des notes sur mon oscilloscope numérique de poche).

Types d'opto-coupleurs
Les opto-coupleurs que l'on peut utiliser pour une entrée MIDI peuvent être de type "6 pattes" ou "8 pattes", deux types de boitiers dont le brochage est apparement standardisé.

Exemple de câblage avec boitier "6 pattes"

interfaces_midi_opto_in_001a
Interface d'entrée MIDI avec CNY17-2

Exemple de câblage avec boitier "8 pattes"

interfaces_midi_opto_in_002a
Interface d'entrée MIDI avec 6N137

D'autres auteurs ont aussi utilisés avec succès les modèles listés ci-dessous, avec les deux impératifs suivants :
- adapter le cablage en conséquence (tous les optocoupleurs n'ont pas le même brochage mais globalement on s'y retrouve)
- modifier la valeur de la résistance de charge en sortie de l'optocoupleur (R2 sur les schémas ci-avant).
- pour les opto-coupleurs à 8 pattes, modifier la valeur de la résistance de polarisation (R3 sur le schéma ci-avant), quand elle existe.

Montages utilisés pour les tests
Les deux montages suivants (un pour opto-coupleurs 6 pattes et un pour opto-coupleurs 8 pattes), basés sur les deux précédents, m'ont permis de déterminer les meilleurs valeurs à donner aux résistances de charge (R2) et de polarisation (R3, quand cette dernière existe). Pour cela, j'ai remplacé les deux résistances par un couple résistance + potentiomètre, la résistance R3 (avec son potentiomètre) pouvant même être totalement déconnectée via un interrupteur en série. Donc :
- à la place de R2 seule, R2 + RV1
- à la place de R3 seule, R3 + RV2

interfaces_midi_tests_001a

Pour chaque opto-coupleur testé, envoi en continu de données MIDI sur l'entrée MIDI IN (avec le logiciel MIDI-Test), et mesure de l'amplitude du signal numérique en sortie de l'optocoupleur sur l'écran de mon oscilloscope, pendant ajustage du ou des potentiomètres (RV1 et RV2). En même temps, analyse de la "forme" des signaux.

Valeurs relevées sur divers schémas, et tests
Le tableau qui suit résume les valeurs couramment rencontrées dans les divers schémas, j'ai noté en vert les valeurs que j'ai testées et qui m'ont donné les meilleurs résultats.

Tests d'opto-coupleurs pas finis !
Pour l'instant, j'ai eu l'occasion de tester les CNY17-2, les TIL111, les MCT2, les 4N33, les 6N139 et les 6N137. J'ai pû obtenir des formes de signaux plus "propres" (en sortie des opto-coupleurs) avec des câbles de grande longueur (en entrée), en utilisant les CNY17-2 et 6N137. Des ajustements ont été nécessaires pour le 6N137, les valeurs indiquées sont celles qui m'ont données satisfaction. La vitesse à laquelle l'opto-coupleur accepte de travailler dépend étroitement du courant qui circule dans la LED côté émetteur et dans le courant collecteur du transistor de sortie quand bien sûr il s'agit d'un transistor. Plus ces courants sont élevés et plus la vitesse est sensée pouvoir grimper haut. Côté LED on ne fait rien de particulier puisqu'on se contente d'utiliser la résistance de limitation de courant standard de 220 ohms. Côté sortie opto en revanche, on est plus libre de faire les tests qu'on veut.

Optocoupleur
BoitierVitesseRésistance de charge R2
Résistance polarisation R3
6N135
8 broches-3,3 kO
-
6N136
8 broches-3,3 kO
-
6N137
8 broches1 us270 à 820 (270)
5,6 kO (5,6 kO)
6N138
8 broches40 us270 à 1,2 kO
5,6 kO
6N139
8 broches4 us270 à 3,3 kO (270)
Aucune résistance
TIL111
6 broches2 us1 kO
< sans objet >
TIL112
-
-680 à 820
-
4N26
-
300 kHz1 kO -
4N27
-
300 kHz1 kO -
4N28
8 broches-1 kO Aucune résistance
4N33
-
30 kHz1 kO -
4N35
-
150 kHz820
-
4N36
-
15 kHz820
-
CNX356 broches2 us--
CNX36
6 broches
2 us820
-
CNY17-2
6 broches5 us1 kO à 4,7 kO (1,2 kO)
< sans objet >
CNY80
-
-820
-
PC900
-
-4,7 kO
-
MCT26 broches150 kHz--
MCT46 broches300 kHz--
MCT68 broches150 kHz--
SL55006 broches100 kHz1 kO-

Sans grande surprise, on constate une perte de données MIDI quand les signaux numériques en sortie de l'opto-coupleur ne sont plus "aux normes", c'est à dire quand le niveau haut s'éloigne trop de la valeur +5 V, et quand le niveau bas s'éloigne trop de la valeur 0 V. Mais les constats faits ici ne sont pas forcement tout à fait représentatifs du comportement des instruments que vous avez chez vous, tout dépendant évidement du type d'opto-coupleurs qu'ils intègrent et de la façon dont ils sont mis en oeuvre...

Ouvrage de référence MIDI qui me sert bien souvent...

Un livre pas bien épais mais vraiment très bien écrit.

interfaces_midi_livre_midi_pratique
Le MIDI pratique - Jean-Paul Verpaux

Il ne donne pas beaucoup d'exemples pratiques au niveau des optocoupleurs, mais décrit de façon fort détaillée et très claire comment sont constitués les messages MIDI. Je ne sais pas si ce livre est encore disponible à la vente.