	 		FAUST : a programming language for
	 		  audio applications and plugins
					==============
	 Grame, Centre National de Creation Musicale
	 			 http://www.grame.fr



1/ Introduction
----------------
Faust is a functional programming language specifically designed for realtime audio applications and plugins. The syntax of the language is block diagram oriented. The faust compiler translate signal processing specifications into optimized C++ code for signal processing applications.

The generated code can be wrapped into an 'architecture file' in order to create for example a standalone jack/gtk application, a VST plugin, etc. Several architecture file are provided and additional contributions are welcome.


2/ Organisation of the distribution
-----------------------------------
architecture		: the architecture files currently supported
compiler			: sources of the Faust compiler
examples			: examples of Faust programs
syntax-highlighting	: support for syntax highlighting for several editors
documentation 		: Faust developer's documentation


3/ Compilation and installation
--------------------------------
There is no configuration phase. To compile and install the Faust compiler do :

	make
	su
	make install


2/ Compilation of the examples
-------------------------------
Several faust examples are provided in the example folder. To compile and test the examples with Jack 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.

The supported architectures are the following :

	jack-gtk.cpp
	alsa-gtk.cpp
	q.cpp
	vst.cpp
	ladspa.cpp
	supercollider.cpp
	max-msp.cpp
	sndfile.cpp

Other architecture files are also available :

	oss-gtk.cpp
	plot.cpp
	bench.cpp
	oss-wx.cpp
	minimal.cpp
	pa-gtk.cpp
	jack-wx.cpp
	module.cpp
	pa-wx.cpp


3/ Limitations
--------------
The SIMD code generator is outdated and will be replaced in future versions. The generation of postscript files (-ps) doesn't work very well and have to be updated


4/ Acknowledgments
------------------
Several persons have contributed to the project, in particular :

	- Thomas Charbonnel
	- Etienne Gaudrin
	- Albert Graef
	- Stefan Kersten
	- Mathieu Leroi
	- Remy Muller
	- Nicolas Scaringella

as well as my colleagues Dominique Fober and Stephane Letz


5/ Questions and suggestions
----------------------------

If you have questions suggestions and comments, or if you want to contribute to the project, you can contact me by email : orlarey@grame.fr



Yann Orlarey

