Documentation en cours durant la phase de développement, et donc incomplète à ce jour


Partie numérique (Pi 4)

Installation Pi OS et sa configuration audio de base

Phase I - installation de l'OS

  • installation classique du système d'exploitation Pi OS sur la carte Rapsberry
  • installation de l'OS Raspian : ici la version complète (full) mais la version lite est peut-être préférable pour gagner en espace disque et rapidité de démarrage (moins de daemon au démarrage).

Référence: page installation sur le site de Raspberry Pi France



Phase II - Suppression de programmes inutiles voire problématique


La suppresion peut se faire en ligne de commande (apt-get remove <le paquet>) ou via le festionnaire logiciel de Pi OS.

Supression de Pulsaudio : le choix a été fait de supprimer le serveur son Pulseaudio afin de ne pas avoir à gérer sa-co-existence avec le serveur son Jackd qui est utilisé dans le Pi-Amp. En outre l'optique est bien de supprimer les logiciels non nécessaires.

A noter qu'il faudra rediriger vers Jackd toutes les applications audio que vous voudriez utiliser (VLC ou autre). Il est possible de fonctionner sans supprimer Pulseaudio mais il faut alors tuer son processus au démarrage de Jackd.

imp ecran


Phase III - Installation des logiciels MAO


1. Installation du serveur Son
Le serveur son choisi est Jackd. il convient donc de l'installer
Paquet à installer :
  • jackd5
2. Installation de la suite logicielle de traitement du son
Au coeur de la simulation logicielle d'ampli il y a les plugins Calf d'excellente qualité (tant sur
le plan sonore que sur l'ergonomie des interfaces).
Paquets à installer
  • calfjackhost (qui permet est un hôte dédié pour les greffons Caf )
  • Calf qui contient notamment les greffons (Calf-Compressor, Calf-Equalizer, Calf-Reverb)


Phase IV.a - Lancement de la configuration MAO au démarrage (Autostart)

Afin d'automatiser le lancement des applications audio via un script, la méthode Autostart a été choisi. Elle permet de lancer le script après le démarrage de l'interface X11 (nécessaire car les applications sont graphiques).
Le ficher Autostart à créer dans le répertoire courant ad-hoc (/etc/xdg/lxsession/LXDE-pi/autostart)et contenant le code suivant
@/usr/bin/lxterminal/ --command="/home/pi/pi-amp/start.sh"



Phase IV.b - Script de lancement des logicielles MAO

Un petit script de lancement des applications utilisées par l'ampli est stocké dans le répertoire de l'utilisateur (ici nommé
pi).
Le script lance successivement :
  • le serveur son jackd qui tourne en tâche de fond
  • l'application calfjackhost avec une configuration par défaut contenant les greffons Calf utilisés. Ici ce fichier de configuration est nommée clean et enregistré dans le dossier calf.
Le fichier dans le dossier utilisateur est le fichier éxécutable
#!/bin/bash
/usr/bin/qjackctl&
calfjackhost --load /home/pi/pi-amp/calf/clean;

Bien penser à le rencre éxécutable avec chmod -x start.sh


Phase V - Configuration de la partie simulation d'ampli

Configuration du chainage des greffons dans jackd/baie_brassage.xml
La configuration actuelle utilise les greffons Calf pour la réalisation d'un ampli orienté Jazz. Les greffons utilisées dans la chaine de traitement du son sont dans l'ordre :

  • compresseur
  • égaliseur
  • reverbation

Cette configuration permettant le chainage des greffons est stocké dans deux fichiers. Le contenu des fichiers dépend bien évidemment de la configuration choisie lors des connections avec les interfaces graphiques.

~/jackd/baie_brassage.xml
<!DOCTYPE patchbay>
<patchbay version="0.5.0" name="baie_standard">
 <output-sockets>
  <socket client="system" type="jack-audio" exclusive="off" name="system 1">
   <plug>capture_1</plug>
  </socket>
  <socket client="Calf Studio Gear" type="jack-audio" exclusive="off" name="Calf Studio Gear 1">
   <plug>Compressor Out #1</plug>
   <plug>Compressor Out #2</plug>
  </socket>
  <socket client="Calf Studio Gear" type="jack-audio" exclusive="off" name="Calf Studio Gear 2">
   <plug>Equalizer 5 Band Out #1</plug>
   <plug>Equalizer 5 Band Out #2</plug>
  </socket>
  <socket client="Calf Studio Gear" type="jack-audio" exclusive="off" name="Calf Studio Gear 3">
   <plug>Reverb Out #1</plug>
   <plug>Reverb Out #2</plug>
  </socket>
 </output-sockets>
 <input-sockets>
  <socket client="Calf Studio Gear" type="jack-audio" exclusive="off" name="Calf Studio Gear 3">
   <plug>Compressor In #1</plug>
   <plug>Compressor In #2</plug>
  </socket>
  <socket client="Calf Studio Gear" type="jack-audio" exclusive="off" name="Calf Studio Gear 2">
   <plug>Equalizer 5 Band In #1</plug>
   <plug>Equalizer 5 Band In #2</plug>
  </socket>
  <socket client="Calf Studio Gear" type="jack-audio" exclusive="off" name="Calf Studio Gear 1">
   <plug>Reverb In #1</plug>
   <plug>Reverb In #2</plug>
  </socket>
  <socket client="system" type="jack-audio" exclusive="off" name="system 1">
   <plug>playback_1</plug>
   <plug>playback_2</plug>
  </socket>
 </input-sockets>
 <slots/>
 <cables>
  <cable type="jack-audio" input="Calf Studio Gear 3" output="system 1"/>
  <cable type="jack-audio" input="Calf Studio Gear 2" output="Calf Studio Gear 1"/>
  <cable type="jack-audio" input="Calf Studio Gear 1" output="Calf Studio Gear 2"/>
  <cable type="jack-audio" input="system 1" output="Calf Studio Gear 3"/>
 </cables>
</patchbay>

~/calf/clean.xml
<?xml version="1.1" encoding="utf-8"?>
<rack><plugin type="reverb" instance-name="Reverb" input-index="1" output-index="1">
<preset bank="0" program="0" plugin="reverb" name="">
  <param name="meter_inL" value="0.00103038" />
  <param name="meter_inR" value="0" />
  <param name="clip_outL" value="0" />
  <param name="decay_time" value="1.5" />
  <param name="hf_damp" value="5000" />
  <param name="room_size" value="2" />
  <param name="diffusion" value="0.5" />
  <param name="amount" value="0.25" />
  <param name="dry" value="1" />
  <param name="predelay" value="0" />
  <param name="bass_cut" value="300" />
  <param name="treble_cut" value="5000" />
  <param name="on" value="1" />
  <param name="level_in" value="1" />
  <param name="level_out" value="1" />
  <param name="meter_outL" value="0.00107511" />
  <param name="meter_outR" value="4.58414e-05" />
  <param name="clip_inL" value="0" />
  <param name="clip_inR" value="0" />
  <param name="clip_outR" value="0" />
</preset>
</plugin>
<plugin type="eq5" instance-name="Equalizer 5 Band" input-index="3" output-index="3">
<preset bank="0" program="0" plugin="eq5" name="">
  <param name="bypass" value="0" />
  <param name="level_in" value="1" />
  <param name="level_out" value="1" />
  <param name="meter_inL" value="0.000506565" />
  <param name="meter_inR" value="0" />
  <param name="meter_outL" value="0.0010178" />
  <param name="meter_outR" value="0" />
  <param name="clip_inL" value="0" />
  <param name="clip_inR" value="0" />
  <param name="clip_outL" value="0" />
  <param name="clip_outR" value="0" />
  <param name="ls_active" value="1" />
  <param name="ls_level" value="2.98006" />
  <param name="ls_freq" value="132.775" />
  <param name="ls_q" value="0.707" />
  <param name="hs_active" value="0" />
  <param name="hs_level" value="1" />
  <param name="hs_freq" value="5000" />
  <param name="hs_q" value="0.707" />
  <param name="p1_active" value="0" />
  <param name="p1_level" value="0.923923" />
  <param name="p1_freq" value="480.173" />
  <param name="p1_q" value="1" />
  <param name="p2_active" value="1" />
  <param name="p2_level" value="0.335563" />
  <param name="p2_freq" value="5935.03" />
  <param name="p2_q" value="1" />
  <param name="p3_active" value="1" />
  <param name="p3_level" value="2.79727" />
  <param name="p3_freq" value="13277.5" />
  <param name="p3_q" value="1" />
  <param name="individuals" value="1" />
  <param name="zoom" value="0.25" />
  <param name="analyzer" value="0" />
  <param name="analyzer_mode" value="1" />
</preset>
</plugin>
<plugin type="compressor" instance-name="Compressor" input-index="5" output-index="5">
<preset bank="0" program="0" plugin="compressor" name="">
  <param name="bypass" value="0" />
  <param name="level_in" value="1" />
  <param name="meter_in" value="0.000422043" />
  <param name="meter_out" value="0.000422043" />
  <param name="clip_in" value="0" />
  <param name="clip_out" value="0" />
  <param name="threshold" value="0.514057" />
  <param name="ratio" value="2" />
  <param name="attack" value="1.12198" />
  <param name="release" value="250" />
  <param name="makeup" value="1" />
  <param name="knee" value="8" />
  <param name="detection" value="0" />
  <param name="stereo_link" value="0" />
  <param name="compression" value="1" />
  <param name="mix" value="1" />
</preset>
</plugin>
</rack>