Faust Libraries

The Faust libraries implement hundreds of DSP functions for audio processing and synthesis. They are organized by types in a set of .lib files (e.g., envelopes.lib, filters.lib, etc.). Librairies use semantic versioning, so may evolve in a manner where newer versions break compatibility with older ones. The recommended way to solve this issue is to keep self-contained versions of the DSP code (that is the DSP program with all needed libraries) as explained in Goals of the Mathdoc.

This website serves as the main documentation of the Faust libraries. The main Faust website can be found at the following URL:

https://faust.grame.fr

Using the Faust Libraries

The easiest and most standard way to use the Faust libraries is to import stdfaust.lib in your Faust code:

import("stdfaust.lib");

This will give you access to all the Faust libraries through a series of environments:

  • sf: all.lib
  • aa: aanl.lib
  • an: analyzers.lib
  • ba: basics.lib
  • co: compressors.lib
  • de: delays.lib
  • dm: demos.lib
  • dx: dx7.lib
  • en: envelopes.lib
  • fd: fds.lib
  • fi: filters.lib
  • ho: hoa.lib
  • it: interpolators.lib
  • la: linearalgebra.lib
  • ma: maths.lib
  • mi: mi.lib
  • ef: misceffects.lib
  • os: oscillators.lib
  • no: noises.lib
  • pf: phaflangers.lib
  • pm: physmodels.lib
  • qu: quantizers.lib
  • rm: reducemaps.lib
  • re: reverbs.lib
  • ro: routes.lib
  • si: signals.lib
  • so: soundfiles.lib
  • sp: spats.lib
  • sy: synths.lib
  • ve: vaeffects.lib
  • vl: version.lib
  • wa: webaudio.lib
  • wd: wdmodels.lib

Environments can then be used as follows in your Faust code:

import("stdfaust.lib");
process = os.osc(440);

In this case, we're calling the osc function from oscillators.lib.

You can also access all the functions of all the libraries directly using the sf environment:

import("stdfaust.lib");
process = sf.osc(440);

Alternatively, environments can be created by hand:

os = library("oscillators.lib");
process = os.osc(440);

Finally, libraries can be simply imported in the Faust code (not recommended):

import("oscillators.lib");
process = osc(440);

Organization of This Documentation

The Overview tab in the upper menu provides additional information about the general organization of the libraries, licensing/copyright, and guidelines on how to contribute to the Faust libraries.

The Libraries tab contain the actual documentation of the Faust libraries.