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.
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.
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.
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.
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.
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.
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.
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.
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.