FAUST (acronyme anglais de Functional AUdio STream) est un langage de programmation dédié purement fonctionnel, conçu pour les applications de traitement du signal audio sous différentes formes comme les bibliothèques logicielles, les plugins audio ou les logiciels. Ce langage est développé par le GRAME depuis 2002, l'implémentation principale est un logiciel libre sous licence GPLv2..

Un programme en FAUST traduit un processeur de signal, c'est-à-dire une fonction mathématique qui transforme un signal d'entrée en un signal de sortie.

Le Faust Playground est une application web en ligne, permettant d'assembler simplement des programmes écrits en Faust avec une interface graphique. Il peut exporter vers les différentes plateformes compatibles FAUST et créer des plugins.

Vue d'ensemble La modèle de programmation FAUST associe l'approche d'une programmation fonctionnelle avec une syntaxe de schéma fonctionnel.

Un programme FAUST ne décrit pas un son ou un groupe de sons mais un traitement du signal audio numérique. Le programme source est organisé comme un ensemble de définitions, comprenant au minimum la définition du mot clé process, équivalent au main en C, qui opère sur les données d'entrée.

Exemples

Le premier exemple décrit une fonction qui génère du silence : codediagrammefonctionprocess = 0;Fichier:FAUST-simpleblock-null.svg

Le second exemple copie le signal d'entrée en sortie. Il utilise la primitive _ qui est la fonction identité : codediagrammefonctionprocess = _;Fichier:FAUST-simpleblock-identity.svg

L'addition de deux signaux d'entrée est réalisée par la primitive + : codediagrammefonctionprocess = +;Fichier:FAUST-simpleblock-add.svg

La plupart des primitives en FAUST sont identiques à leur équivalent en C pour les nombres, mais appliquées à des signaux. Par exemple la primitive sin applique la fonction C sin à chaque échantillon du signal d'entrée : codediagrammefonctionprocess = sin;Fichier:FAUST-simpleblock-sin.svg Certaines sont spécifiques à FAUST, comme l'opérateur de retard @ qui retarde le signal d'entrée d'un certain délai, dans cet exemple, de 10 échantillons : codediagrammefonctionprocess = _ @ 10;Fichier:FAUST-simpleblock-delay10.svg

Génération d'applications musicales À partir de fichiers d'architecture logicielle spécifiques, un programme FAUST peut générer un code informatique pour une grande diversité de plates-formes logicielles et de formats de plugins. Ces fichiers d'architecture sont définis comme des encapsuleurs et décrivent les interactions entre l'hôte logiciel et l'interface graphique. En 2015, plus de 10 architectures sont gérées, avec la possibilité d'en créer de nouvelles. + Fichiers d'architecture disponibles pour FAUSTNom du fichierNom de l'architectureType d'architecture alsa-gtk.cpp ALSA + GTKapplication alsa-qt.cpp ALSA + Qt4application android.cpp Androidapplication au.cpp Audio Unitplug-in ca-qt.cpp Core Audio + Qt4application ios-coreaudio.cpp iOS pour iPhone et iPad application jack-gtk.cpp JACK + GTKapplication jack-qt.cpp JACK + QT4application ladspa.cpp LADSPAplug-in max-msp.cpp Max/MSPplug-in pd.cpp Puredataplug-in q.cpp langage Qplug-in supercollider.cpp SuperColliderplug-in vst.cpp VSTplug-in vsti-mono.cpp Instrument monophonique VSTplug-in vsti-poly.cpp Instrument polyphonique VSTplug-in

Annexes Références

Bibliographie

Articles connexes SuperCollider Pure Data

Articles externes

Catégorie:Langage de programmation audio Catégorie:Logiciel libre sous licence GPL Catégorie:Logiciel de création musicale Catégorie:Synthétiseur Catégorie:Logiciel pour Linux Catégorie:Live coding