Faust, the DSP language

FaustDSP is an academic functional programming language for DSP algorithms. Source is on github. Multi-platform in a broad sense:

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.

Comes with category-theoretic rationale, and an optional IDE. I could also file it under “patchers”, but the patcher-style visualisation is strictly isomorphic to the code version, so that’s not actually a negative for once.

It can also be controlled over the internet:

faust2jaqt - httpd mix4 . dsp

I think the design of this language is elegant, but I’m not sure this solves the problems I am facing. I would like to integrate sophisticated ML algorithms into my DSP code, which means that I would benefit from my DSP being conducted inside my ML framework.


It’s not clear how you access buffers in faust at first glance. The keyword is table. See stream looper for one example and Mayank Sanganeria’s classic granulator for another.

🏗 work out how to fill buffers from the disk via the hosting application (e.g. VST infrastructure.)


Slack is probably the fastest way to get help with Faust: https://faustaudio.slack.com.

The Audio Programmer community discord community has a #faust channel.

No comments yet. Why not leave one?

GitHub-flavored Markdown & a sane subset of HTML is supported.