Faust Foundry: A Software Kit to Make Bell Physical Models for Musical Applications

Campanology Symposium 2017 - University of Michigan

Romain Michon and Sara R. Martin
CCRMA - Stanford University


  • Functional Audio Stream
  • Functional programming language (DSL) for real-time DSP
  • The Faust compiler can generate code in a wide range of lower level languages (e.g., C, C++, JAVA, JavaScript, LLVM, WebAssembly, etc.)
  • Faust's architecture system allows to compile Faust codes as various types of high level objects (e.g., audio plug-ins, externals, standalones, smartphone apps, etc.)

Faust and Physical Modeling of Musical Instruments

Faust physical modeling library and toolkit

  • Work in progress
  • Bidirectional environment
  • Library of high and low level elements for waveguide and modal physical modeling
  • Various tools to generate cutom elements from impulse responses and 3D CAD models using modal synthesis

singleReedMod(length,pressure,reedStiffness,bellOpening) =
	modelChain = chain(
		clarinetMouthPiece(reedStiffness,pressure) :
		openTube(length) :
		wbBell(bellOpening) : out );

Clarinet physical model implemented with the Faust Physical Modeling Library


  • Part of the Faust physical modeling toolkit
  • Takes a volumetric mesh (.obj format) and converts it into a Faust modal physical model using Finite Element Method
  • Based on Vega FEM Library (by Jernej Barbič at Carnegie Mellon University)
  • Generated models are compatible with the Faust physical modeling library and can be easily integrated to it

Fully open-source approach to FEA and physical modeling

Applying this approach to bells

  • Bells are easy to model by carrying out a rotate extrude on a cross-section 2D drawing
  • Modes T60s play an extremely important role in the perception of bell sounds:
    • Simplified models of bells (presented today) do not simulate them
    • T60s can be modeled by using a more complicated model of the object and solve it with FEM (further work)
  • Making a CAD model and a mesh of a bell that sounds good is not that simple


Raw model

Same model with adjusted shape and t60s

Corresponding web apps


More bell models


  • High level tool perfect for exploring the "sonic potential" of 3D objects
  • Modal synthesis is extremely flexible, especially when implemented with resonant filters, and can be easily combined with other elements
  • At the moment, modes T60s must be tuned independently to synthesize realistic bell sounds
  • The quality of the CAD model and of the corresponding mesh is crucial to generate finely tuned bell physical models

Thanks! :) Questions?