*** Welcome to piglix ***

FAUST (programming language)

FAUST
Original author(s) Yann Orlarey, Dominique Fober, Stéphane Letz
Developer(s) GRAME, Centre National de Création Musicale
Initial release 2002 (2002)
Stable release
0.9.67 / May 19, 2014 (2014-05-19)
Written in C++
Operating system Linux, OS X, Windows, Unix
Type Functional programming language for audio signal processing
License GPL
Website faust.grame.fr

FAUST (Functional AUdio STream) is a domain-specific purely functional programming language for implementing signal processing algorithms in the form of libraries, audio plug-ins, or standalone applications. A FAUST program denotes a signal processor: a mathematical function that is applied to some input signal and then fed out.

The FAUST programming model combines a functional programming approach with a block diagram syntax:

A FAUST program doesn’t describe a sound or a group of sounds, but a signal processor. The program source is organized as a set of definitions with at least the definition of the keyword process (the equivalent of main in C):

The FAUST compiler translates FAUST code into a C++ object, which may then interface with other C++ code to produce a full program.

The generated code works at the sample level. It is therefore suited to implement low-level DSP functions like recursive filters. The code may also be embedded. It is self-contained and does not depend on any DSP library or runtime system. It has a very deterministic behavior and a constant memory size.

The semantics of FAUST is driven to be simple and well-defined. It allows the FAUST compiler to be semantically driven. Instead of compiling a program literally, it compiles the mathematical function it denotes. This may promote component reuse. Moreover, having access to the exact semantics of a FAUST program can simplify preservation issues.


...
Wikipedia

...