Cette interface MIDI permet de transposer en temps réel des notes MIDI (vers le haut ou vers le bas).
Plusieurs versions ont été pensées :
- Schéma 031a
: transposition limitée à +/-1 octave - Free
- Schéma 031ab
: idem 031a, mais schéma et PCB renforcés pour usage scène - Pro
- Schéma 031b
: transposition jusqu'à +/-3 octaves, par
saut d'octave ou par pas de 1/2 ton - Pro
- Schéma 031c
: transposition jusqu'à +/-3 octaves par commutateur
rotatif, -3/-2/-1/0/+1/+2/+3 - Pro
Il s'agit du schéma "le plus simple" (ce qui ne signifie pas que les autres sont très compliqués).
Remarque : dans cette version 031a, les deux boutons-poussoirs SW1 et SW2 peuvent être remplacés par un unique inverseur à 3 positions de type ON-OFF-ON momentané (fugitif). Dans ce cas, la broche centrale du commutateur doit être reliée à la masse et ses deux extrémités doivent être reliées sur les entrées Cde1 et Cde2.
Le voyant LED1 (LED-Rx) s'allume lors de la réception des notes MIDI pour confirmer leur bonne prise en compte.Le logiciel du PIC réceptionne les notes MIDI qui arrivent à la queue-leu-leu et les place dans un buffer temporaire afin de n'en perdre aucune, même si elles arrivent à un rythme effrené. Les notes réceptionnées sont ensuite traitées (transposées) avec la valeur négative ou positive spécifiée par l'utilisateur. Sitôt transposées, les notes sont émises sur la sortie MIDI OUT.
Sachant que l'étendue des notes MIDI va de Do-2 à Sol#8 et que cette interface MIDI peut hausser la tonalité jusqu'à +1 octave ou la descendre de -1 octave, on est en droit de se demander ce qu'il advient des notes très graves transposées vers le bas ou des notes très aigues transposées vers le haut. L'interface ignore simplement la note si après sa transposition elle sort de la plage normalisée du MIDI (les valeurs < 0 ou > 127 sont en effet interdites).
Rappel : la note MIDI la plus grave et la note MIDI la plus aigue sortent toutes deux de la zone d'audition humaine normale (qui pour rappel couvre la plage de 20 Hz à 20 kHz).
Les deux boutons-poussoirs SW1 et SW2 permettent de régler la
valeur de
transposition par saut de X octave(s).
Les deux boutons-poussoirs SW3 et SW4 permettent de régler la valeur de
transposition avec un pas de 1/2 tons.
La valeur de transposition peut aller jusqu'à +/-3 octaves en sélectionnant la position idoine du commutateur rotatif SW1 (-3/-2/-1/0/+1/+2/+3). Ce commutateur SW1 est un modèle à 1x12 positions, avec mise en place d'un bridage mécanique pour limiter l'étendue à 7 positions (5 positions sont donc non utilisées). Il est également possible d'utiliser un commutateur à 2x6 positions, mais dans ce cas l'étendue du réglage de transposition sera limitée à -3/+2 octaves ou -2/+3 octaves, voire -2/+2 octaves.
Ici, aucune LED d'indication de transposition n'a été prévue, car la position du bouton du commutateur SW1 indique déjà la valeur de transposition. Il serait toutefois possible d'ajouter un indicateur visuel additionnel, à la condition de lire la commande utilisateur en mode hexadécimal et non en mode décimale comme cela est fait actuellement (réduction du nombre de fils de 6 à 3, donc libération de trois lignes du PIC pour attaquer un système d'affichage annexe), car le nombre de lignes du PIC est limité.
J'ai modifié le logiciel d'origine, car j'avais omis d'y intégrer le mode Running status qui est utilisé sur certains claviers. Cette modification logicielle est répercutée sur toutes les versions (031x).
Remarque : le PIC 16F1827 étant compatible broche à broche avec le 16F628, j'ai essayé de le remplacer par un 16F648 (identique au 16F628, mais avec davantage de mémoire). Moyennant une adaptation du code logiciel et en acceptant une fréquence d'oscillateur moindre, le circuit fonctionne aussi. Ce n'était que pour m'amuser et parce qu'il me restait des 16F648 en stock, car à ce jour il n'y aurait pas d'intérêt particulier à préférer le 16F648 (et encore moins le 16F628).
Réalisé en double face. Les PCB versions 031a et 031b n'incluent pas les LED d'indication de transposition (LED2, LED3 et LED4). Le PCB version 031ab est quant à lui "complet".
21/04/2024
- Ajout schéma 031ab.
14/04/2024
- Ajout photos prototype 031b.
- Ajout développement logiciel PIC version 031c.
- Ajout compatibilité avec le Running status en réception MIDI pour toutes les versions.
-
Allongement de la durée d'allumage de la LED Rx lors de la réception
dévénements MIDI : 600 us au lieu de 15 us (on voyait la
lumière,
mais seulement avec l'oeil au dessus).
31/03/2024
- Première mise à disposition.