Historique: Faire de la MAO sur Raspberry Pi 3
Aperçu de cette version: 15
note
Réalisation d'un expandeur / boîte à rythme et synthé virtuel avec une Raspberry Pi 3.
attention
Page en cours d'écriture
Table des matières
Motivation
Ayant une préférences pour les instruments "matériels" comme les séquenceurs MIDI, les synthétiseurs analogique et numérique, etc. Je voulais combler un manque après l'acquisition d'un séquenceur MIDI Kilpatrick Audio Carbon. En effet, je n'avais aucun synthé à séquencer. Par contre une Raspberry Pi était là, dans un profond sommeil et prenant la poussière.L'idée fut donc de transformer cette Raspberry Pi en véritable expandeur, boîte à rythme et synthétiseur virtuel.
Liste des "ingrédients"
- Une Raspberry Pi 2 ou 3.- Une carte microSD d'au moins 16Go (système + échantillons) ou une microSD de 8Go et une clé USB.
- Une interface audio USB. Dans cet exemple une Asus Xonar U3 sera employée mais n'importe quelle carte USB compatible Linux/Alsa fera l'affaire.
- Un écran Pimoroni HyperPixel. D'autres modèles existent mais souvent avec une résolution plus faible. Libre à vous d'en choisir un autre, même plus grand si besoin. Ou simplement un écran HDMI. Faites en fonction de vos besoins, de votre budget et de votre place.
- Un boîtier. Uniquement pour protéger votre Pi.
- Du temps, de la patience et de la persévérance 😉
Installation de Raspbian
Pour l'installation du système Raspbian, vous trouverez de nombreux tutos sur Internet.Ensuite, j'ai choisi de passer à la version dite "testing" afin d'avoir des versions plus récentes des applications utilisées. Vous pouvez en faire de même ou en rester là, suivant votre niveau en matière de linuxien.
Si vous êtes courageux, voici les commandes:
Éditez votre fichier /etc/apt/sources.list:
Copy to clipboard
sudo nano /etc/apt/sources.list
Remplacer les mots "stretch" par "testing"
Votre fichier doit ressembler a ceci:
Copy to clipboard
deb http://mirrordirector.raspbian.org/raspbian/ testing main contrib non-free rpi
Sauvegardez vos modifications avec Ctrl+o puis Entrée et quittez nano avec Ctrl+x.
Lancez la mise à jour:
Copy to clipboard
sudo apt-get update && sudo apt-get -y dist-upgrade
Si tout c'est bien passé, redémarrez avec:
Copy to clipboard
sudo reboot
Pour finir, installez l'utilitaire listbugs d'APT. Cette commande permet de savoir si des bugs gênants seront présent lors des mise à jours. Très utile avec une variante dite instable 😉
Copy to clipboard
sudo apt-get install apt-listbugs
Optimisation du système
Pour cette étape, vous pouvez procéder de deux manières. Soit simplement en conservant le noyau par défaut en activant le mode "performance", soit en compilant un noyau temps réel. Cette dernière méthode est celle que j'ai privilégiée mais si vous débutez, ne vous lancez pas dans cette tâche qui reste assez fastidieuse.Méthode avec le noyau par défaut. (recommandée pour les débutants)
Il faut privilégier le gouverneur "performance" pour le processeur. Par défaut il est sur "ondemand" ce qui n'offre pas toujours les meilleurs performances.Si vous utilisez un clavier, pressez la touche "maj" au démarrage. Sans cette touche, c'est "ondemand" qui est configuré. Avec c'est le mode "performance".
Comme ce n'est pas toujours pratique d'appuyer sur une touche au démarrage ou si vous n'utilisez pas de clavier, il faut commencer par désactiver le service raspi-config qui ne sert qu'à sélectionner les modes "ondemand" ou "performance":
Copy to clipboard
sudo systemctl disable raspi-config
Ensuite, créez ou éditez votre fichier /etc/rc.local:
Copy to clipboard
sudo nano /etc/rc.local
Ajoutez les lignes suivantes:
Copy to clipboard
for GOVERNOR in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; \ do \ echo "performance" | sudo tee $GOVERNOR; \ done
Enregistrez votre fivhier avec Ctrl+o puis Entrée et Ctrl+x pour quitter.
Méthode avec une noyau Temps Réel (RT). (déconseillée aux débutants)
Là, je vais vous renvoyer en premier lieu vers le seul et unique tuto permettant d'obtenir un noyau RT fiable:Blog d'autostaticDans la configuration du noyau, choisissez le gouverneur performance.
À l'avenir, je proposerai un paquet deb avec un noyau RT
Mise en place de l'écran
Là, tout dépend de votre écran. Il n'y a malheureusement pas une seule méthode mais plutôt une méthode par écran.Dans un premier temps, je vous conseil vivement un écran HDMI. D'ailleur rien n'oblige à prendre un écran spécifique tactile ou non.
Dans le cas du HyperPixel de Pimoroni, veuillez suivre la procédure suivante dans votre terminal:
Copy to clipboard
curl https://get.pimoroni.com/hyperpixel | bash
Au prochain redémarrage, votre écran HyperPixel sera actif.
Installation des applications MAO.
D'abord, je tiens à signaler que cette phase est celle qui m'a pris le plus de temps. Trouver le meilleur compromis facilité/performance/fiabilité/légerté.Jack
En premier lieu, il vous faut installer et configurer jackd. Ce qui sera fait automatiquement en installant QJackCtl:Copy to clipboard
sudo apt-get install qjackctl
J'ai choisi QJackCtl après avoir essayé ses concurrents. QJackCtl a l'avantage de la légerté sur Raspberry Pi. Il est aussi plus stable.
Lancez QJackCtl et configurez jack:
''à suivre...'
Non Mixer
Non Mixer n'est malheureusement pas dans les dépôts. Vous allez devoir le compiler vous même. Rien de bien difficile si vous suivez les étapes à la lettre.Hydrogen
Un peu de simplicité, ça fait du bien.Copy to clipboard
sudo apt-get install hydrogen
ZynAddSubFX
ZynAddSubFX est dans les dépôts raspbian. Bonne nouvelle 😊 Mais la v3 n'est disponible que dans la version Rasbian Testing. Si vous êtes restés sur la version stable, vous aurez une version 2.x. Dans tous les cas, l'utilisation reste identique. La nouvelle interface Fusion n'étant pas encore disponible pour ARM.Copy to clipboard
sudo apt-get install zynaddsubfx