Electronique > Réalisations > Interfaces > Interfaces MIDI > MIDI Merger 002

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

Présentation

Ce merger MIDI non intelligent est une version un poil plus évoluée de mon merger MIDI 001.

midi_merger_002_pcb_3d_a

Par rapport à son prédécesseur, celui décrit ici dispose d'un automatisme de blocage d'une entrée MIDI si l'autre reçoit des données. En gros, c'est l'entrée qui reçoit des données en premier qui devient prioritaire, et quand plus aucune donnée n'est reçue les deux entrées reviennent à l'écoute. Il est toujours interdit à deux entrées de recevoir des données en même temps, mais avec cette version il y a beaucoup plus de chances de trouver des données MIDI valides en sortie puisque les collisions ne peuvent plus exister. A voir aussi le MIDI Merger 003, auquel j'ai essayé d'insuffler un poil d'intelligence.

Schéma

Là encore aucun composant programmable puisque pas besoin d'intelligence particulière, il n'est fait usage que de composants courants et bon marché.

midi_merger_002

Bien sûr par rapport au schéma du petit frère, il y a quelques élements en plus...

Entrées MIDI
Chacune des deux entrées MIDI (MIDI IN 1 et MIDI IN 2) abouti à un optocoupleur, chargé d'isoler galvaniquement la sortie de l'instrument que l'on va y connecter. Les résistances R1 et R2 sont chargées de limiter le courant dans la LED contenue dans l'optocoupleur, et les diodes D1 et D2 permettent de protéger ces mêmes LED en cas d'inversion de polarité des fils du câble MIDI. Ces diodes ne sont pas absolument indispensables mais je vous conseille tout de même de les mettre.

Mélange des données MIDI
Pourquoi parler de mélange des données MIDI alors que justement il ne peut plus y avoir de mélange ? Pour attirer votre attention, simplement. Auparavant, l'arrivée simultanée de données MIDI sur les deux entrées conduisait à une bouillie de données informatiques au point de sommation des diodes D3 et D4, rendant les sorties MIDI OUT inutilisables. Ici le problème ne peut plus survenir car les données MIDI des deux entrées passent chacune par des portes logique de type "AND", à savoir U6:A pour l'entrée MIDI 1 et U6:B pour l'entrée MIDI 2. Ces deux portes logiques agissent comme une "autorisation de passer" dont l'ordre de passage est donné par un monostable lui-même déclanché par les entrées "opposées". Pour faire clair : l'arrivée de données sur une entrée MIDI déclanche (active) le monostable qui lui correspond, ce dernier interdit alors à d'éventuelles données MIDI arrivant sur l'autre entrée d'aller plus loin. Cette interdiction dure quelques ms. Le câblage des circuits logiques est réalisé de telle sorte que des données MIDI arrivant sur l'entrée devenue secondaire ne puissent pas bloquer les données MIDI en cours de passage sur l'entrée devenue prioritaire. Vous rigolez, mais c'est ce que faisait mon premier proto (...), je n'avais pas pensé à ce détail au début. Besoin d'une explication détaillée ? Allons-y. Au repos, aucune donnée n'arrive sur les entrées MIDI, les optocoupleurs sont inactifs et on retrouve un niveau logique haut sur le collecteur de leur transistor de sortie. Ce qui conduit à disposer de niveaux logiques bas sur la sortie des portes inverseuses U3:A et U3:B qui font directement suite. Les portes U6:A et U6:B ne peuvent rien faire d'autre que délivrer un état logique bas puisque pour rappel il s'agit de portes AND. Les points de report marqués "A" et "B" sont donc eux aussi à l'état bas et les monostables U5:A et U5:B se tiennent à carreau. Ces derniers étant au repos, ils délivrent un état logique bas sur leur sortie Q (broches 6 et 10) et un état logique haut sur leur sortie Q barre (broches 7 et 9). Ces dernières sorties (Q barre en broches 7 et 9) sont celles qu'on utilise pour disposer des signaux d'autorisation de passage. Les signaux MIDI peuvent transister de l'entrée vers la sortie si ces sorties Q barre sont à l'état haut. Supposons qu'une donnée MIDI NoteOn arrive sur l'entrée MIDI IN 1. Dans ce cas la broche 5 de l'optocoupleur U1 passe de façon répétée de l'état logique bas à l'état logique haut durant toute la trame MIDI (3 octets transmis en série, pour rappel). Ces changements d'état transitent tranquillement de l'entrée MIDI IN1 vers les sorties MIDI OUT car la porte logique U6:A reçoit sur son entrée un état logique haut venant du monostable U5:B (qui n'a pas été déclanché). En revanche, les transitions logiques bas-haut présentes au point "A" (données MIDI arivant sur l'anode de la diode D3) déclanchent et redéclanchent le monostable U5:A dont la sortie Q barre bascule alors à l'état bas. Ce qui a pour conséquence de transformer la porte logique U6:B en porte de prison : toute donnée MIDI qui arriverait à ce moment sur l'entrée MIDI 2 serait stoppée nette au niveau de la broche 5 de U6:B, et aucune collision ne pourrait donc avoir lieu au point commun des diodes D3 et D4. Il en est de même dans l'autre sens. Si l'entrée MIDI IN 2 reçoit des données en premier, c'est le monostable U5:B qui est déclanché et qui bloque la porte logique U6:A. Le principe, comme vous pouvez le constater, est vraiment très simple en théorie et très simple à mettre en oeuvre ! Oh, un détail pour terminer cette partie : une LED a été ajoutée sur la sortie Q des deux monostables, il s'agit de D7 et D8. Ces LED s'allument pour signaler le déclenchement des monostables, et par là-même l'arrivée de données MIDI. Pratique pour voir quelle entrée est actuellement prioritaire et active. Le graphe qui suit montre l'activité de signaux MIDI arrivant sur les deux entrées MIDI et ce qui en découle.

midi_merger_002_graphe_001a

Chacune des entrées MIDI reçoit un évenement NoteOn suivit d'un évenement NoteOff. C'est l'entrée MIDI IN 1 qui reçoit en premier son NoteOn et on retrouve cet évenement en sortie MIDI OUT. Le NoteOn de l'entrée MIDI IN 2 qui arrive juste après est tout bonnement ignoré et ne vient pas gêner la bonne transmission du NoteOn de la première entrée. A l'opposé, le NoteOff de l'entrée MIDI IN 2 arrive en priorité et c'est lui qui est transmis sur la sortie MIDI Out, le NotOff de l'entrée MIDI IN 1 qui arrive juste après est bloqué. Dans la pratique, cet exemple conduirait à faire jouer une note à l'infini puisque l'ordre d'arrêt (NoteOff) de la note déclanchée n'a pas passé les mailles du filet (il faudrait la rejouer pour être sûr qu'un NoteOff parte bien vers la sortie MIDI Out). Pas de collision mais des effets secondaires possibles... que l'on peut sans doute éviter en jouant sur les durées d'inhibition. Mais rappelez-vous tout de même du message initial : ce merger n'est pas intelligent et n'est pas fait pour jouer avec deux entrées MIDI en même temps.

Durée d'inhibition
La durée pendant laquelle une entrée MIDI est inhibée quand l'autre entrée MIDI reçoit des données, dépend de la valeur donnée aux couples de composants R11/C3 et R12/C4. 
T (secondes) = R (ohms) * C (Farads)
Avec les valeurs du schéma (100 kO et 10 nF), cette durée est de 1 ms (0,001 seconde) :
T (secondes) = 100000 (ohms) * 0,00000001 (Farads) = 0,001
Rien, mais absolument rien ne vous interdit d'opter pour une durée d'inhibition supérieure telle que 1 seconde (1 uF et 1 MO). Le minimum reste par contre de 1 ms, qui correspond à peu de chose près à la durée d'un bloc de 3 octets. Si vous aimez faire des tests, je ne saurais trop vous conseiller de remplacer R11 et R12 par un potentiomètre de 1 MO et de donner aux condensateurs C3 et C4 la respectable valeur de 1 uF (si condensateurs polarisés, pôle positif vers la résistance associée). Cela vous permettra de définir à votre guise la durée d'inhibition posée par chaque entrée MIDI, de façon indépendante. Et avec les LED D7 et D8, vous saurez toujours qui a eu le dernier mot !

Sorties MIDI
Rien de particulier à dire ici, encore une fois borne 4 de la prise DIN reliée au +5 V au travers d'une résistance de 220 ohms, borne 5 de cette même prise DIN recevant les données MIDI venant de la sortie des portes inverseuses U3:C et U3:D. Pour disposer de deux sorties MIDI supplémentaires, on peut ajouter en parallèle de ces deux portes U3:C et U3:D les deux portes U3:E et U3:F qui sont inutilisées. La compatibilité TTL / CMOS est ici assurée car les portes TTL préconisées sont de type HC ou HCT (74HC14 ou 74HCT14).

Alimentation
Le circuit intégré régulateur de tension positif de +5 V de type 78L05 permet d'utiliser n'importe quelle source de tension comprise entre 9 V et 15 V. Un bloc d'alimentation secteur bon marché fera parfaitement l'affaire. Comme ce genre d'accessoire permet parfois de se tromper facilement dans les polarités "plus" et "moins", une diode (D5) a été ajoutée afin de prévenir toute catastrophe : en cas de mauvais branchement, le montage ne fonctionnera pas mais sera protégé. Un condensateur additionnel de 100 uF (C1) assure un filtrage minimal, celui des blocs secteur classiques laissant bien souvent à désirer. Enfin, la LED D6 signale sans équivoque si le bloc secteur est correctement branché et s'il délivre une tension.

Câblages des prises MIDI

Le câblage est le suivant, attention au sens de la vue (de devant ou de derrière)

midi_din_cablage_001

La borne 2 n'est reliée à la masse qu'au niveau des sorties et non au niveau des entrées, pour éviter toute boucle de masse entre équipements.

Circuit imprimé

Non réalisé, vue 3D uniquement là pour donner un aperçu des composants utilisés.