Dernière mise à jour :
21/07/2024
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.
MIDI
Merger 003
- Version "intelligente", 2 entrées et deux sorties, avec PIC
18F46K22.
MIDI Splitter 001 - Configurable pour notes et autres événements MIDI, A base de PIC 18F46K22.
Distributeur
MIDI
001 - 1 entrée MIDI, 4 sorties MIDI (MIDI Thru).
Distributeur
MIDI
001d - 1 entrée MIDI, 16 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 008b - Filtre MIDI sur numéro de canal et messages Active Sensing - 1 entrée MIDI IN, 1 sortie MIDI OUT. PIC 16F628A.
Interface
MIDI 008c - Filtre MIDI sur numéro de canal et messages Active Sensing - 1 entrée MIDI IN, 1 sortie MIDI OUT. PIC 18F26K22.
Interface
MIDI 009
- Convertisseur Note/CC 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.
Interface
MIDI 011b
- Interface MIDI 011 révisée.
Interface
MIDI 012
- Conversion de messages MIDI Sync (MIDI Timing Clock) en
impulsions logiques TTL, à base de PIC 16F628A.
Interface
MIDI 013
- Diviseur de messages MIDI Sync (MIDI Timing Clock) de
MIDI en MIDI, à base de PIC 16F628A.
Interface
MIDI 014
- Correcteur de courbe de velocité en temps réel, à base de PIC
16F628A.
Interface
MIDI 015
- Interface 16 canaux, 1 entrée MIDI, 8 entrées logiques, 2
sorties MIDI , à base de PIC 18F45K22.
Interface MIDI 015za - 1 entrée / 1 sortie MIDI, envoi de
Program
Change avec fonction Live/Search.
Interface MIDI 016
- Interface 8 entrées audio, 1 sortie MIDI, à base de PIC
18F45K22.
Non fini.
Interface
MIDI 017
- Convertisseur MIDI to CV-Gate, 1 entrée MIDI, 1 sortie en
tension et 1 sortie Trigger, à base de PIC 16F628A.
Interface
MIDI 017c
- Convertisseur MIDI to CV-Gate, 1 entrée MIDI, 2 sorties CV/Gate/Trigger, à base de PIC 18F26K22.
Interface
MIDI 017d
- Convertisseur MIDI to CV-Gate, 1, 2 ou 4 entrées MIDI, 8 sorties CV/Gate/Trigger, à base de PIC18 et PIC32.
Interface
MIDI 018
- 1 entrée MIDI et 24 sorties TTL, à base de PIC 18F45K22.
Interface
MIDI 019
- 1 entrée MIDI et 128 sorties TTL, à base de PIC 18F45K22 et
registres à décalage 74HC595.
Interface
MIDI 020
- 1 entrée MIDI et interface de sortie pour synthé Solina 49
touches, à base de PIC 18F25K22.
Interface
MIDI 020b
- 1 entrée MIDI et interface de sortie pour synthé ARP OMNI modèle 2480 (49 touches), à base de PIC 18F25K22.
Interface MIDI 021
- Interface 64 entrées "percussions" avec gestion vélocité, 1 sortie MIDI, à base
de PIC 24F32GA002.
Interface
MIDI 022
- Interface pour console Cinemix DR couplée à Protools, à
base de PIC 18F46K22.
Interface
MIDI 023
- Interface de réglage volume audio niveau ligne depuis des
commandes MIDI. Isolation galvanique totale.
Interface MIDI 024 - Interface MIDI avec commande hauteur et
volume via tensions analogiques, à base de PIC 18F46K22.
En
cours.
Interface
MIDI
025
- Interface 128 voies pour automatisation piano acoustique ou
accordéon.
Interface
MIDI 026 - Interface MIDI pour pilotage moteurs pas-à-pas, à
base de PIC 18F46K22.
Interface
MIDI 027 - 1 entrée MIDI et 24 sorties sur relais (extensible à 128), réactive sur Notes, PC et CC, à
base de PIC 16F628A.
Interface
MIDI 028 - Encodeur MIDI pour accordéon, à
base de PIC 18Fxxxx.
Interface
MIDI 029 - Interface MIDI pour instrument de musique "hors normes", à
base de PIC 18Fxxxx.
Interface
MIDI 030 - Interface MIDI pour contrôle d'équipements sur scène, avec PIC 18Fxxxx -
Pro Interface
MIDI 031 - Interface MIDI pour transposition de hauteur de note, à
base de PIC 18Fxxxx, 3 versions -
Free et
Pro Interface
MIDI 032 - Interface MIDI pour liaison sans fil (HF 2,4 GHz avec nRF24L01) -
non fonctionnelle Interface
MIDI 033 - Interface MIDI pour modification canal MIDI à la volée, à base de PIC 18F1827 -
Pro Interface
MIDI 034 - Interface MIDI pour transformation à la volée des CC volume en PC, à base de PIC 18F1827
Contrôleur
MIDI 001 - 7 entrées analogiques, 1
sortie MIDI OUT, 1 entrée MIDI IN pour la configuration.
Contrôleur
MIDI 002 - 16 entrées logiques, 1
sortie MIDI OUT, 1 entrée MIDI IN pour la configuration.
Contrôleur
MIDI 002c - 256 messages MIDI (Note, PC, CC, Sysex) enregistrables et rejouable via inter au pied, avec PIC 18F26K20.
Contrôleur
MIDI 003 - 128 boutons-poussoirs, 1
sortie MIDI OUT, génération de notes MIDI, avec PIC 16F628A.
Contrôleur
MIDI 003c - 128 entrées avec capteurs à effet Hall, 1
sortie MIDI OUT, notes et accords MIDI, avec PIC 18F46K22.
Contrôleur
MIDI 004 - 1
sortie MIDI OUT, génération de messages MMC, avec PIC 16F628A.
Contrôleur
MIDI 004za - 1
sortie MIDI OUT, génération de messages MMC, avec PIC 16F628A.
Contrôleur
MIDI 005 - 1
sortie MIDI OUT, génération soutenue d'événements MIDI pour tests
d'interfaces, avec PIC 16F628A.
Contrôleur
MIDI 006 - 1
sortie MIDI OUT, envoi de Programm Change, pour usage scène, avec
PIC 18F45K22.
Contrôleur MIDI 007 - Sortie USB/MIDI, à base de PIC 18F4550.
Non fini.
Contrôleur
MIDI 008 - 96 (ou 128) entrées numériques, 16 entrées
analogiques, avec PIC 18F47J13.
Contrôleur
MIDI 008b - 88 commandes numériques, 16 entrées analogiques,
avec PIC 18F46K22.
Contrôleur
MIDI 009 - 4 encodeurs optiques, 1 sortie MIDI, avec PIC
24F16KA102
Contrôleur MIDI 010 - 48 à 120 notes avec gestion vélocité, 1
sortie MIDI, avec PIC 18F46K22 ou PIC 32MX575F512H.
En cours.
Contrôleur
MIDI 011 - 64 entrées numériques pour instrument sans matriçage, 1 sortie MIDI, avec PIC 18F45K22.
Contrôleur MIDI 012 - avec PIC 32MX575F512H.
En cours.
Contrôleur
MIDI 013 - 192 entrées numériques pour orgue, sans matriçage, 1 sortie MIDI, avec PIC 18F45K22.
Indicateur
tempo MIDI 002 - A base de PIC 16F628A, avec LDR pour
synchro sur "LED tempo".
Indicateur
tempo
MIDI 003 - Avec PIC 18F25K22, extraction BPM sur entrée
audio ligne, avec affichage numérique et maintien tempo.
Indicateur
tempo
MIDI 004 - Avec PIC 18F25K22, extraction BPM sur liaison MIDI, affichage numérique 3 digits.
MIDI DevBoard2i2o 001 - Platine de développement MIDI 2E/2S, à base de PIC 18F46K22.
MIDI Processeur 001 - Traitement/filtrage MIDI 6E/6S, à base de PIC PIC32MX575.
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...
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.
- 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
: en sortie de l'optocoupleur présent sur le récepteur
MIDI, l'état logique de repos
correspond à l'état logique haut (+5 V) et le niveau logique
actif correspond à l'état logique bas (0 V). Si le signal appliqué
sur la
broche 5 de la prise MIDI OUT est à l'état bas (actif, envoi de
données), 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. Le microcontrôleur (ou
autre
circuit logique) qui fait suite (dont l'entrée se trouve connectée
à la
sortie de l'optocoupleur) se retrouve donc toujours avec un état
haut (+5 V) au
repos.
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).
Petite interface MIDI In/Out utilisée pour mes diverses
réalisations (
interface
MIDI 011) :
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 broches"
Interface d'entrée MIDI avec
CNY17-2
Autre exemple de câblage avec
boîtier optocoupleur à "6 broches"
Interface d'entrée MIDI avec
PC900 (Sharp)
Exemple de câblage avec boitier
"8 broches"
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 câblage en conséquence (tous les optocoupleurs
n'ont pas le même brochage)
- 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
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
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. 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.
Optocoupleur
|
Boitier |
Vitesse |
Résistance de charge R2
|
Résistance polarisation
R3 |
6N135
|
8 broches |
- |
3,3 kO
|
Aucune résistance |
6N136
|
8 broches |
- |
3,3 kO
|
- |
6N137
|
8 broches |
1 us |
270 à 820 (270)
|
5,6 kO (5,6 kO) |
6N138
|
8 broches |
40 us |
270 à 4,7 kO (470)
|
1 kO à 5,6 kO (ou aucune résistance) |
6N139
|
8 broches |
4 us |
270 à 3,3 kO (270)
|
Aucune résistance |
TIL111
|
6 broches |
2 us |
1 kO
|
< sans objet > |
TIL112
|
-
|
- |
680 à 820
|
- |
4N26
|
-
|
300 kHz |
1 kO |
- |
4N27
|
-
|
300 kHz |
1 kO |
- |
4N28
|
8 broches |
- |
1 kO |
Aucune résistance |
4N33
|
-
|
30 kHz |
1 kO |
- |
4N35
|
-
|
150 kHz |
820
|
- |
4N36
|
-
|
15 kHz |
820
|
- |
CNX35 |
6 broches |
2 us |
- |
- |
CNX36
|
6 broches
|
2 us |
820
|
- |
CNY17-2
|
6 broches |
5 us |
1 kO à 4,7 kO (1,2 kO)
|
< sans objet > |
CNY80
|
-
|
- |
820
|
- |
PC900
|
-
|
- |
220 à 4,7 kO
|
- |
MCT2 |
6 broches |
150 kHz |
- |
- |
MCT4 |
6 broches |
300 kHz |
- |
- |
MCT6 |
8 broches |
150 kHz |
- |
- |
SL5500 |
6 broches |
100 kHz |
1 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...
Ajout d'une interface MIDI à un appareil audio, musical ou autre
Il
existe nombre d'instruments ou périphériques audio qui ne sont dotés
d'aucune interface MIDI, et qu'on aimerait pouvoir piloter en MIDI.
Pour ce faire, il est parfois possible d'ajouter à l'appareil en
question, une inteface MIDI qui permet de le télécommander ou
configurer de manière automatique. Une interface MIDI, dans cette
optique, pourrait par exemple assurer une commutation on/off d'un
paramètre d'effet, ou ajuster un niveau ou réglage d'effet. Une telle
interface requiert un microcontrôleur (PIC ou autre) doté d'un module
UART (laison série traditionnelle).
Ouvrage de référence MIDI qui m'a bien servi
Un livre pas très épais mais vraiment très bien écrit.
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.