Material from the community

Here is a list of additional material contributed by the community of Faust developers or users.

Articles, Video and Blog Posts

Generate WAMs with FaustIDE

Web Audio Modules (WAM) ias a standard for Web Audio plugins and DAWs. The 2.0 version of Web Audio Modules has been released in 2021 as a group effort by a large set of people and since then, multiple plugins and hosts have been published, mostly as open source and free software.

The FAUST IDE is a very popular tool for generating WAMs from existing FAUST code (and there are hundreds of source code example available for audio effects, instruments, etc.). You can generate WAMs directly from the command line using the faust2wam script.

Mozzi Revisited

Mozzi brings your Arduino to life by allowing it to produce much more complex and interesting growls, sweeps and chorusing atmospherics. These sounds can be quickly and easily constructed from familiar synthesis units like oscillators, delays, filters and envelopes and can be programmed with Faust.

How to compile HISE and FAUST for Audio Plugin Development

This video shows how you can use Faust inside HISE. More info on how to use Faust in HISE can be found on the HISE Faust forum.

How to build Mod Duo plugin written in Faust

This article shows how you can compile a Faust program to run on Mod Duo.

Handling infinity and not-a-number (NaN) values in Faust and C++ audio programming

This post by Dario Sanfilippo discusses insights gained over a few years of audio programming to implement robust Faust/C++ software, particularly when dealing with infinity and NaN values.

Three ways to implement recursive circuits in the Faust language

This post by Dario Sanfilippo is about the implementation of not-so-simple recursive circuits in the Faust language.

Make LV2 plugins with Faust

This post by Nicola Landro is about making LV2 plugins with Faust.

Getting started with Faust for SuperCollider

This post by Mads Kjeldgaard is about using Faust with SuperCollider.

Get Started Audio Programming with the FAUST Language

This post by Matt K is about starting audio Programming with Faust.

Using Faust on the OWL family of devices

This tutorial focus on using Faust and on features that are specific to OWL and the OpenWare firmware.

I ported native guitar plugins to JavaScript (in-depth)

This post by Konstantine Kutalia is porting Faust coded Kapitonov Plugins Pack in JavaScript.

Using Faust with the Arduino Audio Tools Library

A blog about using Faust with Arduino Audio Tools.

Writing a Slew Limiter in the Faust Language

A video about writing a Slew Limiter in the Faust Language by Julius Smith.

Make an Eight Channel Mixer in the Faust IDE

A video about making an Eight Channel Mixer in the Faust IDE by Julius Smith.

Creating VSTs and more using FAUST

FAUST is a programming language that enables us to quickly create cross-platform DSP code. We can easily create VST plugins, Max-Externals and more. Its high-quality built-in library of effects and tools enables us to quickly draft high quality audio processing devices. The workshop aims at getting new users started, conveying what FAUST is good for and how to use it effectively to produce high quality results quickly.

Various Tools

Syntax Highlighting

tree-sitter-faust

Tree-sitter grammar Faust. Every Faust syntax feature should be supported. The npm package is here.

Syntax Highlighting Files

This folder contains syntax highlighting files for various editors.

Sublime Text syntax

Sublime Text syntax file for the Faust programming language.

Faust-Mode

Major Emacs mode for the Faust programming language, featuring syntax highlighting, automatic indentation and auto-completion.

Faustine

Faustine allows the edition of Faust code using emacs.

faust neovim plugin

Plugin to edit Faust code in the hyperextensible Vim-based text editor neowim.

Code Generators

faust2pdex

Generator of Faust wrappers for Pure Data. This software wraps the C++ code generated by Faust into a native external for Pure Data. You obtain a piece of source code that you can use with pd-lib-builder to produce a native binary with the help of make. No knowledge of C++ programming is required.

Faust.quark

This SuperCollider package makes it possible to create SuperCollider packages (Quarks) containing plugins written in Faust code. With this, you can distribute plugins written in Faust and make it easy for others to install, compile or uninstall them. It also contains some simple interfaces for the faust and faust2sc.py commands used behind the scenes.

ode2dsp

ode2dsp is a Python library for generating ordinary differential equation (ODE) solvers in digital signal processing (DSP) languages. It automates the tedious and error-prone symbolic calculations involved in creating a DSP model of an ODE.

Features:

  • Support linear and nonlinear systems of ODEs
  • Support trapezoidal and backward Euler discrete-time integral approximations
  • Approximate solutions of implicit equations using Newton's method
  • Render finite difference equations (FDEs) to Faust code
  • Calculate stability of ODEs and FDEs at an operating point

Contributing

Feel free to contribute by forking this project and creating a pull request, or by mailing the library description here.