CCRMA Workshop: Audio Plugins with Faust and JUCE

Learn how to design sound synthesis and processing objects in the Faust programming language, then port them as plugins using C++ and JUCE

About this event


In this online workshop, participants will learn how to design sound synthesis and processing objects in the Faust programming language and then port these algorithms as cross platform plugins using C++ and JUCE.

The first part of the week will be dedicated to learning Faust (Functional Audio Stream), a functional programming language for sound synthesis and audio processing with a strong focus on the design of synthesizers, musical instruments and audio effects. Faust targets high-performance signal processing applications and audio plug-ins for a variety of platforms and standards.

Faust promotes designing the block diagram, and then automates the porting of the DSP graph to efficient C++. This high level approach makes Faust ideal for designing audio plugins that can be used in a variety of workflows and DAWS.

JUCE will be used in the latter part of the week to port our DSP algorithms to cross-platform audio plugins with custom UI design. Participants will leave the workshop with their own audio plugin as well as an understanding of the essential workflow to continue designing custom audio tools.

Covered Topics

Faust programming

Digital Signal Processing for sound synthesis and audio effects (i.e., band-limited oscillators, filters, tremolo, physical modeling, reverb, chorus, flanger, phaser, distortion, echo, etc.)

JUCE fundamentals (i.e., project management, export to different plug-in formats, audio engine architecture, MIDI support, etc.)

Graphical user interface design with JUCE and C++


Romain Michon — Researcher and Lecturer — GRAME-CNCM, Lyon (France) & CCRMA, Stanford University (USA)

John Granzow — Associate Professor — University of Michigan (USA)

Additional Information

This workshop is intended for musicians, makers, engineers, computer scientists, etc. Previous background in computer programming (ideally with some knowledge in C++) and sound synthesis/processing is recommended. Participants will use their own laptop. Feel free to contact the workshop instructors for additional information.


For technical questions about the workshop, feel free to contact Romain Michon (rmichon_at_ccrma_dot_stanford_dot_edu) or John Granzow (jgranzow_at_umich_dot_edu).

For questions about registration, feel free to contact Nette Worthey (networth_at_ccrma_dot_stanford_dot_edu).