Electronique > Réalisations > Interfaces > Interfaces MIDI > Interface MIDI 002a

Dernière mise à jour : 09/02/2014

Présentation

Cette interface MIDI permet d'envoyer 10 notes MIDI différentes lors de l'activation de 10 boutons-poussoir : à chaque bouton-poussoir correspond une note MIDI, et il est possible d'en activer un ou plusieurs à la fois. La pression d'un bouton génère un évenement MIDI de type NOTE ON, et son relâchement se traduit par l'envoi d'un évenement de type NOTE OFF. La valeur des notes peut être modifiée par l'utilisateur.

interface_midi_002a_pcb_3d_a interface_midi_002a_pcb_3d_b

Ce n'est donc ni plus ni moins qu'un petit clavier "maître" polyphonique simple, non sensible à la pression (pas de gestion de la vélocité/dynamique). Bien entendu, les boutons-poussoirs peuvent être remplacés par n'importe quelle autre logique de commande. En parallèle de ce projet, une interface Interface MIDI 002b qui travaille dans le sens inverse et permet de disposer de commandes logiques à partir d'evenements MIDI.

Schéma

Le schéma qui suit est relativement simple, même s'il fait appel à un composant programmé de type microcontrôleur PIC.

interface_midi_002a

Horloge
Le schéma montre un quartz de 4 MHz et ses deux condensateurs C1 et C2 pour l'horloge du PIC. Ces composants sont optionnels si vous utilisez l'horloge interne du PIC (4 MHz). Les tests réalisés avec l'horloge interne de 4 MHz s'avèrent concluants mais je préconise l'emploi d'un quartz pour un usage "pro". Le circuit imprimé que j'ai dessiné comporte pour cette raison un emplacement pour ces composants, qui seront implantés si vous en décidez ainsi.

Boutons de commande
Les boutons de commande sont à relier sur les bornes du connecteur J2 :
- bouton N°1 (BP1) entre bornes 1 et 20 de J2
- bouton N°2 (BP2) entre bornes 2 et 19 de J2
- ...
- bouton N°9 (BP9) entre bornes 9 et 12 de J2
- bouton N°10 (BP10) entre bornes 10 et 11 de J2
Ces commandes, qui opèrent de façon individuelle, amènent un niveau logique bas sur les entrées du PIC. Des résistances de rappel au +5 V sont mises en service au sein même du PIC (résistances de pullup) pour le port B. Ce n'est pas possible pour les lignes du port A, qui nécessitent l'ajout de résistances externes, mais c'est toujours cinq résistances de gagnées.

Sortie MIDI
Les notes MIDI délivrées par le PIC sont disponibles sur la sortie MIDI OUT, connecteur J1. L'architecture de sortie est identique à ce qu'on retrouve dans tous les équipements MIDI : borne 4 de la prise DIN reliée au +5 V à travers une résistance de 220 ohms, borne 5 de cette même prise DIN pour les données MIDI issues du PIC.

Entrée MIDI
L'entrée MIDI In, connecteur J3, aboutit à l'optocoupleur U2 chargé d'isoler galvaniquement la sortie de l'instrument que l'on va y connecter. Celà est ainsi fait pour les entrées MIDI de n'importe quel équipement que vous pouvez acheter dans le commerce. L'absence de boucle de masse est ainsi garantie, même si l'on connecte de nombreux équipements MIDI entre eux (ce qui n'est malheureusement pas toujours le cas pour la partie audio analogique). La résistance R4 est chargée de limiter le courant dans la led contenue dans l'optocoupleur, et la diode D2 permet de protéger cette même led en cas d'inversion de polarité des fils du cable MIDI. Les données MIDI sont disponibles en sortie de l'optocoupleur au format TTL, grâce à la résistance de polarisation R5 reliée au +5 V.

Elaboration des notes
Les notes jouées sont par défaut les suivantes :
Bouton poussoir BP1 = note MIDI $45 / A3 / LA3
Bouton poussoir BP2 = note MIDI $46 / A#3 / LA#3
Bouton poussoir BP3 = note MIDI $47 / B3 / SI3
Bouton poussoir BP4 = note MIDI $48 / C3 / DO3
Bouton poussoir BP5 = note MIDI $49 / C#3 / DO#3
Bouton poussoir BP6 = note MIDI $4A / D3 / RE3
Bouton poussoir BP7 = note MIDI $4B / D#3 / RE#3
Bouton poussoir BP8 = note MIDI $4C / E3 / MI#3
Bouton poussoir BP9 = note MIDI $4D / F3 / FA#3
Bouton poussoir BP10 = note MIDI $4E / F#3 / FA#3
Avec une vélocité fixée par défaut de $40 (64 en décimal, c'est le centre de la plage de vélocité qui s'étale entre 0 et 127).
Vous avez la possibilité de spécifier la hauteur de note de votre choix pour chaque bouton poussoir, en envoyant un message de type NoteOn sur l'entrée MIDI In de l'interface (connecteur J3). Cette méthode permet de se contenter d'un clavier MIDI quelconque pour programmer l'interface.

Procédure pour programmation des notes à faire jouer par l'interface
- Fermer l'interrupteur SW1/Prog (entrée RA5 à l'état logique bas) pour entrer en mode programmation.
- Appuyer brièvement sur le poussoir qui correspond à la note à modifier. La LED D1 s'allume et une note est émise.
- Envoyer un message de type Note On sur l'entrée MIDI In (J3). Pour cela il vous suffit de relier la sortie MIDI Out de n'importe quel clavier musical ou séquenceur, et de faire jouer la note désirée. La LED D1 clignote pour confirmer l'acceptation des nouvelles données et leur enregistrement en EEProm, et la sortie MIDI Out de l'interface joue (en echo) une fois pendant une fraction de seconde, la note reçue.
- Répéter l'opération autant de fois que nécessaire, pour l'ensemble des boutons-poussoir à configurer.
- Ouvrir l'interrupteur SW1/Prog (entrée RA5 à l'état logique haut) pour sortir du mode programmation. 

Exemple : vous voulez que la note LA4 soit jouée quand le bouton poussoir N° 3 est enfoncé.
Pour cela, il faut :
- Fermer l'interrupteur SW1/Prog pour entrer en mode programmation.
- Appuyer brièvement sur le poussoir N° 3. La LED D1 s'allume et une note est émise.
- Envoyer la note LA4 sur l'entrée MIDI In (J3). La LED D1 clignote pour confirmer la réception de la nouvelle note, et la sortie MIDI Out de l'interface joue (en echo) la note LA4 pendant une fraction de seconde. Toute pression sur le bouton-poussoir N° 3 doit désormais provoquer l'émission de la note LA4 sur la sortie MIDI Out de l'interface.
- Ouvrir l'interrupteur SW1/Prog pour sortir du mode programmation.

Prototype

Pour mon premier prototype (2008), j'avais utilisé une platine EasyPic4 associée à une interface MIDI vite réalisée sur une platine de prototypage (option SmartProto avec connecteur 2x5 points intégré). Les tests avaient été réalisés avec mon séquenceur de poche Yamaha QY70 et mon logiciel de test MIDITest.

easypic4_ext_midi_001a miditest_optos_graphe_000  easypic4_ext_midi_001b

Pour le dernier prototype (2014), j'ai utilisé une platine EasyPic7 et mon petit bout d'interface MIDI plus pratique à utiliser que celle de 2008, le tout sous le contrôle de mon logiciel de test MidiTest associé à une interface MIDI M-Audio MIDISPORT 4x4.

interface_midi_015_proto_001a interface_midi_002a_proto_002a MIDI Test

Tout est OK.

Veuillez nous excuser pour cette interruption momentanée...
Durant mes premiers tests (en 2008), tout s'était arrêté d'un coup, ma carte EasyPic et mon interface MIDI s'étaient éteints et plus rien ne fonctionnait, sauf mon PC portable. Sur le moment, j'avais pensé avoir fait une fausse manip et je commençais à pester en cherchant ce que j'avais bien pû faire comme bêtise. C'est en se mettant à plat ventre pour attraper notre cochon d'inde enfui sous un meuble, que l'on a découvert la cause de la panne.

divers_fil_ronge_001

Heureusement que le disjoncteur du tableau de distribution d'énergie avait fonctionné, car la pauvre bête aurait sûrement senti un peu plus le roussi. On l'a tout de même soupçonnée d'avoir goûté aux joies de l'électricité, car elle tremblait comme une feuille.

Prototype de Fabrice B...
... que je remercie pour ses retours positifs.

interface_midi_002a_proto_fb_001a interface_midi_002a_proto_fb_001b interface_midi_002a_proto_fb_001c

Bravo pour cette belle réalisation !

Alimentation

L'alimentation du montage doit être de +5 V. Un régulateur de tension de type (LM)7805 est prévu sur le circuit imprimé, ce qui vous permet d'utiliser toute tension comprise entre +8 V et +12 V (voire +15 V car la consommation globale est faible et la dissipation de puissance le sera aussi). Si vous disposez déjà d'une alimentation de 5 V, vous pouvez supprimer le régulateur de tension U3 et ses deux condensateurs associés C3 et C4.

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.

Programme du PIC

Le fichier binaire compilé (*.hex) et les fichiers de code source (MikroPascal Pro V6.0x) sont inclus dans l'archive zip que voici :
Interface MIDI 002a - 16F628 - (02/02/2014)
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Circuit imprimé

Réalisé en simple face, avec quatre straps.

interface_midi_002a_pcb_composants

Typon aux formats PDF et Bitmap 600 dpi

Remarques
- Le quartz X1 et les deux condensateurs C1 et C2 ne seront pas installés si vous utilisez la version avec oscillateur interne 4 MHz du PIC.
- Le réseau de résistances RP1 peut être remplacé par des résistances traditionnelles de 10 kO montées verticalement, dont les bornes supérieures constituent le point commun relié au +5 V.

Historique

09/02/2014
- Ajout photos réalisation Fabrice B.
02/02/2014
- Désormais, les notes délivrées par l'interface utilisent les mêmes valeurs de canal MIDI et de vélocité que les notes utilisées pour la configuration.
- Modification du mode de programmation, en vue de le simplifier : il est désormais possible de laisser l'interface en mode programmation en usage normal, à condition bien sûr de ne rien raccorder sur l'entrée MIDI IN pour éviter toute reprogrammation accidentelle.
- Les boutons de commande BP1 à BP10 sont désormais toujours actifs, en mode normal comme en mode programmation (en mode programmation, les notes sont délivrées en sortie MIDI comme en mode normal, ce qui rend plus pratique les tests en mode programmation).
19/12/2008
- Première mise à disposition.