The Faust programming language provides a generic way to implement signal processing algorithms for sound synthesis and processing towards professional audio applications. Thanks to its architecture system, Faust can be used to generate a wide range of ready-to-use elements such as audio plug-ins (e.g., VST, AU, etc.), externals for other computer music environments (e.g., ChucK, Max/MSP, PD, CSOUND, SuperCollider, etc.), standalone applications, mobile apps, web apps, etc. Additionally, it is a great tool to make DSP engines embeddable in larger projects.
This course provides an in-depth overview to the Faust programming language including fundamentals of functional programming. Students will implement a wide range of audio effects and synthesizers from scratch and learn how to turn them into various “finished” audio products. It also emphasizes the use of Faust to create DSP engines usable in existing projects.
The various programming assignments will help students solidify their understanding of the language. They will also give them the opportunity to use Faust in a creative way to implement professional-grade audio applications.