Cet orgue un peu étrange, bâti sur un PIC 24FJ32GA002, se joue avec un potentiomètre souple rectiligne. Cela vous intrigue ? C'est normal.
Cet orgue est une sorte de "reprise" de mon orgue 004 commencé en 2009 et jamais finalisé. Dès le début de l'étude de cette "mise à jour", j'ai eu l'intention d'y implanter d'office le MIDI, si possible de manière un peu plus évoluée que le simple envoi de notes...
Un potentiomètre souple rectiligne ou circulaire (ou autre forme, l'important est que ça existe) sert de "manette de commande". En promenant un doigt dessus (index ou autre, faites comme chez vous), on produit des notes. Ces notes sont délivrées sous deux formes :
Une des particularités de cet orgue est de pouvoir délivrer des notes justes, même si le doigt n'est pas posé exactement à la "bonne position". Une seconde particularité est de pouvoir définir l'étendue des notes grâce à deux potentiomètres "KeyMin" (note de départ) et "KeyMax" (note d'arrivée). Cette étendue peut être réglée entre 1 octave (bien pour les premiers entrainements) et 8 octaves (beaucoup plus drôle).
Remarque : toute ressemblance avec les ondes Martenot peut être écartée, vu que je n'ai jamais entendu parler de cet instrument présenté au public en 1928 par son inventeur Maurice Martenot dont je ne connais pas davantage le nom ni le prénom.
A la base, ce montage fonctionnait avec seulement 3 composants, le PIC 24F, le condensateur C3 et le potentiomètre de jeu RV3.
L'angoisse de vous présenter un système trop simple m'a contraint d'ajouter, avant l'ultime date de parution que je ne pouvais prévoir avant de la connaître vu que je la fixe moi-même, un nombre incalculable de composants (impossible à compter avec la moitié d'une main). Cette révision qui dans mon dos a provoqué la coulée de plusieurs litres de sueur prend la forme du schéma suivant.
En espérant que ce nouveau schéma réponde mieux à la complexité que vous attendez de moi sans l'exprimer ouvertement, je vous prie de croire, cher lecteur, en l'expression HTML de mes plus connectées considérations.
Ils sont bien entendu nombreux...
Le potentiomètre souple utilisé ne possédant qu'une seule bande conductrice, il est impossible de prévoir deux zones dans le sens de la "profondeur" pour séparer touches blanches (notes non altérées) et touches noires (notes altérées dièse/bémol). Il faudrait pour bien faire utiliser deux potentiomètres placés côte à côte, un devant pour les touches blanches et l'autre derrière pour les touches noires. C'est tout à fait possible, mais on verra ça plus tard. Dans le temps qui nous préoccupe avant de nous occuper, il m'a donc fallu trouver une répartition "logique"... qui fasse penser à un clavier de piano, mais cela me semble difficile, sion impossible. J'ai pensé aux trois répartitions suivantes :
Dans la configuration du bas, les notes altérées ont été purement supprimées. Cela correspond à la vision préférée d'un ami batteur qui m'a dit que de toute façon les notes altérées ne servaient jamais et que leur absence ne gênait que de rares musiciens.
Pour l'heure, seule la configuration
"centrale" est implémentée, même largeur octroyée à toutes les
notes,
altérées ou non.
(je
n'écoute pas toujours les conseils avisés de
mon ami
batteur, qui par ailleurs vient d'échanger sa batterie contre
une harpe)
Un afficheur LCD alphanumérique et 100% optionnel permet de connaître à tout instant la plage de jeu sélectionnée (de "Min Key" à "Max Key") ainsi que la note actuellement jouée (valeur de hauteur "pitch" transmise sur la sortie MIDI OUT, et fréquence du signal audio).
Les valeurs numériques MIDI sont ici exprimées en décimal (valeurs de 0 à 127), mais elles pourraient aussi bien sûr l'être en hexadécimal (valeurs de $00 à $7F).
Le logiciel du PIC lit en permanence la tension (donnée analogique) appliquée sur les entrées RA0/AN0, RA1/AN1 et RB2/AN4, grâce au convertisseur analogique numérique (ADC) intégré. Les deux premières tensions (KeyMin et KeyMax) déterminent l'étendue de jeu, de 1 à 8 octaves. La troisième tension (Key) détermine la hauteur de la note jouée. La fréquence de rafraichissement des notes est de 50 fois par seconde, ce qui suffit pour suivre les mouvements d'un musicien moyennement déchainé.
A chaque cycle de lecture de ces tensions analogiques, le logiciel détermine s'il y a lieu de démarrer une nouvelle note, de la conserver, de la modifier ou de l'arrêter. Ces décisions sont prises après comparaison des nouvelles valeurs de tension avec les précédentes. Les "notes de base" sont axées sur des valeurs fixes, aussi bien pour les notes MIDI que pour les sons délivrés sous forme audio.
La plage totale de valeurs possibles pour la tension de commande Key est toujours la même, de 0 V à +3,3 V. Pour une étendue de jeu de 2 octaves, cela fait 24 notes à répartir entre ces deux valeurs extrêmes de tension, ce qui correspond à une "largeur" de 0,13 V pour chaque note.Pour une étendue de jeu de 5 octaves, cela fait 60 notes à répartir, ce qui correspond à une "largeur" de 0,055 V pour chaque note. Avec une telle étendue de 5 octaves, de petites variations de tensions produisent rapidement de nouvelles notes, ce qui bien sûr rend l'exercice plus délicat. Imaginez un piano de 88 touches dont les dimensions seraient celles d'un piano de 24 touches !
A cause du type de "capteur" utilisé, le mode de jeu ne peut pas être polyphonique. Le Theremin ne l'est pas non plus ;)
Pratique : lors de la mise sous tension, l'instrument délivre un bref LA3 (440 Hz), histoire de valider le bon démarrage du logiciel. Si vous constatez que la fréquence n'est pas exactement de 440 Hz, mais de 440,01 Hz ou 439,99 Hz, chauffez ou refroidissez légèrement le quartz en soufflant dessus pendant 3 secondes, puis redémarrez le système. Opérer autant de fois que nécessaire.
Actuellement, les notes MIDI sont délivrées de façon normale, sans variation possible de hauteur et donc sans possibilité de vibrato. De même, le capteur n'étant pas sensible à la vélocité, on ne peut guère envisager d'expression "dynamique". J'ai toutefois une idée en tête pour combler ce manque, idée qui comme vous devez vous en douter ne demande qu'à être mise en pratique ;)
Prototype réalisé sur plaque sans soudure et sans l'afficheur LCD (comme quoi on peut bien s'en passer).
Le fonctionnement n'a pas été immédiat. Des notes justes sortaient en pressant le potentiomètre souple en divers endroits, mais d'étranges sons apparaissaient aussi de manière aléatoire, même quand je ne faisais rien. J'ai vite compris que le potentiomètre souple et long formait une magnifique antenne ! J'ai donc ajouté un filtre passe-bas rudimentaire sur l'entrée ADC du PIC (simple couple résistance + condensateur).
Malheureusement, cela n'a pas du tout réglé le problème et j'ai compris que ce que j'avais compris n'était pas ce que j'aurais du comprendre (c'était d'ailleurs à n'y rien comprendre). Il m'a donc fallu chercher ailleurs... et j'ai fini par trouver. Le souci venait en fait des deux tensions servant à définir l'étendue des notes qui n'étaient pas filtrées. Après filtrage hard par deux nouvelles cellules RC, tout est rentré dans l'ordre.
Frustré de ne pas savoir quelles notes je jouais (je n'ai l'oreille absolue que pour les fréquences situées au-delà de 22 kHz), j'ai finalement ajouté mon afficheur facultatif LCD 4x20 (4 lignes de 20 caractères) à mon prototype.