Faust: A Programming Language For Sound (with Romain Michon)

I’m always interested in what factors shape the design of a programming language. This week we’re taking a look at a language that’s wholly shaped by its need to support a very specific kind of program - audio processing. Anything from creating a simple echo sound effect, to building an entire digital instrument based on a 17th-century harpsichord. The language in question is Faust, and this week we’re joined by Romain Michon, who works on and teaches Faust, as we look at how it’s designed, what kind of programmers it's for, and how it does the job of turning audio-pipeline definitions into executable code. And one of the surprising parts of that compilation strategy is the decision to have it compile to multiple targets, from the expected ones like C and Rust, to the exotic destination of FPGAs (Field Programmable Gate Arrays). FPGAs are like reprogrammable circuit boards, and Romain dives into Faust’s attempts to go from a high-level description of an audio program, all the way down to instructions that tell a chip exactly how it should wire itself. So rather aptly for a technology podcast, we start this week with what your ear can hear and go all the way down to logic gates and circuit boards… – Try Faust in the Browser: https://faustide.grame.fr/ Faust Online Course: https://www.kadenze.com/courses/real-... FPGAs: https://en.wikipedia.org/wiki/Field-p... VHDL: https://en.wikipedia.org/wiki/VHDL Verilog: https://en.wikipedia.org/wiki/Verilog Grame: https://www.grame.fr/ The (Strawberry Jam) Gramophone: https://www.grame.fr/articles/gramophone Gramophone Workshops: https://www.grame.fr/evenements/ateli... Support Developer Voices on Patreon:   / developervoices   Support Developer Voices on YouTube:    / @developervoices   Kris on Mastodon: http://mastodon.social/@krisajenkins Kris on LinkedIn:   / krisjenkins   Kris on Twitter:   / krisajenkins   – 0:00 Intro 2:28 What Is Faust? 6:02 Who Uses Faust? 9:53 Why Is Java A Code-Generation Target? 12:57 How Do You Design An Audio-Centric Language? 22:39 Do Memory & Type-Safety Issues Matter? 25:42 What About Parallel Processing? 31:10 How Is Faust Code Compiled? 36:20 Compiling to FPGAs 51:07 High Level Synthesis For FPGA Programming 1:03:59 Which Parts Of Faust Do You Teach? 1:14:04 How Do Start Using Faust? 1:16:32 Outro

Designing The Lustre Web Framework (with Hayleigh Thompson)
▶︎

Designing The Lustre Web Framework (with Hayleigh Thompson)

Is Odin "Programming done right"? (with Bill Hall)
▶︎

Is Odin "Programming done right"? (with Bill Hall)

What's Zig got that C, Rust and Go don't have? (with Loris Cro)
▶︎

What's Zig got that C, Rust and Go don't have? (with Loris Cro)

Top 5 Languages For Audio Programming
▶︎

Top 5 Languages For Audio Programming

Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones
▶︎

Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains
▶︎

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains

CppCon 2015: Timur Doumler “C++ in the Audio Industry”
▶︎

CppCon 2015: Timur Doumler “C++ in the Audio Industry”

Exploring Verse, Haskell, Language Design and Teaching (with Simon Peyton Jones)
▶︎

Exploring Verse, Haskell, Language Design and Teaching (with Simon Peyton Jones)

Software architecture, human judgment, and AI's limits with Grady Booch
▶︎

Software architecture, human judgment, and AI's limits with Grady Booch

How Lisp is designing Nanotechnology (with Prof. Christian Schafmeister)
▶︎

How Lisp is designing Nanotechnology (with Prof. Christian Schafmeister)

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup
▶︎

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup

The Uncomfortable Truth About AI “Reasoning” | World Science Festival
▶︎

The Uncomfortable Truth About AI “Reasoning” | World Science Festival

The Golden Rules of Audio Programming - Pete Goodliffe - ADC16
▶︎

The Golden Rules of Audio Programming - Pete Goodliffe - ADC16

Reinventing Entropy | Compression is Intelligence Part 1
▶︎

Reinventing Entropy | Compression is Intelligence Part 1

"Boundaries of Language Design" with Andrew Kelley & Ginger Bill
▶︎

"Boundaries of Language Design" with Andrew Kelley & Ginger Bill

Jonathan Blow - Jai Demo and Design Explanation (KEYNOTE) - Updated
▶︎

Jonathan Blow - Jai Demo and Design Explanation (KEYNOTE) - Updated

Dillon Mulroy - Your next favorite programming language: Gleam // Carolina Code Conference 2024
▶︎

Dillon Mulroy - Your next favorite programming language: Gleam // Carolina Code Conference 2024

Keynote: After the AI Hype – What’s Real, and What’s Next - Richard Campbell - 2026
▶︎

Keynote: After the AI Hype – What’s Real, and What’s Next - Richard Campbell - 2026

Is Gleam your next programming language? (with Louis Pilfold)
▶︎

Is Gleam your next programming language? (with Louis Pilfold)

High-Level Programming of FPGAs for Audio Real-Time Signal Processing Applications - Romain Michon
▶︎

High-Level Programming of FPGAs for Audio Real-Time Signal Processing Applications - Romain Michon