FAUST

Desarrollador(es)
GRAME
http://faust.grame.fr
Información general
Paradigma|  Funcional
Apareció en|  2002
Influido por|  C C++
Licencia|  GNU General Public License

[editar datos en Wikidata]

FAUST (Functional Audio Stream) es un lenguaje de programación dedicado funcional, diseñado para aplicaciones de procesamiento de señales de audio en diferentes formas, como bibliotecas de software, complementos de audio o software . Este lenguaje ha sido desarrollado por GRAME desde el año 2002, la principal implementación es software libre bajo licencia GPLv 2.[1]​

Un programa en FAUST se traduce como un procesador de señal, es decir una función matemática que transforma una señal de entrada en una señal de salida.

Faust Play Ground es una aplicación web en línea que permite ensamblar fácilmente programas escritos en Faust con una interfaz gráfica. Puede exportar a diferentes plataformas compatibles con FAUST y crear complementos.[2]​

## Descripción general

[editar]

El modelo de programación FAUST combina el enfoque de una programación funcional con una sintaxis basada del diagrama de bloques .

Un programa escrito en FAUST no hace una descripción de un o grupo de sonidos sino que realiza un procesamiento de la señal de audio digital . El programa de base esta organizado como un conjunto de definiciones, incluyendo al menos la definición de la palabra clave `process`, equivalente a `main` en C, que opera con los datos de entrada.

## Ejemplos

[editar]

El primer ejemplo describe una función que genera un "silencio".

codificado  | diagrama  | función

|
|

process = 0;

|  |  s ( t ) = 0 {\displaystyle s(t)=0}

El segundo ejemplo copia la señal de entrada a la salida. Utiliza el carácter `_` que es la función identidad. :

codificado  | diagrama  | función

|
|

process = _;

|  |  s ( t ) = e ( t ) {\displaystyle s(t)=e(t)}

la suma de las dos señales de entrada se realiza mediante el carácter `+` :

codificado  | diagrama  | función

|
|

process = +;

|  |  s ( t ) = e 1 ( t ) + e 2 ( t ) {\displaystyle s(t)=e1(t)+e2(t)}

Mayormente los signos de FAUST se parecen a su equivalente en C para números, pero se aplican a señales. Por ejemplo, la indicación `sin` aplica la función C `sin` a cada muestra de la señal de entrada. :

código  | diagrama  | función

|
|

process = sin;

|  |  s ( t ) = s i n ( e ( t ) ) {\displaystyle s(t)=sin(e(t))}

Algunos son específicos de FAUST, como el operador de retardo `@` que retrasa la señal de entrada una cierta cantidad de tiempo, en este ejemplo, 10 muestras. :

código  | diagrama  | función

|
|

process = _ @ 10;

|  |  s ( t ) = e ( t − 10 ) {\displaystyle s(t)=e(t-10)}

## Generación de aplicaciones musicales.

[editar]

A partir de archivos de arquitectura de software específicos, un programa FAUST puede generar código informático para una amplia diversidad de plataformas de software y formatos de complementos . Estos archivos de arquitectura se definen como contenedores y describen las interacciones entre el host del software y la GUI . En 2015 se gestionan más de 10 arquitecturas, con posibilidad de crear nuevas.

Archivos de arquitectura disponibles para FAUST  Nombre del archivo  | Nombre de la arquitectura  | Tipo de arquitectura

|
|

alsa-gtk.cpp  | ALSA \+ GTK | solicitud
alsa-qt.cpp  | ALSA+ Qt4 | solicitud
android.cpp  | Androide | solicitud
au.cpp  | Unidad de audio | Plug-in
ca-qt.cpp  | Audio central \+ Qt4  | solicitud
ios-coreaudio.cpp  | iOS para iPhone y iPad

<br /> | solicitud
jack-gtk.cpp  | JACK + GTK  | solicitud
jack-qt.cpp  | JACK + QT4  | solicitud
ladspa.cpp  | LADSPA | plug-in
max-msp.cpp  | Máx/MSP | plug-in
pd.cpp  | Pure data | plug-in
q.cpp  | lenguaje q  | plug-in
supercollider.cpp  | Super Collider | plug-in
vst.cpp  | VST | plug-in
vsti-mono.cpp  | Instrumento monofónico VST  | plug-in
vsti-poly.cpp  | Instrumento polifónico VST  | plug-in

## Apéndices

[editar]

### Referencias

[editar]

1. ↑ https://github.com/grame-cncm/faust/blob/master-dev/COPYING
2. ↑ «Le Faust Playground». Amstramgrame.fr.

### Bibliografía

[editar]

* yPhil (20 de noviembre de 2017). «[Faust] Coder de l’audio en sifflotant». Linuxfr.org.

### Artículos relacionados

[editar]

* SuperCollider
* Pure data

### Artículos externos

[editar]

* Sitio official : https://faust.grame.fr

Control de autoridades|

* Proyectos Wikimedia
* Datos: Q1398550
* Multimedia: FAUST (programming language) / Q1398550

* * *

|

* Datos: Q1398550
* Multimedia: FAUST (programming language) / Q1398550