Loading AI tools
langage de programmation informatique De Wikipédia, l'encyclopédie libre
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[1].
FAUST (langage) | ||
Date de première version | ||
---|---|---|
Écrit en | C++ | |
Licence | Licence publique générale GNU | |
Site web | faust.grame.fr | |
modifier |
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[2].
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.
Le premier exemple décrit une fonction qui génère du silence :
Le second exemple copie le signal d'entrée en sortie. Il utilise la primitive _
qui est la fonction identité :
L'addition de deux signaux d'entrée est réalisée par la primitive +
:
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 :
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 :
À 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.
Nom du fichier | Nom de l'architecture | Type d'architecture |
---|---|---|
alsa-gtk.cpp | ALSA + GTK | application |
alsa-qt.cpp | ALSA + Qt4 | application |
android.cpp | Android | application |
au.cpp | Audio Unit | plug-in |
ca-qt.cpp | Core Audio + Qt4 | application |
ios-coreaudio.cpp | iOS pour iPhone et iPad |
application |
jack-gtk.cpp | JACK + GTK | application |
jack-qt.cpp | JACK + QT4 | application |
ladspa.cpp | LADSPA | plug-in |
max-msp.cpp | Max/MSP | plug-in |
pd.cpp | Puredata | plug-in |
q.cpp | langage Q | plug-in |
supercollider.cpp | SuperCollider | plug-in |
vst.cpp | VST | plug-in |
vsti-mono.cpp | Instrument monophonique VST | plug-in |
vsti-poly.cpp | Instrument polyphonique VST | plug-in |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.