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. 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.
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.).
Online Faust IDE
The Online Faust IDE is a zero-conf tool that provides all the compilation services, including binaries generation for all the supported platforms and architectures, but also various utilities for signal processing development.
Using Faust in Julia
A new backend to generate Julia code from Faust DSP programs has been recently added in the compiler. The resulting code can be integrated in Julia with in different ways. This is covered in the Using Faust in Julia tutorial.
This is very much a WIP, since we are quite new in using the amazing Julia language. We are interested to get feedback on this initiative, in ways it can be improved, or whatever idea that can emerge.