## 2010

## Automatic Paralllelization of Audio Applications with Faust

*Congrès Français d'Acoustique*, 2010, Lyon, France

Faust (Functional AUdio STreams) [1] stands for both a programming language and its compiler. Being fully compiled allows Faust to be used as an alternative to C/C++ to develop high-performance audio signal processing applications, DSP libraries and plug-ins for a variety of audio platforms and standards.

Mots-clés :

Compiler, Dataflow, Functional, Processing, Programming, Real-time, Signal

## Work Stealing Scheduler for Automatic Parallelization in Faust

*Linux Audio Conference*, 2010, Utrecht, Netherlands

Faust 0.9.10 introduces an alternative to OpenMP based parallel code generation using a Work Steal- ing Scheduler and explicit management of worker threads. This paper explains the new option and presents some benchmarks.

Mots-clés :

Compiler, Dataflow, Functional, Processing, Programming, Real-time, Signal

## 2009

## FAUST : an Efficient Functional Approach to DSP Programming

*NEW COMPUTATIONAL PARADIGMS FOR COMPUTER MUSIC*, pp.65-96, 2009

FAUST is a programming language that provides a purely functional approach to signal processing while offering a high level of performance. FAUST aims at being complementary to existing audio languages by offering a viable and efficient alternative to C/C++ to develop signal processing libraries, audio plug-ins or standalone applications. The language is based on a simple and well defined formal semantics. A FAUST program denotes a signal processor, a mathemati... Lire la suite

FAUST is a programming language that provides a purely functional approach to signal processing while offering a high level of performance. FAUST aims at being complementary to existing audio languages by offering a viable and efficient alternative to C/C++ to develop signal processing libraries, audio plug-ins or standalone applications. The language is based on a simple and well defined formal semantics. A FAUST program denotes a signal processor, a mathematical function that transforms input signals into output signals. Being able to know precisely what a program computes is important not only for programmers, but also for compilers needing to generate the best possible code. Moreover these semantics questions are crucial for the long term preservation of music programs. The following paragraphs will give an overview of the language as well as a description of the compiler, including the generation of parallel code.

Mots-clés :

Compiler, Dataflow, Functional, Processing, Programming, Real-time, Signal

## 2004

## Syntactical and Semantical Aspects of Faust

*Soft Computing*, 2004

This paper presents some syntactical and semantical aspects of FAUST (Functional AUdio STreams), a programming language for real-time sound processing and synthesis. The programming model of FAUST combines two approaches : functional programming and block-diagrams composition. It is based on a block-diagram algebra. It has a well defined formal semantic and can be compiled into efficient C/C++ code.

Mots-clés :

Compiler, Dataflow, Functional programming, Real-time, Signal, Processing

## 2002

## An Algebra for Block Diagram Languages

*International Computer Music Conference*, 2002, Gothenburg, Sweden. pp.542-547

We propose an algebraic approach to block diagram construction as an alternative to the classical graph approach inspired by dataflow models. The proposed algebra is based on three binary operations of construction : sequential, parallel and recursive constructions. These operations can be seen as high level connection schemes that set several connections at once in order to combine two block diagrams to form a new one. Algebraic representations have interestin... Lire la suite

We propose an algebraic approach to block diagram construction as an alternative to the classical graph approach inspired by dataflow models. The proposed algebra is based on three binary operations of construction : sequential, parallel and recursive constructions. These operations can be seen as high level connection schemes that set several connections at once in order to combine two block diagrams to form a new one. Algebraic representations have interesting application for visual languages based on block diagrams and are useful to specify the formal semantic of these languages.

Mots-clés :

Algebra, Block-diagram, Dataflow, Denotational, DSP, Graph, Semantic

## An Algebraic approach to Block Diagram Constructions

*Journées d'Informatique Musicale*, 2002, Marseille, France. pp.151-158

We propose an algebraic approach to block diagram construction as an alternative to the classical graph approach inspired by dataflow models. This block diagram algebra is based on three binary operations : sequential, parallel and recursive constructions. These operations can be seen as high level connection schemes that set several connections at once in order to combine two block diagrams to form a new one. Such algebraic representations have interesting app... Lire la suite

We propose an algebraic approach to block diagram construction as an alternative to the classical graph approach inspired by dataflow models. This block diagram algebra is based on three binary operations : sequential, parallel and recursive constructions. These operations can be seen as high level connection schemes that set several connections at once in order to combine two block diagrams to form a new one. Such algebraic representations have interesting applications for visual languages based on block diagrams. In particular they are very useful to specify the formal semantic of these languages.

Mots-clés :

Algebra, Block-diagram, Dataflow, Denotational, DSP, Graph, Semantic