Bonjour à tous,
Je viens aujourd’hui vous présenter un nouveau projet, cette fois-ci réalisable et surtout réalisé et fonctionnel (nous ne parlerons pas ici de mes autres projets présentés en stand-by faute de moyens ) au nom de RPISequencer.
Genèse
J’ai récemment fais l’acquisition d’un synthétiseur analogique, mais étant 100% analogique, il n’y a aucun séquenceur intégré, même minimaliste. Un problème qui limite quand même pas mal la créativité car nous n’avons plus qu’une main (ou aucune) pour faire évoluer le son autre que par les notes, ce qui est un des principal avantage des synthés. Je ne me voyais pas pour le moment acheter un séquenceur externe et je me suis rappelé que le MS-20 mini pouvait envoyer et recevoir des messages MIDI (USB entre autre) de note. De plus, j’avais récemment découvert Blynk qui permet de contrôler un microprocesseur/contrôleur via une application facilement. J’ai donc ressorti ma Raspberry Pi 3 qui commençait à prendre la poussière et j’ai commencé à coder la base du séquenceur au lycée.
Généralités & Avancement
En plus d’être le seul projet fonctionnel que j’ai fini, c’est aussi celui où j’ai été le plus rapide : en trois jours j’avais un MVP qui fonctionnait et avec lequel je pouvais m’amuser un minimum. Je m’étais grandement inspiré du séquenceur intégré au Arturia Microbrute:
J’ai donc utilisé Blynk pour avoir quelque chose de semblable (niveau fonctionnel, visuellement c’est totalement différent), le seul rajout étant un nombre théoriquement infini de patterns (limité par la RAM de la RPi, mais cela reste un nombre quand même conséquent) mais limité arbitrairement à 50 dans l’application via 5 banques (A, B, C, D et E) de 10 patterns chacune. Voici à quoi ressemblait cette première version :
Une autre différence avec le séquenceur du MicroBrute est qu’il enregistre les notes une à une et transpose la séquence lorsqu’on appuie sur une touche. Dans ma première version, j’ai rajouté un mode "Transpose" en plus du "Play" pour pouvoir soit jouer exactement la séquence enregistrée, soit justement la transposer. Le slider "Rate" permettait de changer la fréquence de trigger des notes et le bouton "TAP/REST" permet soit de tapper le tempo au lieu d’utiliser le slider, soit de rajouter un silence dans le pattern.
Cela faisait un peu vide, c’était limité et peu ergonomique : il était impossible d’enregistrer des notes plus longues que d’autre, compliqué de faire des silences de la longueur voulu et on ne pouvait choisir le synthé que à l’exécution du programme, sur la Raspberry.
J’ai donc supprimé le slider, implémenté un "Stepper Mode" et ajouté une liste déroulante permettant de choisir in-app le device souhaité, voici les images de la nouvelle version :
C’est plus rempli, plus beau et plus fonctionnel
Il faudrait maintenant expliquer ce qu’est ce "Stepper Mode" : quand il est désactivé, le pattern est joué exactement comme il l’a été enregistré, les notes sont jouées avec la durée souhaité et l’intervalle entre les notes est aussi respecté ; quand il est activé, le séquenceur fonctionne comme dans la première version, seulement, le seul moyen de définir la fréquence des notes est via le bouton "TEMPO/REST", le slider étant supprimé.
Originalité
L’originalité vient principalement du fait que le séquenceur est contrôlable via une application sur smartphone et qu’il suffit à n’importe qui de n’avoir qu’une Raspberry Pi en théorie pour le faire fonctionner.
J’en profite pour indiquer que même si le programme est censé fonctionner pour n’importe quel synthétiseur, je n’ai aucunement pu le vérifier n’en possédant qu’un seul modèle.
Objectifs
Mes objectifs actuels sont juste de continuer à améliorer/maintenir le programme, voici une liste sûrement non exhaustive de choses à fix/add:
- Ajouter un moyen de supprimer complètement le contenu d’un pattern pour pouvoir réenregistrer quelque chose dessus
- Ajouter un moyen de compléter un pattern (en rajoutant des notes à la fin, au milieu ?)
- Faire en sorte de pouvoir distribuer l’application faite avec Blynk pour de potentiels personnes voulant tester
- Investiguer et corriger le problème de notes qui ne s’arrêtent jamais
- D’autres bugfix
Conclusion
Vous pourrez trouver le code du programme pour la Raspberry sur GitHub (README à compléter pour expliquer comment installer).
C’est aussi prévu de faire une petite vidéo de présentation/démonstration du séquenceur en action mais me connaissais, je ne pourrais pas dire quand elle sera faite
Merci d’avoir lu jusqu’au bout !