Faust is a functional programming language for real-time signal processing and sound synthesis that compiles to multiple target languages and platforms.
Faust addresses the challenge of writing efficient, portable audio processing code by providing a high-level functional language that the compiler translates directly into optimized implementations. Rather than writing separate code for each target platform, developers write a single Faust specification that the compiler transforms into C++, C, Java, LLVM IR, WebAssembly, and other languages. This approach works at the sample level to achieve high performance while maintaining the abstraction benefits of functional programming. The same specification can generate native standalone applications, mobile apps, and plugins for various audio standards including VST, AU, Max/MSP, Pure Data, SuperCollider, and Csound.
Faust suits developers building audio applications, digital signal processing libraries, and audio plugins who want to avoid rewriting code for different platforms and plugin formats. The language is particularly valuable when targeting multiple architectures simultaneously—a single Faust program can produce iOS and Android apps alongside desktop VST plugins and web-based WebAssembly implementations. The tool's embeddability through libfaust makes it useful for projects that need to integrate DSP compilation into larger C++ applications. Faust is maintained at Grame, a French music research institution, with contributors distributed globally.
The project maintains a clear separation between a stable master branch and an active master-dev development branch, with merges to master typically occurring at release points. The codebase has continuous integration testing across Ubuntu, macOS, and Windows platforms. The architecture folder contains extensive documentation of supported plugin formats and target platforms, indicating sustained effort to maintain compatibility across the audio ecosystem.