Dernière mise à jour :
10/12/2017
Présentation
Ce contrôleur MIDI a été conçu pour "midifier" un clavier dont le
câblage est de
type
non matricé
(1 fil par note).
L'ensemble est basé sur un microcontrôleur PIC
18F45K22. Le logiciel a été écrit pour gérer 80 notes, mais le PCB
(circuit imprimé) a été dessiné pour gérer 64 notes maximum, soit un
peu plus de 5 octaves.
Schéma
Le microcontrôleur PIC 18F45K22 est
cadencé par un quartz de
16 MHz.
Schéma partiel,
interface d'entrée 64/80 voies non représentée
Principe de fonctionnement
Le microcontrôleur PIC choisi ici ne
dispose pas d'un nombre suffisant de lignes d'entrée/sortie pour y
raccorder directement le clavier. J'ai pour cette raison utilisé des
expandeurs de port possédant chacun 16 lignes d'E/S. Le PIC
travaille avec eux selon deux méthodes "combinées" : par interruptions
et par interrogations. Quand une touche
est pressée, le logiciel entre dans un mode d'analyse
qui évite de prendre en compte d'éventuels parasites (fonction
anti-rebond,
debounce).
Une fois établi qu'une note au moins a été pressée ou relâchée, le PIC
élabore le message MIDI correspondant à cette note. Chaque
touche du clavier est analysée de façon individuelle, le mode de
fonctionnement est polyphonique mais sans gestion de la vélocité.
Numéro de canal MIDI
Le numéro de canal MIDI peut être choisi par l'utilisateur grâce aux
cavaliers (ou microswitches) câblés sur les lignes RA0 à RA3 du PIC. Le
codage du canal
MIDI est standard et répond au format binaire sur 4 bits :
- Canal MIDI 1 : Ch_3 =
0, Ch_2 = 0, Ch_1 = 0, Ch_0 = 0
- Canal MIDI 2 : Ch_3 =
0, Ch_2 = 0, Ch_1 = 0, Ch_0 = 1
- ...
- Canal MIDI 15 : Ch_3 =
1, Ch_2 = 1, Ch_1 = 1, Ch_0 = 0
- Canal MIDI 16 : Ch_3 =
1, Ch_2 = 1, Ch_1 = 1, Ch_0 = 1
La valeur véhiculée est toujours inférieure de 1 point au numéro de
canal MIDI (valeur binaire 5 pour canal MIDI 6, par exemple).
Valeur de vélocité
La valeur de vélocité est par défaut de 100. Elle peut être
modifiée par l'utilisateur, en portant la ligne RA4 du PIC au
+Alim et en envoyant une note MIDI quelconque sur l'entrée MIDI_IN. La
valeur de vélocité des notes délivrées par le contrôleur devient alors
celle de la dernière note reçue. Si la ligne RA4 du PIC est laissée à
la masse (0V) alors les notes reçues sur l'entrée MIDI_IN du contrôleur
ne sont pas utilisées pour définir la valeur de vélocité.
Note de départ
La première note (celle délivrée par la touche Key_1) est par défaut le
Do1. L'utilisateur peut la modifier en portant la ligne RA5 du
PIC au +Alim et en envoyant une note MIDI
quelconque sur l'entrée MIDI_IN. La valeur de hauteur de la
première note délivrée par le contrôleur devient alors celle
de la dernière note
reçue. Si la ligne RA5 du PIC est laissée à la masse (0V) alors les
notes reçues sur l'entrée MIDI_IN du contrôleur ne sont pas utilisées
pour définir la hauteur de la note de départ.
Brochage des prises MIDI
Le câblage proposé ci-après est valable pour les prises MIDI IN
(entrée), MIDI OUT et MIDI THRU (sorties).
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.
Logiciels du PIC
Demande pro, logiciel non disponible sur ce site.
Contrôleur MIDI 011 - PIC 18F45K22 - 21/05/2017
Circuit imprimé
PCB réalisé en double face par mes soins (côté cuivre non montré).
Historique
10/12/2017
- Première mise à disposition.