Help save net neutrality! Learn more.

Faust released

Grame - Centre National de Creation Musicale - is pleased to announce the release of Faust

Faust AUdio STreams is a powerful and expressive functional programming language for realtime audio signal processing. The Faust compiler translates DSP specifications into efficient C++ code.

A variety of plateforms and plugin formats are supported. A single Faust specification can be used to easily generate JACK and ALSA applications, as well as LADSPA, MAX/MSP, PD, Q, SC and VST plugins. In addition to C++ code, the Faust compiler can also generate SVG block-diagram representations as well as XML descriptions.

To easily test Faust before installing it, please refer to The Faust distribution can be downloaded at Debian and rpm packages are also available from Debian, Ubuntu, Planetccrma and Packman.

Please note that Faust can now also be used from within the CLAM 1.2 audio and music application development framework ( and the Snd-rt realtime music programming environment (

What's new :

  • Syntax modification allowing unary operator - with identifiers (-x is now allowed)

  • Parametric string can now contain the number of digits to use. In the string "line %2i" %2i will be replaced by the value of i using at least 2 digits.

  • New fvariable declaration : possibility to declare an external C variable of block variability.

  • Redefinition of symbols is now considered an error instead of a simple warning

  • New syntax highlighting for TextWrangler (Macintosh)

  • snd-rt-gtk.cpp: a new architecture file to use Faust with snd-rt. (Contributed by Kjetil Matheussen)

  • synthfile.cpp: a new architecture file to generate audio files (contributed by Dominique Fober)

  • osc.lib: a new oscillator library containing fast filter-based oscillators (contributed by Julius Smith)

What's improved :

  • new additions to filter.lib and effect.lib : Piano dispersion filter, fifth-order fdelay5, notch filter, Second order transformer-normalized digital waveguide resonator... (contributed by Julius Smith)

  • Improved jack-gtk.cpp architecture file allowing to control the default connexions and to run several instances of the same program (contributed by Fons Adriaensen)

  • Huge speedup of type inference system for complexe expressions by using memoization and recursivness information

Bugs fixed :

  • Bug correction in the type inference system of recursive expressions

  • Better sharing of slow expressions apprearing delayed

  • Avoid division by zero and report error when block-diagrams with no inputs or outputs are used in merge and split compositions

  • The Faust compiler and some of the architecture files have been updated to replace char parameters by const char when appropriate


We are grateful to Fons Adriaensen, Dominique Fober, Albert Graef, Kjetil Matheussen, Julius Smith and all the contributors of this new release. Keep sending us remarks, suggestions, bug reports and contributions.

Posted by Yann Orlarey 2008-03-27

Log in to post a comment.