🎹 Les logiciels de programmation audio 🔊
Je suis tombé par hasard sur le logiciel SAPF (Sound As Pure Form), un système de programmation audio créé par James McCartney, le concepteur de SuperCollider. Il s'agit d'un logiciel qui s'inspire de la programmation fonctionnelle, ainsi que du langage Forth notamment, en utilisant notamment de la notation postfixe et une pile (stack).
(SAPF, version multi-plateforme)
J'ai un peu galéré à le faire fonctionner, car de base c'est un logiciel pour Mac OS, mais il existe une version adaptée pour Linux ainsi que Windows (lien plus haut). Ensuite, cela semble bloquer avec Jack, donc il faut le désactiver s'il est actif. Ensuite, il y a des fichiers et dossiers à prédéfinir pour les fichiers temporaires et autres, donc il vaut mieux les activer comme demandé.
Enfin, il faut démarrer sapf avec un fichier de "prélude", qui va définir un vocabulaire et ainsi des briques de base pour utiliser le langage.
Mon script de démarrage est ainsi :
export SAPF_HISTORY="$HOME/sapf-files/sapf-history.txt" export SAPF_LOG="$HOME/sapf-files/sapf-log.txt" export SAPF_PRELUDE="$HOME/sapf-files/sapf-prelude.txt" export SAPF_EXAMPLES="$HOME/sapf-files/sapf-examples.txt" export SAPF_README="$HOME/sapf-files/README.txt" export SAPF_RECORDINGS="$HOME/sapf-files/recordings" export SAPF_SPECTROGRAMS="$HOME/sapf-files/spectrograms" ./build/sapf -p sapf-prelude.txt
Cela semble assez puissant et les exemples sont impressionnants, malheureusement il n'est pas aisé de les adapter pour des projets plus simple.
Dans un premier temps je pense donc plutôt me rabattre vers SuperCollider, il existe une base de données d'exemples plus importante :
Ou encore SonicPi, qui repose sur SuperCollider. J'ai testé un peu CSound, qui a l'avantage d'avoir une interface de test en ligne, mais le langage me semble moins parlant et plus compliqué.
SonicPi a l'air plus abordable tout en restant puissant.
Il existe aussi un bon tutoriel et des exemples, on peut créer des musiques et mélodies et non pas seulement des sons :
L'index du vocabulaire :
Enfin, on peut créer de nouveaux synthés pour SonicPi, mais à partir de SuperCollider :
Cela permettrait de créer des sons originaux et des textures pour mes musiques.
Un petit exemple de séquence avec SonicPi :
use_synth :saw in_thread do loop do play_pattern_timed scale(:D4, :minor), 0.50 end end in_thread do loop do play_pattern_timed scale(:F3, :major), 0.25 end end
D'autres exemples pour Sonic Pi
En conclusion, SonicPi c'est plus pour la composition avec des notes, des gammes, tandis que SuperCollider c'est plus pour la création brute de sons et d'effets...
Source