Wednesday, November 20 • 11:30 - 11:55
Hybridizing FAUST and SOUL

Log in to save this to your schedule, view media, leave feedback and see who's attending!

FAUST (Functional Audio Stream) is a functional programming language for sound synthesis and audio processing, working at sample level, and with a strong focus on the design of synthesizers, musical instruments and audio effects. The core component of FAUST is its compiler, which translate any FAUST digital signal processing (DSP) specification to a wide range of non-domain specific languages such as C++, C, JAVA, LLVM bit code or WebAssembly. Thanks to a wrapping system called "architectures" codes generated by FAUST can be easily compiled into a wide variety of objects ranging from audio plugins to standalone applications or smartphone and Web applications.
The SOUL (SOUnd Language ) platform is a language and an API. The language is a small, carefully crafted DSL for writing the real-time parts of an audio algorithm. The API is designed to deploy that SOUL code to heterogeneous CPUs and DSPs, both locally and remotely. The SOUL language is secure by design and can be safely executed on remote devices, inside drivers, or inside bare-metal or realtime kernels, even without a sandbox. SOUL programs  are structured in a graph-like form. They can be JIT compiled and dynamically redeployed onto target processors with different parallelisation characteristics. 
Hybridizing FAUST and SOUL
Both approaches share common ideas: sample level DSP computation, fixed memory and CPU footprints, dynamic JIT compilation, CPU efficiency, multi-targets deployment (native and embedded platforms, web...).
After a possible Brexit, should each language and its developer community remain on their own territory? We do not think so: each approach has its advantages and disadvantages. Depending of the needs, some programmers prefer the imperative SOUL approach, others prefer the more declarative FAUST mathematical specification.

I will show how the two languages can be used together, and even possibly « hybridized », thanks to several tools developed this year with a close collaboration with SOUL developers: the Faust => SOUL backend now part of the Faust compilation chain, and several tools to help combining the two languages. Several working examples will then be demonstrated, during this 25 mins session, as well as during the "Build a synth with SOUL" worskop.

avatar for Stéphane Letz

Stéphane Letz

Head of research, GRAME CNCM
Head of research at GRAME-CNCM (https://www.grame.fr/) and in the Emeraude team (https://team.inria.fr/emeraude/) in Lyon, France. Working on the Faust Audio DSP language and eco-system (https://faust.grame.fr/... Read More →

Wednesday November 20, 2019 11:30 - 11:55 GMT
Lower River Room Puddle Dock, London EC4V 3DB