Faust: Functional programming language for sound synthesis and audio processing
Faust Programming Language


What is Faust?
Faust (Functional Audio Stream) is a functional programming language for sound synthesis and audio processing with a strong focus on the design of synthesizers, musical instruments, audio effects, etc. created at the GRAME-CNCM Research Department. 




Faust targets high-performance signal processing applications and audio plug-ins for a variety of platforms and standards.
The core component of Faust is its compiler. It allows to "translate" any Faust digital signal processing (DSP) specification to a wide range of non-domain specific languages such as C++, C, LLVM bit code, WebAssembly, Rust, etc. In this regard, Faust can be seen as an alternative to C++ but is much simpler and intuitive to learn.
Thanks to a wrapping system called "architectures," codes generated by Faust can be easily compiled into a wide variety of objects ranging from audio plug-ins to standalone applications or smartphone and web apps, etc.



The Faust Web IDE




Getting Started
If You're in a Hurry
If you’re in a hurry and just wanna have a look at how Faust programs look like, you can simply check the Faust Examples. 
If You Wanna Get Started With Faust
If you’re looking for a step by step tutorial of approximately 2 hours that will walk you through writing simple Faust programs and give you an overview of what Faust can do, have a look at our Quick Start Tutorial.
If You’re Looking for the "Manual"
Faust’s syntax and features are thoroughly documented in the Faust Manual. This resource contains hundreds of code examples and many short tutorials.
If You’re Looking for the Documentation of a Function in the Faust Libraries
The documentation of Faust's standard libraries is automatically generated directly from the libraries' source code.
If You prefer Video Tutorials
Check out the Faust Kadenze course.
If You want to discover Projects Powered by Faust
Check out the Powered by Faust page.
If You're looking for Papers on Faust
Check out Faust papers and reports on HAL.

Faust News
>> May 01, 2024: Four Google Summer of Code projects attributed

  

Four projects have finally been attributed to GRAME:


FaustNet - DDSP aims to continue the work done on adding automatic differentiation in Faust (started in a GSOC 2023 project), to leverage machine learning for audio processing tasks directly within the familiar Faust environment. It will be worked on by Advik Raj Basani.


Faust in Cables.gl aims to develop a Cables.gl plugin that compiles Faust DSP code into a WASM AudioWorklet in real-time. It will be worked on by Fay Carsons.


Amati++, a VST/CLAP Plugin embedding the dynamic compiler, inspired by the pMix and Amati projects, this plugin will be built using the JUCE framework for the interface and libfaust with LLVM and interpreter backend API to compile Faust code. It will be worked on by Tyler Li.


Faust Package Manager aims to add a packaging system to facilitate the integration of Faust libraries in a DSP project. It will be worked on by Shehab Khaled Roshdy.


Welcome to the Faust Community !
>> February 21, 2024: GRAME has been selected as a Google Summer of Code 2024 mentor organization

  

Google Summer of Code is a global, online program focused on bringing new contributors into open source software development. GSoC Contributors work with an open source organization on a 12+ week programming project under the guidance of mentors. For the third consecutive year, GRAME has been selected as a  mentor organization for the Faust project. 
>> December 02, 2023: Programmable Audio Workshop (PAW-23)
The 6th edition of Programmable Audio Workshop (PAW) will be held on December 2rd at the Marie Curie Library of INSA Lyon (France) on the La Doua campus and is organised by the Emeraude INRIA/INSA/GRAME-CNCM team. This year's theme is "Artificial intelligence and audio programming languages", with a strong focus on computer-aided music languages (Faust, ChucK, and PureData).
Full program, details of the talks and registration on the PAW website.
>> September 09, 2023: faust-web-component released !












Result of Ian Clester Google Summer of Code project, the faust-web-component package provides two web components for embedding interactive Faust snippets in web pages:


<faust-editor> displays an editor (using CodeMirror 6) with executable, editable Faust code, along with some bells & whistles (controls, block diagram, plots) in a side pane.
This component is ideal for demonstrating some code in Faust and allowing the reader to try it out and tweak it themselves without having to leave the page, and can been tested here. 


<faust-widget> just shows the controls and does not allow editing, so it serves simply as a way to embed interactive DSP, and can been tested here.


These components are built on top of faustwasm and faust-ui packages and is released as a npm package.
>> September 06, 2023: faust2rnbo released !

  

The faust2rnbo tool transforms a Faust DSP program into a RNBO patch containing a rnbo~ object and including the codebox code as a subpatch. The  tool has been deployed on the Faust remote compilation service, to be used from the Faust Web IDE.
All is explained in Using Faust in RNBO with codebox~ tutorial and can be used with the just released Max 8.5.6 version.
>> August 28, 2023: Google Summer of Code projects finished

  



Automatic Differentiation in the Faust Compiler aimed at adding automatic differentiation directly in the compiler, so that gradient calculation can be carried out natively in Faust, with applications in Machine Learning algorithms. The project was worked  by Thomas Rushton and completed with this Pull Request, and finally integrated in the Faust master-branch. 


Better Faust on the Web aimed at enhancing Faust’s support for the web platform, and was worked on by Ian Clester. Transitioning the Faust web tools to a rewritten TypeScript version has been completed and deployed in updated versions of the Faust editor and Faust playground and soon in the Faust Web IDE with this Pull Request. A Faust web component embedding the libfaust JS/WebAssembly compiler has been developed and will be used soon in the Faust documentation. The development is fully detailed in this blog post. 


Thanks Thomas Rushton and Ian Clester for the hard work during the three months period, and Agathe Herrou, David Braun and Jason Freeman for helping mentoring the two projects.
>> May 15, 2023: ADCx San Francisco Audio Dev Talks

  

The Audio Developer Conference San Francisco is a one day meet-up for audio developers by the bay. Two conferences are talking about Faust:


High-Level Programming of FPGAs for Audio Real-Time Signal Processing Applications by Romain Michon, which can be seen here.


Using Faust in JUCE Projects by Julius Smith, which can be seen here.


And even the following one with ChatGPT generating running Faust code:

Democratization of Audio Dev: How it started, Where it's going by Aurelius Prochazka.

>> May 04, 2023: Two Google Summer of Code projects attributed

  

Two projects have finally been attributed to GRAME:


Automatic Differentiation in the Faust Compiler aims at adding automatic differentiation directly in the compiler, so that gradient calculation can be carried out natively in Faust, with applications in Machine Learning algorithms. The project will be worked on by Thomas Rushton.


Better Faust on the Web aims at enhancing Faust’s support for the web platform: transition the Faust web tools to a rewritten TypeScript version, extend the Faust Web IDE, enhance Faust’s online documentation, and prototype an experimental platform for sharing Faust code on the web. The project will be worked on by Ian Clester.


Welcome to both of you in the Faust community !
>> March 24, 2023: Zen Flute 1° price at Guthman Musical Instrument 2023 Competition, with Faust inside !

  

The Guthman Musical Instrument Competition is one of the only competitions of its kind - an event dedicated to identifying the newest and greatest ideas in music. Every year, we invite musical inventors from around the world to share their creations and ideas about the future of music.
This year first price is Keith Bexter with the Zen Flute, which sound is produced by a physical model of flute written in Faust, and running on a Teensy audio board.
>> February 22, 2023: GRAME has been selected as a Google Summer of Code 2023 mentor organization

  

Google Summer of Code is a global, online program focused on bringing new contributors into open source software development. GSoC Contributors work with an open source organization on a 12+ week programming project under the guidance of mentors. For the second consecutive year, GRAME has been selected as a  mentor organization for the Faust project. 
>> December 03, 2022: Programmable Audio Workshop (PAW-22)
The 5th edition of Programmable Audio Workshop (PAW) will be held on December 3rd at the CITI laboratory of INSA Lyon on the La Doua campus. It will be organized this year by the EMERAUDE (Embedded Programmable Audio Systems) team created in 2022 and associating INSA-Lyon, INRIA and GRAME. With 7 conferences in the morning and 4 workshops in the afternoon, PAW addresses this year the theme of networked embedded audio systems, with a particular focus on spatialized sound and FPGAs (Field-Programmable Gate Arrays).
Full program, details of the talks and registration on the PAW website.
>> October 13, 2022: Google Summer of Code project finished

  

Faust Integration in HISE aimed at integrating support for the Faust audio programming language into HISE, an extensive framework for the creation of sample-based virtual musical instruments. The project has been completed by Roman Sommer with the help of Christoph Hart as mentor, and announced here.
>> June 5-12, 2022: Sound Music Computing (SMC-22) at Saint-Etienne (France)
SMC-22 (Sound and Music Computing) is a multifaceted event around acoustics, music, and audio technology. It will take place in Saint-Étienne (France) on June 4-12, 2022 and will have the following theme: Music Technology and Design. As the first "in person" edition of SMC after 2 years of COVID-19 pandemic, we aim at widening the public of this event by (i) broadening the scope of SMC concerts through a digital art festival opened to the public, (ii) involving local schools and publics, and (iii) strengthening connections between academia and the industry.
SMC-22 will be a combination of a Summer School (June 5-7, 2022), the International Faust Conference (June 7, 2022), the SMC Scientific Conference, Industry-Oriented Events, a Festival (June 8-11, 2022), and a STEAM (Science Technology Engineering Arts and Mathematics) Fair - "Faites du son!" (June 9-12).
Most Faust related presentations are obviously part of IFC, but several SMC presentations are related to Faust.

  

>> June 7, 2022: Third International Faust Conference (IFC-22) in conjunction with SMC 2022 at Saint-Etienne (France)
The International Faust Conference aims at gathering researchers, developers, musicians, computer artists using the Faust programming language. The Third International Faust Conference (IFC-22) will propose sessions of paper presentations, as well as thematic round tables, demonstrations, and tutorials. Participants are encouraged to present current works, projects, etc. and to discuss future directions for Faust and its community.
IFC-22 is organized by GRAME-CNCM, INRIA, and Université Jean Monnet in conjunction with  SMC 2022. It will take place on June 7, 2022 at the Centre des Savoirs pour l’Innovation (CSI) of the Université Jean Monnet of Saint-Etienne (France).

  

>> May 20, 2022: Two Google Summer of Code projects attributed

  

Two projects have finally been attributed to GRAME:


Faust Integration in HISE aims at integrating support for the Faust audio programming language into HISE, an extensive framework for the creation of sample-based virtual musical instruments. The project will be worked on by Roman Sommer.


Integrating Faust Into the Bespoke DAW aims at extending the modular Bespoke engine with Faust, allowing for both static compilation of modules, and potentially dynamic programming within Bespoke. The project will be worked on by Drew James.


Welcome to both of you in the Faust community !
>> March 7, 2022: GRAME has been selected as a Google Summer of Code 2022 mentor organization

  

Google Summer of Code is a global, online program focused on bringing new contributors into open source software development. GSoC Contributors work with an open source organization on a 12+ week programming project under the guidance of mentors. GRAME has been selected as a  mentor organization for the Faust project. 
>> February 5, 2022: Open Science Award for Open Source Research Software for Faust

  

Great birthday present for the 20th anniversary of the Faust language! Developed by Grame since 2002, supported by a whole community of users and contributors, Faust is one of the four winners of the Open Science Award for Open Source Research Software (documentation category) awarded at the Open Science European Conference (OSEC).
>> December 18, 2021: Programmable Audio Workshop (PAW-21)
With a combination of talks and workshops, PAW is an intensive day devoted to electronic sounds and programmable audio technologies! The 6 talks and 4 workshops of PAW 2021, will offer a unique opportunity to discover Procedural Audio in relation with video game engines!
>> February 1, 2021: Faust Physical Modeling Workshop -- Online Event



Faust has been used for the physical modeling of musical instruments for many years now. Various tools have been developed recently to address the needs of various modeling techniques (e.g., finite difference scheme, waveguides, mass interaction, etc.).
The goal of this one day workshop was to provide a series of interactive one-hour tutorials on these tools as well as some background on their related modeling techniques.
It took place online on Feb. 1, 2021, 3-9pm GMT+1. Additional information about this event can be found here.
>> November 21, 2020: Programmable Audio Workshop (PAW-20) -- Online Event
With a combination of talks and workshops, PAW is an intensive day devoted to electronic sounds and programmable audio technologies! PAW-20 will be a fully online event. Information about the free registration process will be posted soon!



PAW 2019



>> December 1-2, 2020: International Faust Conference 2020 (IFC-20) -- Online Event
The Second International Faust Conference (IFC-20) will take place at the Maison des Sciences de l’Homme Paris Nord (Saint-Denis, France) on December 1-2, 2020. It aims at gathering researchers, developers, musicians, computer artists using the Faust programming language to present current works, creations and projects and discuss future directions for Faust and its community. The 2020 edition is organized by the CICM (Centre de Recherches Informatique et Création Musicale) / MUSIDANSE Lab / Université Paris 8.



IFC 2018



>> FAST Project: Fast Audio Signal Processing Technologies on FPGA
The FAST project will start in March 2021! It is funded by the Agence Nationale de la Recherche (ANR -- the French National Research Agency). It gathers the strength of GRAME-CNCM, CITI Lab (INSA Lyon), and LMFA (École Centrale Lyon) towards two goals:

facilitate the design of ultra-low latency embedded systems for real-time audio signal processing,
use such systems in the context of active control of acoustics.

Faust will play a central role in this project.