Dernière mise à jour :
09/10/2016
Présentation
Cette interface MIDI est une version modifiée de l'
interface
MIDI 019, elle a été conçue pour "midifier" un synthé
analogique Solina 49 notes paraphonique.
Elle dispose d'une entrée MIDI et de circuits de commande
analogiques destinés à "remplacer" l'appui sur les touches (connexions
sur deux busbar).
Chaque circuit analogique réagit à une note MIDI, sur une plage
ajustable (détails
dans le texte descriptif). L'interface est construite autour
d'un PIC 18F26K22 (moins de broches que le 18F45K22) auquel
sont associés des commutateurs analogiques LC78212.
Schéma
Le coeur du montage est un microcontrôleur
PIC 18F26K22 cadencé par un quartz de 8 MHz. La commande des
commutateurs analogiques se fait via un bus de liaison série
"propriétaire" mais on ne peut plus classique, avec deux lignes horloge
(Clock) et données (Data).
Fonctionnement général
L'interface possède une entrée MIDI reliée à un microcontrôleur PIC, et
un ensemble de commutateurs analogiques. Quand un événement MIDI
de type Note
(NoteOn ou NoteOff) se présente à
l'entrée, l'interface décode les octets de l'événement et chaque
changement d'état (note enfoncée ou relâchée) est enregistré dans une
mémoire tampon. Immédiatement après, les commutateurs analogiques qui
correspondent aux notes reçues sont
mis à jour (ouverts ou fermés) pour refléter l'état des notes reçues.
L'ensemble est
polyphonique mais il va de soi que le synthé qui suit, s'il ne l'est
pas, ne peut profiter pleinement de cette possibilité. Un
buffer circulaire de 1 KO permet de gérer
correctement l'arrivée des notes même si elles arrivent en grand nombre
et dans un temps court (rappelons au passage que chaque note MIDI - on
ou off - est composée de trois octets).
Horloge / base de temps
Pour des questions de stabilité en fréquence, l'oscillateur interne du PIC
n'est pas utilisée. Les
lignes
RA7/OSC1 et RA6/OSC2 du PIC sont donc exploitées pour y connecter
un
quartz de 8 MHz avec deux condensateurs céramiques
de
faible valeur (22 pF / 63 V) dont le rôle est d'entretenir les oscillations. La PLL x4 du PIC est activée et le
logiciel tourne donc en interne à 32 MHz (4 x 8 MHz) - valeur bien sûr ramenée à 8 MHz pour Fosc/4.
Entrée MIDI
L'entrée MIDI est
composée de l'optocoupleur U2 raccordé sur la prise
DIN 5 broche J1, via une résistance de limitation de courant (R1) et
une diode (D1) qui protège l'optocoupleur en cas d'inversion de
polarité des lignes d'entrée de la prise DIN (broches 4 et 5). La
sortie de
l'optocoupleur permet de récupérer le signal MIDI
au
format TTL, grâce à la présence de la résistance
de charge R2
raccordée au +5 V. Les
données MIDI mises en forme aboutissent à l'entrée RC7/RX1 du
PIC et sont traitées par l'UART intégré dans ce dernier. Ces données MIDI reçues ne sont traitées que si leur canal MIDI
correspond au canal défini par la position des interrupteurs branchés
sur les lignes RA0 à RA3 du PIC (canal MIDI 1 à 16 codé en binaire sur 4
bits, valeurs 0 à 15). La LED LED1 s'allume (clignote) lors de la réception des données
MIDI. La LED LED2 s'allume quand au moins une note est en cours de jeu
(NoteOn), elle ne s'éteind qu'après réception du ou des événements
NoteOff correspondants. Tous les commutateurs analogiques sont désactivées (ouverts) si
l'interface reçoit un message de "Mode canal" de valeur comprise entre
123 et 127 (All Notes Off).
Conversion MIDI vers commutateurs analogiques
Chaque commutateur analogique s'active sur réception de la note MIDI
correspondante
: NoteOn = activation de la porte correspondante et NoteOff =
désactivation. Comme la norme MIDI prévoit 128 notes et que le clavier
qu'on veut midifier en possède moins (ici 49
notes), il est inutile de disposer de plus de commutateurs. L'utilisation de
7 circuits LC78212 répond juste à un besoin d'homogénéité, le dernier
(U9) n'est pas pleinement exploité. Cette interface est dotée
d'une
configuration qui permet de définir la première note qui correspond au premier commutateur analogique. Les interrupteurs
raccordés sur les lignes RB0 à RB3 du PIC
permettent de spécifier à partir de quelle note MIDI l'interface
commence à réagir, voir tableau qui suit.
RB3 |
RB2 |
RB1 |
RB0 |
Première note traitée |
0 |
0 |
0 |
0 |
C-2 |
0 |
0 |
0 |
1 |
F-2 |
0 |
0 |
1 |
0 |
C-1 |
0 |
0 |
1 |
1 |
F-1 |
0 |
1 |
0 |
0 |
C0 |
0 |
1 |
0 |
1 |
F0 |
0 |
1 |
1 |
0 |
C1 |
0 |
1 |
1 |
1 |
F1 |
1 |
0 |
0 |
0 |
C2 |
1 |
0 |
0 |
1 |
F2 |
1 |
0 |
1 |
0 |
C3 |
1 |
0 |
1 |
1 |
F3 |
1 |
1 |
0 |
0 |
C4 |
1 |
1 |
0 |
1 |
F4 |
1 |
1 |
1 |
0 |
C5 |
1 |
1 |
1 |
1 |
F5 |
Exemple : on veut que le premier commutateur analogique soit activé sur la note C2,
que le deuxième commutateur soit
activé sur C#2, le troisième sur D2, etc. Pour ce faire, il
faut mettre l'entrée RB3 à 1 (inter fermé) tandis que les entrées RB2,
RB1, RB0 doivent être à 0 (inters ouverts). Bien sûr les interrrupteurs
de configuration peuvent être remplacés par de simples
straps ou ponts de soudure.
Temps de transit et temps de traitement
Les données MIDI arrivent dans le PIC, qui les traite au fil de l'eau
pour détecter
la présence de notes. A chaque changement d'état d'une note
(enfoncement ou relâchement d'une touche du clavier synthé), l'état de tous
les commutateurs analogiques est mis à jour, même si un seul évenement Note (on ou off) a été
reçu. A partir du moment où une
note MIDI a été réceptionnée (3 octets), la sortie correspondante est
mise à jour au bout de 700 us (0,7 ms) maximum. On peut comparer ce temps de réaction au temps nécessaire
pour
transférer les trois octets
de la note MIDI dans le câble MIDI, qui lui-même avoisine la
milliseconde...
Sortie MIDI
Le
schéma fait apparaitre une sortie MIDI, cette sortie
est facultative. Au démarrage du système, elle sortie délivre
une note MIDI brève (Do3) qui permet de s'assurer que
le PIC
démarre bien et qu'il tourne à la bonne vitesse. Si cette sortie n'est
pas souhaitée, il suffit de ne pas la
câbler et de ne pas implanter les deux résistances R4 et R5 associées au connecteur J2.
Alimentation
Une source de tension de 5 V est nécessaire pour faire fonctionner la
partie commande. N'importe quel bloc secteur standard 5 V convient,
vous pouvez aussi utiliser une source de tension plus élevée suivie
d'un régulateur de tension +5 V (par exemple LM7805). Côté commutateurs
analogique, deux tensions de +/-15 V ont ici été nécessaires (adaptation au
synthé Solina).
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.
Prototype
Simulation sous Proteus (écran signaux logiques
ci-après) puis tests pratiques réalisés avec ma platine
EasyPic7 et
mon clavier maître Roland D50. Mes tests se sont arrêtés au niveau
des signaux de commande issus du PIC car je ne possédais pas les
commutateurs analogiques.
Plusieurs cartes pro ont ensuite été réalisées par OnOff-Art et testées avec
succès avec trois clavier couplés à Logic Audio 9, Ableton Live et MOTU
MidiExpress 128.
Signaux logiques ci-avant relevés sur maquette réelle réalisée par OnOff-Art.
Logiciel du PIC
Demande Pro, logiciel non disponible en libre service.
Interface
MIDI 020 - PIC 18F26K22 - 31/07/2016
Circuit imprimé
Non réalisé par mes soins.
Historique
09/10/2016
- Ajout compatibilité Running Status.
10/04/2016
- Ajout photo carte finalisée.
26/12/2015
- Première mise à disposition.