Piano midi avec fluidsynth

J’ai installé Ubuntu Studio sur une tour pour faire un piano midi qui s’ouvre automatiquement.

Voici le script bash que j’ai adapté d’ici : https://superuser.com/questions/1291367/bash-condition-not-met-when-executed-by-crontab

#!/bin/bash
sleep 60
echo "Starting"
/usr/bin/fluidsynth -is -a jack -j -m alsa_seq /home/fred/Nice-Keys-Ultimate-V2.3.sf2 &
echo "Fluidsynth started"
while true; do /usr/bin/aconnect -o; if [[ $(/usr/bin/aconnect -o ) = FLUID ]]; then break; fi; sleep 2; done
/usr/bin/aconnect 20:0 128:0
echo "Connected"

J’ai rajouté un sleep 60 pour attendre que l’os ait fini de démarrer comme du monde, sinon il y avait des erreurs bizarres (probablement qu’il faut que la carte de son soit chargée avant d’exécuter le script.

Ensuite, j’ai ajouté ceci dans la crontab :

@reboot bash /home/fred/pianolauncher.sh >> /home/fred/out.log 2>&1

où pianolauncher est mon script ci-haut. Ça fonctionnait lorsque mon écran était connecté, mais sans écran, il y avait un bug. Il faut ajouter la ligne suivante au fichier /etc/environment :

JACK_NO_AUDIO_RESERVATION=1

Eh voilà! Un piano avec une latence très faible grâce au kernel préemptoire d’Ubuntu Studio, qui s’ouvre automatiquement sans besoin d’avoir d’écran, avec une librairie de sons vraiment géniale!