## Auto-differentiation of Faust Programs in the faust-rs Compiler ** Warning: This project requires a Linux machine. We can provide a loaner machine if needed.** The **Faust language** (https://faustide.grame.fr/) is a programming language dedicated to audio DSP, developed by the CITI Emeraude team (https://team.inria.fr/emeraude/) and Grame (https://www.grame.fr/). *faust-rs* is a new version of the Faust compiler that integrates auto-differentiation capabilities, making Faust programs easier to integrate into machine learning environments. The work of this project will consist of following the existing tutorial on auto-differentiation in faust-rs (https://github.com/grame-cncm/faust-rs/blob/main/libraries/optimizers-ddsp-tutorial-fr.md) and then exploring the limits of auto-differentiation in Faust, in particular in terms of compilation time and convergence speed for larger programs. **Teachers:** Tanguy Risset ([Tanguy.Risset@insa-lyon.fr](mailto:Tanguy.Risset@insa-lyon.fr)) and Stéphane Letz ([letz@grame.fr](mailto:letz@grame.fr)) This project will require learning the Faust language (https://faust.grame.fr/) and requires basic C++ knowledge and some knowledge of machine learning. No prior knowledge of Rust is required. The project must be carried out on a Linux machine, as the faust-rs compiler currently does not work on Windows or macOS. The Emeraude team can provide a Linux laptop if necessary.