Deux keypads* de 6 lignes (variables ROWS et ROWS2, correspondance des 12 notes) et de 4 colonnes (variable COLS et COLS2, correspondance des 4 octaves) chacun ont été définis dans le programme. Pourquoi deux ? Parce qu'il a été constaté lors d'essais une latence importante en définissant toute la matrice sur un seul keypad. Pour chaque croisement ligne/colonne de la matrice on a attribué une note MIDI (numérotation normalisée).
Pour chaque keypad, l'Arduino vérifie l'état des touches de la matrice et va émettre la note MIDI correspondante en MIDI ON (note appuyée) ou en MIDI OFF (note relâchée).
Le canal MIDI a été défini à 1 par défaut. Le nombre maximal de touches gérées par ce programme est de 48, ce qui correspond à 4 octaves. Il est possible d'avoir un octave supplémentaire en ajoutant un troisème "keypad" (variables ROWS3 et COLS3 à ajouter) afin de ne pas avoir de latence en appuyant sur les touches du clavier.
Les deux librairies ajoutées à l'IDE Arduino sont "keypad.h" et "MIDI.h".
* "keypad" : terme anglais désignant généralement un pavé numérique, comme celui que l'on peut voir sur la droite des claviers de type PC.
Le programme de gestion de clavier MIDI a été transféré via une version relativement ancienne de l'IDE Arduino, la v.1.0.6
Bravo. J'attends la suite avec intérêt.