Dernière mise à jour :
15/03/2015
Présentation
Ce contrôleur MIDI dispose de 128 entrées de commandes qui
prennent la forme
d'un clavier matricé de 8 colonnes / 16 rangées. Le clavier est
constitué de capteurs à effet hall de type A3144 (plus fabriqués) ou
A1104 (encore fabriqué à l'écriture de ces lignes). Chaque capteur permet
de déclencher un évenement MIDI de type Note On (approche d'un aimant)
ou Note Off (éloignement de l'aimant).
Ce circuit a été conçu pour
interfacer (MIDI-fier) un accordéon, les données MIDI sont transmises
sur 3 canaux MIDI et certaines "touches" délivrent des accords (seules
100 entrées sur les 128 sont en fait utilisées). Le système a été conçu
pour que chaque capteur magnétique (touche)
puisse délivrer n'importe quelle
note ou accord sur n'importe quel canal MIDI, pour faciliter toute
nouvelle adaptation. Le coeur du montage fait appel à un PIC de la
famille 18F.
Avertissements
- Ce montage peut servir de base à la
réalisation d'un clavier maître polyphonique (on peut jouer plusieurs
notes à la fois) mais non sensible à la
vélocité. Les capteurs magnétiques sont de type "tout ou rien" et non
linéaire, on ne peut pas mesurer la "force de frappe".
- L'ordonnancement des notes et des canaux MIDI est réalisé "en dur" et ne peut pas être modifié par l'utilisateur.
- La vélocité est fixée à la valeur décimale 100 (sur échelle
1 à 127).
- Le code source n'est pas livré pour cette application. Pour
toute demande d'adaptation, merci de me
contacter.
Schéma
Le coeur du système repose sur un PIC et quelques composants, la
matrice de capteurs quant à elle est assez bien fournie ! Les deux sections sont sur des schémas séparés.
Section principale
La partie la plus touffue réside dans le câblage des 128
capteurs à effet hall, heureusement que le multiplexage permet de réduire la quantité de fils à câbler !
Section clavier
Principe général
Il
repose sur l'emploi d'une matrice de 128 capteurs matricés en 8
colonnes de 16 rangées, sensibles au champ magnétique d'un aimant
déplacé à proximité. Comme chaque capteur consomme entre 5 mA et 7 mA,
il est "délicat" de les alimenter tous en permanence. On les mets donc
sous tension par paquet de 8, ce qui réduit la consommation du clavier
à une valeur seize fois moindre (environ 50 mA au lieu de 800 mA). La sortie des capteurs est analysée en
boucle, et quand un aimant s'approche de l'un d'eux, sa sortie passe à
0 et ce changement d'état provoque l'émission d'un ou plusieurs événements de type
Note On (notes simples ou accords). Quand l'aimant s'éloigne, la sortie repasse à l'état haut et
provoque l'émission d'un ou plusieurs événements de type Note Off.
Coeur du montage
Le microcontrôleur fait tout le travail. Il
scanne
en permanence la matrice de capteurs et délivre les notes MIDI quand un capteur est activé ou désactivé. Seize
lignes du PIC configurées en sortie pilotent l'activation des rangées
de capteurs, et huit lignes configurées en entrée permettent de
reconnaître les capteurs qui sont activés. Quand au moins une
touche est "enfoncée" (capteur hall actif), la LED s'allume. Elle ne
s'éteint que quand tous les capteurs sont inactifs.
Traitement de la polyphonie
L'état de chaque capteur est
géré de façon indépendante, chacun dispose de son espace mémoire
dans le PIC pour garder trace des notes "enfoncées". Si
plusieurs capteurs sont activés en même temps, cela provoque
l'émission de plusieurs notes sur la sortie MIDI. Le logiciel du PIC peut travailler selon deux modes totalement différents :
-
soit les notes sont vues de façon individuelle et dans ce cas tel ou
tel capteur active telle ou telle note sur le canal MIDI préprogrammé,
que la note soit jouée seule ou qu'elle fasse partie d'un accord;
-
soit les notes sont analysées en deux scans de clavier successifs,
pour voir si une note est jouée seule ou fait partie d'un accord.
Dans
le second cas, un même capteur peut servir à activer une même note dans
les deux cas de figure, mais avec un canal MIDI différent.
Temps de réaction (latence)
Le
cas le plus défavorable
(latence la plus élevée) correspond à l'activation d'un capteur situé
sur une rangée qui vient
juste d'être traitée. En effet dans ce cas de figure, il faut attendre
un cycle complet pour analyser à nouveau la rangée en question.
L'envoi de chaque note MIDI demande quant à lui un peu moins de 3 ms,
ce délai est lié à la vitesse de transmission MIDI (31250 bauds) et au
nombre d'octets à transmettre (3 octets pour une note simple). Dans le
cas présent, un scan complet est opéré en
2,8 ms, le temps de réaction est compris entre 0,4 ms et 2,8 ms.
Le système met donc moins de temps à réagir qu'il ne met à transmettre
une simple note ;-)
Sortie MIDI
Les messages MIDI Note On ou Note Off issus du PIC aboutissent
sur une prise DIN 5 points
dont seuls 3 broches sont raccordées : données, +5 V (via résistance)
et masse. On ne s'éloigne pas de la norme.
Prototype
Réalisé
avec plaque d'expérimentation à pastilles et 48 capteurs à effet Hall câblés en
matrice 4 x 12. En fait comme je ne sais plus compter, je n'ai câblé
que 46 capteurs. Mais avant de
câbler la matrice complète, je me suis tout de même assuré que les capteurs
fonctionnaient bien à l'unité, et heureusement pour cela j'avais des gros aimants
rectangles sur mon frigo et des petits ronds (en forme de pile bouton) au pied de mon lit.
La
détection peut s'opérer sur le devant (biseauté) ou sur l'arrière du
capteur, selon pôle magnétique de l'aimant. La sortie du capteur reste muette si on place
l'aimant au-dessus. Est venu ensuite le temps de réaliser cette fameuse
matrice de test à 46 capteurs...
Après
correction de deux mauvaises soudures (oui, cela m'arrive encore) le
prototype fonctionne parfaitement. Pour les essais, j'ai fixé un
aimant sur mon index avec du scotch, et je me suis promené au dessus des
capteurs.
Par
moment il arrivait que deux notes soient jouées en même temps quand je
plaçais l'aimant entre deux capteurs, ce qui est tout-à-fait normal vu
la taille de l'aimant utilisé (trop gros par rapport à l'espace
inter-capteurs). Hormis ce détail lié à un "mauvais choix" d'aimant,
les notes sont jouées de façon franche.
Adaptation mécanique dans l'accordéon
C'est
à n'en point douter la partie la plus délicate. Les aimants doivent être petits (taille similaire à celle d'un capteur) et se
déplacer de façon très précise par rapport aux capteurs. S'ils sont trop
loin les notes ne se déclanchent pas, et s'ils sont trop près on a
droit aux notes ininterrompues ! Bref, un minutieux travail de
mécanique avec nécessité de pouvoir ajuster la distance aimant-capteur, selon un
procédé qui doit tenir dans le temps. Je n'ai pas travaillé sur cet aspect mécanique, mais je
trouve ça passionnant !
Logiciel du PIC
Pro - Projet réalisé suite à demande pro, logiciel du PIC non disponible sur ce site.
Circuit imprimé
Non réalisé.
Historique
15/03/2015
- Première mise à disposition.