RPISequencer

Un séquenceur MIDI basé sur une Raspberry Pi

a marqué ce sujet comme résolu.

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 :euh: ) 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:

Microbrute Sequencer
Microbrute Sequencer

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 :magicien:
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 X/
  • 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 :D

Merci d’avoir lu jusqu’au bout !

+4 -0

Finalement, j’ai fait la vidéo de présentation plus rapidement que prévu, la voilà ! (Comment on intègre une vidéo YT dans un post ? X/ )

Bon, il ne faudra juste pas trop faire attention à la qualité de la vidéo, j’avais seulement une vieille webcam en 720p pour enregistrer. Aussi, un son de notification Messenger s’est glissé au plein milieu de l’enregistrement. Bref, une vidéo de débutant. Mais le résultat y est : il y a au moins une vidéo de démonstration :lol:

Salut, bravo pour ton projet, j’ai pas encore testé, mais j’ai une question : j’ai le clavier midi (un piano roland) j’ai le PI3 MAiS : le piano est bluetooth, tu connais le principe du MIDI via bluetooth? une application de type séquencer n’est pas nativement compatible avec un appareil 'midi bluetooth’, il ne le voit pas :'( je n’ai pas re essayé récemment mais l’an dernier quand j’avais acheté le piano j’ai pas été capable de trouver une appli android qui était compatible avec mon piano. Et du coup l’idée m’a effleuré de faire un séquenceur adapté… Mais pas capable!

oui c’est le Roland F-140R . Le "Midi over Bluetooth" est en principe une spécification générique, comme le midi filaire, ou le midi via usb je suppose. Le bluetooth est déjà assez complexe, je "vois" mon piano dans la liste des appereils bluetooth de mon tel android, mais je n’ai pas trouvé le séquenceur capable de gérer ce device.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte