[LAD] ANN : Faust 0.9.30 released

Orlarey Yann orlarey at grame.fr
Fri Nov 19 19:41:50 UTC 2010

                             | FAUST 0.9.30 |

GRAME - Centre National de Creation Musicale - is happy to announce
the release of FAUST 0.9.30. This version fixes several bugs,
introduces some new possibilities in the language and provides
improved libraries and additional examples.

About FAUST :

FAUST (Functional Audio Stream) is a functional programming
language specifically designed for real-time signal processing and
synthesis. A distinctive characteristic of FAUST is to be fully
compiled. The FAUST compiler translates DSP specifications into
very efficient C++ code that works at sample level. It targets
high-performance signal processing applications, libraries and
audio plug-ins for a variety of audio platforms and standards. A
same FAUST specification can be used to easily generate native
JACK or ALSA applications, as well as CSOUND, LADSPA, MAX/MSP, PD,
Q, SC and VST plugins.

The Faust distribution can be downloaded at:

We switched from CVS to GIT. The GIT repository can be cloned with
the following command :
git clone git://faudiostream.git.sourceforge.net/gitroot/faudiostream/faudiostream faust

Two mailing lists are available:

In order to test FAUST without installing it, please refer to the
Online Faust Compiler (requires firefox):

======================== WHAT'S NEW ==============================

Documentation :

- A new version of the Faust Quick Reference is provided with a
better layout and an expanded and updated content.

Compiler :

- the ':' (seq), '<:' (split), ':>' (merge) and ',' (par)
composition operators are now right associative. For example the
parallel composition (1,2,3,4,5) now denotes (1,(2,(3,(4,5)))).
This change simplifies pattern matching techniques in particular
the use parallel compositions as lists. The iterative par(...)
construction as been modified accordingly.

- Improved pattern matching support. Variables don't have anymore
to be undefined to be considered match variables. The new strategy
uses the positions to determine the role of variables. For example
in pattern 'x(y,z)' y and z are match variables while x, in
functional position, is a regular variable. This allow to evaluate
patterns without having to introduce a special notation for match

Libraries :

The various libraries have been extended, in particular Julius
Smith's effect.lib, osc.lib and filter.lib.

- effect.lib : among the new additions are some historical reverbs
form the early 70's like John Chowning's jcrev and satrev.

- filter.lib : contains several new filters in particular
third-order and sixth-order Elliptic/Cauer lowpass and highpass

- math.lib : added Hadamard() matrix function contributed by Rémy
Muller that has applications in Feedback Delay Networks.

Examples :
Several examples were added to illustrate some of the new functions
provided by the libraries.

- cubic_distortion.dsp,

- gate_compressor.dsp,

- graphic_eq.dsp,

- parametric_eq.dsp,

- phaser_flanger.dsp

- smoothdelay.dsp,

- spectral_level.dsp,

- vcf_wah_pedals.dsp

Architecture files :

- ca-qt.cpp : Aggregate in/out devices when needed.

- jack-gtk.cpp : Tooltip format added

- max-msp.cpp : help message is now posted even when no audio inlet
is available

- module.cpp : updated

- supercollider.cpp : compile fix

Bug Fixes:

- improved error messages for non constant-integer table sizes

- getBoxType now only always called on fully evaluated expressions
in propagation normal form.

- missing boxtype for pattern matching variables added

- Bitmask : new implementation correcting bug for large values

- some recursive call to simplify have been removed to avoid
potential infinite loops during the simplification of some


Many persons have been contributing to the FAUST project by
providing code for the compiler, architecture files, libraries,
examples, documentation, scripts, bug reports, ideas, etc.

I would like to thank them and especially: Fons Adriaensen, Tim
Blechmann, Tiziano Bole, Baktery Chanka, Thomas Charbonnel, Damien
Cramet, Etienne Gaudrin, Albert Graef, Stefan Kersten, Victor
Lazzarini, Matthieu Leberre, Mathieu Leroi, Kjetil Matheussen, Remy
Muller, Sampo Savolainen, Nicolas Scaringella, Stephen Sinclair,
Travis Skare, Julius Smith, as well as my colleagues at GRAME, in
particular : Dominique Fober, Stephane Letz and Karim Barkati, and
from the ASTREE project : Jerome Barthelemy (IRCAM), Alain Bonardi
(IRCAM), Raffaele Ciavarella (IRCAM), Pierre Jouvelot (Ecole des
Mines/ParisTech), Laurent Pottier (U. Saint-Etienne)

Yann Orlarey

More information about the Linux-audio-dev mailing list