Pure data, Raspberry Pi (abrégé en rpi ci-dessous)
Préparation du rpi :
Insérer la carte micro-SD dans l'ordinateur puis lancer le logiciel dédié pour installer l'OS
rpi-imager &
OS choisi : RPI OS Debian Trixie, compte utilisateur : xor (même mot de passe que d'habitude), accès SSH autorisé, nom de l'hôte : carnabal.local
nb : ça n'est peut-être pas idéal, la version lite de raspberrypi OS aurait pu suffire…
Insérer la carte micro-SD dans le rpi, brancher alim, HDMI, clavier et souris et c'est parti
D'abord installation de quelques paquets par le terminal
sudo apt update sudo apt install terminator micro xclip puredata-core puredata
(puredata est installé en version 0.55.2)
Démarrage avec interface graphique
Dans cette étape, on vérifie que le patch fonctionne correctement en ALSA…
Sur ces modèles de rpi, il y a 3 sorties sonores possibles : 2 HDMI et 1 sortie analogique minijack. Pour que le patch fonctionne dans pure data, il faut régler la carte son adéquate : sortie sonore analogique sur mini-jack, pour cela :
Dans le menu «media», choisir paramètres audio
Décocher «périphérique d'entrée» (on ne s'en sert pas)
Cocher «périphérique de sortie» et choisir «bcm2835 Headphones (hardware)»
Ça devrait fonctionner corectement
Démarrage sans interface graphique
Dans cette étape, on vérifie que le patch peut démarrer en ligne de commande par un script.
Tout d'abord il faut trouver le bon chiffre pour identifier la sortie audio
aplay -l # donne des infos sur le type de cartes pd -alsa -listdev # renvoie les numéros d'identification
On peut lire
audio input devices: 0. vc4-hdmi-0 (hardware) 1. vc4-hdmi-0 (plug-in) 2. vc4-hdmi-1 (hardware) 3. vc4-hdmi-1 (plug-in) 4. bcm2835 Headphones (hardware) 5. bcm2835 Headphones (plug-in) audio output devices: 0. vc4-hdmi-0 (hardware) 1. vc4-hdmi-0 (plug-in) 2. vc4-hdmi-1 (hardware) 3. vc4-hdmi-1 (plug-in) 4. bcm2835 Headphones (hardware) 5. bcm2835 Headphones (plug-in) API number 1
Différence entre hardware et plugin
Le (hardware) est l'accès direct ALSA à la carte (hw:0,0) : accès exclusif, pas de conversion automatique, et il n'accepte que le format natif du matériel.
Le (plugin) passe par la couche plughw d'ALSA, qui convertit automatiquement le taux d'échantillonnage, le format et le nombre de canaux si besoin.
→ On utilisera la sortie 4, on peut démarrer le patch en ligne de commande par
pd -nogui -alsa -noadc -audiooutdev 4 -r 44100 -audiobuf 200 -open /home/xor/carnabal/mix-carnabal-2.pd
Configurer le lancement automatique au démarrage
En utilisant systemd
sudo touch /etc/systemd/system/carnabal.service sudo micro /etc/systemd/system/carnabal.service # éditer le fichier avec micro (copier-coller possible par l'install de xclip)
Y mettre
[Unit] Description=Patch Pure Data generatif After=sound.target [Service] User=xor Group=audio ExecStart=/usr/bin/pd -nogui -alsa -noadc -audiooutdev 4 -r 44100 -audiobuf 50 -open /home/xor/carnabal/mix-carnabal-2.pd Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
/!\ attention au nom du User
Tester le script automatique de lancement
sudo systemctl daemon-reload sudo systemctl enable --now carnabal.service
On peut lire le journal du service (et les erreurs éventuelles) avec :
journalctl -u carnabal -f
S'il faut relancer
sudo systemctl daemon-reload sudo systemctl restart carnabal.service
Test grandeur nature
Éteindre le pi, débrancher HDMI, clavier, souris et relancer le Pi
→ ok, ça fonctionne :)
Régler le volume sonore
Passer le rpi en read-only
Cela permet de démarrer / éteindre en le branchant/débranchant
TODO : ajouter le patch et son fonctionnement + script python pour les listes