# Faust, the DSP language

Both a DSL and a low-level language; worth including in a category of its own.

FaustDSP is an academic functional programming language for DSP algorithms. Source is on github Multi-platform in the broadest possible sense: Write one bit of code, and run your algorithm embedded inside a diversity of other programs, such as MaxMSP/puredata/c++/VST/javascript… 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.

• Julius O. Smith has some intro lectures (Alternate version)
• Romain Michon's Stanford chipper little Faust Course is hands-on
• has a python interface because why not.
• polyphony is tricky
• it can also be controlled over the internet:

shell faust2jaqt - httpd mix4 . dsp

• 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.

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