Faust: Quick Introduction

Faust is a functional audio programming language, developed at GRAME, Lyon. It is a community-driven, free open source project. Faust is specifically suited for quickly designing musical synthesis and processing software and compiling it for a large variety of targets.

Tools for Working with Faust

Working with Faust offers a large toolbox. Downloads are found here:

https://faust.grame.fr/downloads/index.html

Faust Compiler

The Faust compiler is the center-piece of the Faust development tools. Faust code is written in *.dsp files, which are converted to C++ code and then compiled for the desired system. The Faust compiler can be called directly from the command line or by other programs, such as the IDE FaustWorks. When called from the command line, Faust is compiled to the desired target using a faust2* command, which actually calls a build script.

Depending on your operating system and build target, additional libraries or tools may be required. Targets of interest can be:

Linux

  • faust2alsaconsole : ALSA command line program
  • faust2alqt : ALSA application with Qt UI
  • faust2alsa : ALSA application with GTK UI

Plugins

  • faust2ladspa : LADSPA plug-in
  • faust2lv2 : LV2 plug-in
  • faust2faustvst : VST plug-in
  • faust2au : Audio Unit plugin

Music Programming Environments

  • faust2supercollider : SuperCollider external
  • faust2puredata : PureData external
  • faust2max6 : MaxMSP 6 (and later) external and patch
  • faust2csound : CSOUND Opcode

Jack

  • faust2jackconsole : JACK command line program
  • faust2jack : JACK application with GTK UI
  • faust2jaqt : JACK application with Qt UI

MAC / IOS

  • faust2ios : iOS app
  • faust2caqt : CoreAudio application with Qt UI
  • faust2caqtios : iOS app with Qt UI

PI $ Co

  • faust2rpialsaconsole : Raspberry Pi ALSA command line program
  • faust2bela : BELA program

Microcontroller

  • faust2esp32 : ESP32 board
  • faust2teensy

JUCE

  • faust2juce : JUCE Procects

  • faust2unity

    ... and more ...

Compiling the first example as a PD external would be:

$ faust2puredata sine.dsp

FaustWorks

FaustWorks is an integrated development environment for Faust. It includes an editor and manages complilation.

Online Editor

First steps and small programs can be experienced using the online editor for Faust:

https://faust.grame.fr/tools/editor/index.html



Contents © Henrik von Coler 2020 - Contact