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.