Skip to content

FlatIO/faust

 
 

Repository files navigation

FAUST - a programming language for audio applications and plugins

Grame, Centre National de Creation Musicale : http://www.grame.fr

Build Status

Introduction

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.

Organization of the distribution

The Faust distribution can be downloaded at: Faust Github Repo

It's organization is the following :

architecture/          : the architecture files and libraries currently supported
benchmark/             : tools to measure the impact of various compiler options
compiler/              : sources of the Faust compiler
documentation/         : Faust developer's documentation
debian/                : files for Debian installation
examples/              : examples of Faust programs with makefiles for various audio targets
installer/             : various instalers for Linux distribution
libraries/             : DSP libraries
syntax-highlighting/   : support for syntax highlighting for several editors
test/                  : various tests
tools/                 : additional easy-to-use scripts to produce binaries and plugins
windows/               : Windows projects

Compilation and installation

To compile and install the Faust compiler on Linux and MacOSX :

make
su
make install

or

sudo make install

It could be also useful to install additional tools, for example :

cd tools/faust2appls/
sudo make install

On Windows :

The first option is to use the Visual Studio 2008 solution /faust/compiler/windows/faust_vs2008.sln. Open the solution with the Visual Studio 2008 environment and run Build. Both Debug/Release targets are supported.

The second solution is to download and install the QT4.6 SDK : QT4.6 SDK and use the project file 'compiler.pro' in the compiler folder.

Compilation of the examples

Several FAUST examples are provided in the example folder. To compile and test the examples with Jack/GTK do :

cd examples
make jackgtk

This will create a subfolder jackgtkdir with all the jack applications. You can also create alsa applications (make alsagtk) as well as other formats.

In order to compile your own applications, you can simply place you files in the example folder and use the existing makefiles.

To list for possible audio targets :

make help

About 20 different audio platforms are supported :

  • Action Script
  • Alsa
  • ChucK
  • CoreAudio
  • CSOUND
  • iPhone
  • Jack
  • LADSPA
  • Matlab
  • MaxMSP
  • Octave
  • OSS
  • PortAudio
  • Pure
  • PureData
  • Q
  • Sndfile
  • Snd-RT
  • SuperCollider
  • SynthFile
  • VST
  • VSTi (mono)

For all these audio platforms you may have to install the related SDK and/or development libraries.

Acknowledgments

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, 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)

Questions and suggestions

If you have questions suggestions and comments, or if you want to contribute to the project, two mailing lists are available:

Yann Orlarey

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 74.5%
  • JavaScript 8.1%
  • Objective-C++ 4.9%
  • Objective-C 3.7%
  • Java 3.7%
  • C 1.4%
  • Other 3.7%