I think Faust is great and one of the most fun things I've discovered in the past year... I've built a trombone simulator with it, a speech synthesizer, and now I'm making a DIY spatial audio setup. It compiles to C++ so it's portable to basically any platform, and it's super easy to produce webassembly, or a macOS executable, etc etc etc.
Really fascinating. I was able just now to generate a vsti for windows32 from one of the code example, that works!! There is no real UI but the parameters are accessible (like the plugins made by Airwindows for instance). For some reason the win64 version hangs the host (Reaper), but seeing it work that simply is super exciting. What did you use to learn Faust? Just the online tutorial or some specific video? Do you…
Faust: Functional programming language for sound synthesis and audio processing
11–20 of 29 posts
Re: Faust: Functional programming language for sound synthesis and audio processing
#12It’s been an inspiration for me too in building Elementary Audio [1], which you might find interesting if you’re a JavaScript developer
Re: Faust: Functional programming language for sound synthesis and audio processing
#13Re: Faust: Functional programming language for sound synthesis and audio processing
#14Anyone interested in functional programming and sound synthesis might also find YampaSynth[0] interesting. It's a Haskell library based on declarative programming of modular synthesizers[1]. Definitely some very cool concepts. [0] https://hackage.haskell.org/package/YampaSynth [1] https://www.researchgate.net/publication/234793878_Switched-...
Re: Faust: Functional programming language for sound synthesis and audio processing
#15The problem with audio processing has always been latency. Are there functional programming languages out there which can guarantee bounds on latency?
Galois has done work in Haskell for developing hard real-time applications. Here’s a dataflow language they built for example: https://leepike.github.io/pub_pages/rv2010.html
Re: Faust: Functional programming language for sound synthesis and audio processing
#16The problem with audio processing has always been latency. Are there functional programming languages out there which can guarantee bounds on latency?
Math operations on a DSP/CPU require cycle time. Cycle time can vary, but even a simple comparison can be 1-2 cycles, which could be nanoseconds of latency.
Re: Faust: Functional programming language for sound synthesis and audio processing
#17The problem with audio processing has always been latency. Are there functional programming languages out there which can guarantee bounds on latency?
It compiles down to deterministic C++. Each frame of audio takes exactly the same computation path; ditto for each sample within each frame. (Although some parameters might be updated once per frame, and others updated once per sample.)
You could inspect the output C++ and count up the number of cycles for each frame of audio, if you wanted.
Re: Faust: Functional programming language for sound synthesis and audio processing
#18The problem with audio processing has always been latency. Are there functional programming languages out there which can guarantee bounds on latency?
It's functional, not interpreted, if that's what you're getting at. It compiles down to deterministic C++. Each frame of audio takes exactly the same computation path; ditto for each sample within each frame. (Although some parameters might be updated once per frame, and others updated once per sample.) You could inspect the output C++ and count up the number of cycles for each frame of audio, if you wanted.
Re: Faust: Functional programming language for sound synthesis and audio processing
#19The problem with audio processing has always been latency. Are there functional programming languages out there which can guarantee bounds on latency?
faust programs basically define a signal flow that gets compiled down to various languages, there won't be any latency besides the one that may be part of your own algorithm.
Re: Faust: Functional programming language for sound synthesis and audio processing
#20I think Faust is great and one of the most fun things I've discovered in the past year... I've built a trombone simulator with it, a speech synthesizer, and now I'm making a DIY spatial audio setup. It compiles to C++ so it's portable to basically any platform, and it's super easy to produce webassembly, or a macOS executable, etc etc etc.
Really fascinating. I was able just now to generate a vsti for windows32 from one of the code example, that works!! There is no real UI but the parameters are accessible (like the plugins made by Airwindows for instance). For some reason the win64 version hangs the host (Reaper), but seeing it work that simply is super exciting. What did you use to learn Faust? Just the online tutorial or some specific video? Do you…
I also learned by looking at the standard libraries' source code [2] and the online manual [3]. For the actual DSP knowledge, which I was learning at the same time and which isn't specific to Faust, I was reading J. O. Smith III's writings [4] (in particular, Physical Audio Signal Processing was most relevant to me).
I published my trombone simulator [5] as a web app but without the source. I haven't published the speech synthesizer or spatial audio stuff but I may in the future.
[1] https://faustide.grame.fr/
[2] https://github.com/grame-cncm/faustlibraries/
[3] https://faustdoc.grame.fr/