Mot-clé : FAUST

2018

Building Faust with CMake

International Faust Conference, 2018, Mainz, Germany

This paper describes the new Faust building system that is now based on CMake. This new building system preserves the previous Makefile approach as much as possible while offering far more flexibility and above all, a platform independent solution for compiling the various faust components. The paper gives practical information to address basic uses of the building system as well as for advanced and custom settings.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
DSP, Ecosystem, FAUST

MENDING BELLS AND CLOSING BELFRIES WITH FAUST

International Faust Conference, 2018, Mainz, Germany

Finite Element Analyses (FEA) was used to predict the resonant modes of the Tsar Kolokol, a 200 ton fractured bell that sits outside the Kremlin in Moscow. Frequency and displacement data informed a physical model implemented in the Faust programming language (Functional Audio Stream). The authors hosted a concert for Tsar bell and Carillon with the generous support of Meyer Sound and a University of Michigan bicentennial grant. In the concert, the simulated Ts... read_more

Finite Element Analyses (FEA) was used to predict the resonant modes of the Tsar Kolokol, a 200 ton fractured bell that sits outside the Kremlin in Moscow. Frequency and displacement data informed a physical model implemented in the Faust programming language (Functional Audio Stream). The authors hosted a concert for Tsar bell and Carillon with the generous support of Meyer Sound and a University of Michigan bicentennial grant. In the concert, the simulated Tsar bell was triggered by the keyboard and perceptually fused with the bourdon of the Baird Carillon on the University of Michigan campus in Ann Arbor.

John Granzow, Tiffany Ng, Chris Chafe, Romain Michon

Mots-clés :
DSP, Ecosystem, FAUST

3D Printing and Physical Modeling of Musical Instruments: Casting the Net

Sound and Music Computing Conference, 2018, Limassol, Cyprus

Predicting the acoustics of objects from computational models is of interest to instrument designers who increasingly use Computer Assisted Design. We examine techniques to carry out these estimates using a database of impulse responses from 3D printed models and a custom algorithm for mode interpolation within a geometrical matrix. Test geometries are organized as a function of their physical characteristics and placed into a multidimensional space/matrix whos... read_more

Predicting the acoustics of objects from computational models is of interest to instrument designers who increasingly use Computer Assisted Design. We examine techniques to carry out these estimates using a database of impulse responses from 3D printed models and a custom algorithm for mode interpolation within a geometrical matrix. Test geometries are organized as a function of their physical characteristics and placed into a multidimensional space/matrix whose boundaries are defined by the objects at each corner. Finite Element Analyses is integrated into the open-source CAD environment to provide estimates of material vibrations also compared to measurements on the fabricated counterparts. Finally, predicted parameters inform physical models for aural comparisons between fabricated targets and computational estimates. These hybrid methods are reliable for predicting early modes as they covary with changes in scale and shape in our test matrix.

Romain Michon, Chris Chafe, John Granzow

Mots-clés :
3D, FAUST, Physical modeling

In this paper, we present faust2smartkeyb, a tool to create musical apps for Android and iOS using the FAUST programming language. The use of musical instrument physical models in this context through the FAUST Physical Modeling Library is emphasized. We also demonstrate how this system allows for the design of interfaces facilitating skills transfer from existing musical instruments.

Romain Michon, Julius Smith, Chris Chafe, Matthew Wright

Mots-clés :
DSP, Ecosystem, FAUST

This paper demonstrates how FAUST, a functional programming language for sound synthesis and audio processing, can be used to develop efficient audio code for the Web. After a brief overview of the language, its compiler and the architecture system allowing to deploy the same program as a variety of targets, the generation of WebAssembly code and the deployment of specialized WebAudio nodes will be explained. Several use cases will be presented. Extensive bench... read_more

This paper demonstrates how FAUST, a functional programming language for sound synthesis and audio processing, can be used to develop efficient audio code for the Web. After a brief overview of the language, its compiler and the architecture system allowing to deploy the same program as a variety of targets, the generation of WebAssembly code and the deployment of specialized WebAudio nodes will be explained. Several use cases will be presented. Extensive benchmarks to compare the performance of native and WebAssembly versions of the same set of DSP have be done and will be commented

Stéphane Letz, Yann Orlarey, Dominique Fober

Mots-clés :
Audio, Compilation, Domain Specific Language, DSP, FAUST, Signal processing, Webassembly, Webaudio

Blender2faust: from drawn 3d objects to physically based sound models

Sound and Music Computing Conference, 2018, Limassol, Cyprus

Finite Element Analyses (FEA) was used to predict the resonant modes of the Tsar Kolokol, a 200 ton fractured bell that sits outside the Kremlin in Moscow. Frequency and displacement data informed a physical model implemented in the Faust programming language (Functional Audio Stream). The authors hosted a concert for Tsar bell and Carillon with the generous support of Meyer Sound and a University of Michigan bicentennial grant. In the concert, the simulated Ts... read_more

Finite Element Analyses (FEA) was used to predict the resonant modes of the Tsar Kolokol, a 200 ton fractured bell that sits outside the Kremlin in Moscow. Frequency and displacement data informed a physical model implemented in the Faust programming language (Functional Audio Stream). The authors hosted a concert for Tsar bell and Carillon with the generous support of Meyer Sound and a University of Michigan bicentennial grant. In the concert, the simulated Tsar bell was triggered by the keyboard and perceptually fused with the bourdon of the Baird Carillon on the University of Michigan campus in Ann Arbor.

Smilen Dimitrov, Romain Michon, Stefania Serafin

Mots-clés :
3D, FAUST, Physical modeling

This paper introduces the FAUST Physical Modeling Library, an environment to create physical models of musical instruments in a modular way in the FAUST programming language. Low and high level elements can be combined to implement existing or completely novel instruments. Various examples of physical models are provided. The combined use of mesh2faust, a tool to generate FAUST physical models from 3D drawings, and of the FAUST Physical Modeling Library is also... read_more

This paper introduces the FAUST Physical Modeling Library, an environment to create physical models of musical instruments in a modular way in the FAUST programming language. Low and high level elements can be combined to implement existing or completely novel instruments. Various examples of physical models are provided. The combined use of mesh2faust, a tool to generate FAUST physical models from 3D drawings, and of the FAUST Physical Modeling Library is also demonstrated through the implementation of a marimba physical model.

Romain Michon, Julius Smith, Chris Chafe, Ge Wang, Matthew Wright

Mots-clés :
FAUST, Ecosystem, DSP

Faust, du code pour la scène aux cours de code

CULTURE ET RECHERCHE n° 137 printemps-été 2018, 2018

Conçu et utilisé pour des applications de synthèse et de traitement du son ou de lutherie numérique sur scène, le langage de programmation Faust, développé au centre national de création musicale GRAME, est désormais enseigné dans plusieurs universités dans le monde, en particulier au Center for Computer Research in Music and Acoustics de l’université Stanford.

Yann Orlarey

Mots-clés :
Enseignement, FAUST, Teaching

2017

The Faust architecture files ecosystem is regularly enriched with new targets to deploy Digital Signal Processing (DSP) programs. This paper presents re-cently developed techniques to expand the standard one DSP source, one program or plugin model, and to better control parameter changes during the audio computation. Sample accurate control and polyphonic instruments definition have been introduced, and will be explained particularly in the context of MIDI cont... read_more

The Faust architecture files ecosystem is regularly enriched with new targets to deploy Digital Signal Processing (DSP) programs. This paper presents re-cently developed techniques to expand the standard one DSP source, one program or plugin model, and to better control parameter changes during the audio computation. Sample accurate control and polyphonic instruments definition have been introduced, and will be explained particularly in the context of MIDI control.

Stéphane Letz, Yann Orlarey, Dominique Fober, Romain Michon

Mots-clés :
Audio, DSP programming, FAUST, MIDI

faust2api: a Comprehensive API Generator for Android and iOS

Linux Audio Conference, 2017, Saint-Etienne, France. pp.77-82

We introduce faust2api, a tool to generate custom DSP engines for Android and iOS using the Faust programming language. Faust DSP ob jects can easily be turned into MIDI-controllable polyphonic synthesizers or audio effects with built-in sensors support, etc. The various elements of the DSP engine can be accessed through a high-level API, made uniform across platforms and languages. This paper provides technical details on the implementation of this system as w... read_more

We introduce faust2api, a tool to generate custom DSP engines for Android and iOS using the Faust programming language. Faust DSP ob jects can easily be turned into MIDI-controllable polyphonic synthesizers or audio effects with built-in sensors support, etc. The various elements of the DSP engine can be accessed through a high-level API, made uniform across platforms and languages. This paper provides technical details on the implementation of this system as well as an evaluation of its various features.

Romain Michon, Julius Smith, Chris Chafe, Stéphane Letz, Yann Orlarey

Mots-clés :
Android, FAUST, IOS, Mobile Instruments

New Signal Processing Libraries for Faust

Linux Audio Conference, 2017, Saint-Etienne, France. pp.83-87

We present a completely re-organized set of signal processing libraries for the Faust programming language. They aim at providing a clearer classification of the different Faust DSP functions, as well as better documentation. After giving an overview of this new system, we provide technical details about its implementation. Finally, we evaluate it and give ideas for future directions.

Romain Michon, Julius Smith, Yann Orlarey

Mots-clés :
FAUST, Digital signal processing, Computer Music Programming Language

Faust audio DSP language for JUCE

Linux Audio Conference, 2017, Saint-Etienne, France. pp.61-68

Faust [Functional Audio Stream] is a functional programming language specifically designed for real- time signal processing and synthesis [1]. It consists of a compiler that translates a Faust program into an equivalent C++ program, taking care of generat- ing the most efficient code. JUCE is an open-source cross-platform C++ application framework devel- oped since 2004, and bought by ROLI1 in Novem- ber 2014, used for the development of desktop and mobile appl... read_more

Faust [Functional Audio Stream] is a functional programming language specifically designed for real- time signal processing and synthesis [1]. It consists of a compiler that translates a Faust program into an equivalent C++ program, taking care of generat- ing the most efficient code. JUCE is an open-source cross-platform C++ application framework devel- oped since 2004, and bought by ROLI1 in Novem- ber 2014, used for the development of desktop and mobile applications. A new feature to the Faust environnement is the addition of architectures files to provide the glue between the Faust C++ output and the JUCE framework. This article presents the overall design of the architecture files for JUCE.

Adrien Albouy, Stéphane Letz

Mots-clés :
Audio, Domain Specific Language, DSP, FAUST, JUCE, Real-time

2016

CALCUL D'UNE EXPRESSION FAUST ÉQUIVALENTE À PARTIR D'UN GRAPHE D'APPLICATIONS

Journées d'Informatique Musicale (JIM 2016), AFIM, Mar 2016, Albi, France

Nous proposons une méthode permettant de traduire un graphe de programmes FAUST, en un programme FAUST équivalent. Le programme ainsi obtenu peut être compilé, et donc bénéficier de toutes les optimisations du compilateur FAUST, mais il peut également être exporté vers les différentes plateformes supportées par FAUST (VST, Max/MSP, SuperCollider, Csound, etc.). Nous décrivons l'algorithme qui parcourt le graphe et calcule l'expression FAUST équivalente ainsi qu... read_more

Nous proposons une méthode permettant de traduire un graphe de programmes FAUST, en un programme FAUST équivalent. Le programme ainsi obtenu peut être compilé, et donc bénéficier de toutes les optimisations du compilateur FAUST, mais il peut également être exporté vers les différentes plateformes supportées par FAUST (VST, Max/MSP, SuperCollider, Csound, etc.). Nous décrivons l'algorithme qui parcourt le graphe et calcule l'expression FAUST équivalente ainsi que les principes de modularité de FAUST qui permettent de combiner les fichiers sources pour réaliser l'opération. De plus, nous présentons une implémentation de l'algorithme dans le cadre de l'application FaustPlayground.

Faust Environment Everyware : une solution ubiquitaire pour le traitement audionumérique portable et multiplateforme

Sarah Denoux, Yann Orlarey, Stéphane Letz, Dominique Fober

Mots-clés :
FAUST, Composition, Web, Programmation DSP

2015

Faust audio DSP language in the Web

Linux Audio Conference, 2015, Mainz, Germany. pp.29-36

With the advent of both HTML5 and the Web Audio API (a high-level JavaScript API for audio process- ing and synthesis) interesting audio applications can now be developed for the Web. The Web Audio API offers a set of fast predefined audio nodes as well as customizable ScriptProcessor node, allowing developers to add their own javascript audio processing code. Several projects are developing abstractions on top of the Web Audio API to extend its capabilities, a... read_more

With the advent of both HTML5 and the Web Audio API (a high-level JavaScript API for audio process- ing and synthesis) interesting audio applications can now be developed for the Web. The Web Audio API offers a set of fast predefined audio nodes as well as customizable ScriptProcessor node, allowing developers to add their own javascript audio processing code. Several projects are developing abstractions on top of the Web Audio API to extend its capabilities, and offer more complex unit generators, DSP effects libraries, or adapted syntax. This paper brings an- other approach based on the use of the Faust audio DSP language to develop additional nodes to be used as basic audio DSP blocks in the Web Audio graph. Different methods have been explored: going from an experimental version that embeds the complete Faust native compilation chain (based on libfaust + LLVM) in the browser, to more portable solutions using JavaScript or the much more efficient asm.js version. Embedding the Faust compiler it- self as a pure JavaScript library (produced using Emscripten) will also be described.The advantages and issues of each approach will be discussed and some benchmarks will be given.

Stéphane Letz, Sarah Denoux, Yann Orlarey, Dominique Fober

Mots-clés :
Domain Specific Language, DSP, FAUST, Real-time, Web Audio API

2014

FaustLive : Un compilateur à la volée pour Faust... et bien plus encore

Journées d'Informatique Musicale, 2014, Bourges, France

FaustLive est une application qui, grâce à son compilateur Faust embarqué, se propose de réunir le confort d'un langage interprété avec l\éfficacité d'un langage compilé. Basée sur libfaust, une librairie qui offre une chaîne de compilation complète en mémoire, FaustLive ne requiert aucun outil externe (compilateur, éditeur de lien, ...) pour traduire du code FAUST en code machine exécutable. Par l'intermédiaire de cette technologie, FaustLive offre de multiple... read_more

FaustLive est une application qui, grâce à son compilateur Faust embarqué, se propose de réunir le confort d'un langage interprété avec l\éfficacité d'un langage compilé. Basée sur libfaust, une librairie qui offre une chaîne de compilation complète en mémoire, FaustLive ne requiert aucun outil externe (compilateur, éditeur de lien, ...) pour traduire du code FAUST en code machine exécutable. Par l'intermédiaire de cette technologie, FaustLive offre de multiples fonctionnalités. Par exemple, il est possible de glisser un nouveau fichier DSP sur une application FAUST en fonctionnement pour remplacer son comportement et ce, sans interruption du son. Il est aussi possible de transférer une application qui fonctionne en local, sur une autre machine, même si celle-ci utilise un système d\éxploitation différent.

Sarah Denoux, Stéphane Letz, Yann Orlarey

Mots-clés :
Audio, Contrôle et calculs à distance, FAUST, Programmation de DSP

2012

Les recherches décrites ici abordent la problématique de la préservation à long terme du processus temps réel dans la création contemporaine utilisant le numérique. En effet, nous avons développé une stratégie d' abstraction, laquelle consiste à générer automatiquement une documentation mathématique qui explicite la sémantique d'un processus, représentée uniquement à l'aide de la notation mathématique et du langage naturel. L'objectif et lénjeu de cette approch... read_more

Les recherches décrites ici abordent la problématique de la préservation à long terme du processus temps réel dans la création contemporaine utilisant le numérique. En effet, nous avons développé une stratégie d' abstraction, laquelle consiste à générer automatiquement une documentation mathématique qui explicite la sémantique d'un processus, représentée uniquement à l'aide de la notation mathématique et du langage naturel. L'objectif et lénjeu de cette approche sont à situer dans le statut auto-suffisant de cette documentation, en tant que support autonome pour la réimplémentation.

FAUST est un langage de programmation fonctionnel pour le traitement du signal et la synthèse de sons en temps réel. Grâce à un système de fichiers d’architectures, un seul et unique programme FAUST peut être utilisé pour générer du code pour un ensemble de types d’applications et de plug-ins. Le compilateur en ligne de FAUST ici présenté est une application Web écrite en PHP et en JavaScript offrant un environnement de développement multiplateforme et multipro... read_more

FAUST est un langage de programmation fonctionnel pour le traitement du signal et la synthèse de sons en temps réel. Grâce à un système de fichiers d’architectures, un seul et unique programme FAUST peut être utilisé pour générer du code pour un ensemble de types d’applications et de plug-ins. Le compilateur en ligne de FAUST ici présenté est une application Web écrite en PHP et en JavaScript offrant un environnement de développement multiplateforme et multiprocesseur pour le langage FAUST. Cet outil rend possible l’utilisation de la plupart des fonctionnalités de FAUST dans un navigateur Web et intègre un catalogue d’exemples évolutif faisant de lui une plate-forme pour utiliser et échanger facilement tout objet FAUST. Le fonctionnement du compilateur en ligne de FAUST est présenté en détail dans cet article. Les possibilités offertes par cet outil sont discutées et une brève ouverture sur les enjeux de l’utilisation des technologies Web pour l’informatique musicale est faite.

Romain Michon, Yann Orlarey

Mots-clés :
DSP, FAUST, Programming, Web

2011

Auto-documentation mathématique pour le traitement du signal avec Faust

Journées d'Informatique Musicale, 2011, Saint-Etienne, France

L'article aborde le problème de la préservation à long terme des processus numériques temps réel utilisés dans la création musicale contemporaine. Nous présentons une stratégie de préservation par abstraction mathématique. Elle consiste à générer automatiquement une documentation mathématique qui décrit de manière précise la sémantique complète de tels processus.

Karim Barkati, Yann Orlarey

Mots-clés :
DSP, FAUST, Heritage, Preservation, Programming

FAUST Architectures Design and OSC Support.

International Conference on Digital Audio Effects, 2011, Paris, France. pp.231-216

FAUST [Functional Audio Stream] is a functional programming language specifically designed for real-time signal processing and synthesis. It consists in a compiler that translates a FAUST program into an equivalent C++ program, taking care of generating the most efficient code. The FAUST environment also includes various architecture files, providing the glue between the FAUST C++ output and the host audio and GUI environments. The combination of architecture f... read_more

FAUST [Functional Audio Stream] is a functional programming language specifically designed for real-time signal processing and synthesis. It consists in a compiler that translates a FAUST program into an equivalent C++ program, taking care of generating the most efficient code. The FAUST environment also includes various architecture files, providing the glue between the FAUST C++ output and the host audio and GUI environments. The combination of architecture files and FAUST output gives ready to run applications or plugins for various systems, which makes a single FAUST specification available on different platforms and environments without additional cost. This article presents the overall design of the architecture files and gives more details on the recent OSC architecture.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Architecture, FAUST

2010

First Steps Towards an Organology Of Virtual Instruments In Computer Music

International Computer Music Conference, 2010, New York, United States. pp.369-372

In this paper, we will first take assess of 25 years of interactive real-time music, and introduce the problem of preservation of this music for the future generations, that is to say its ability to be re-performed, and not only to preserve the recordings. We present the state of the art in the field of active preservation of real-time works. We then give an overview of the solutions developed by IRCAM and its partners Grame, Armines ParisTech and CIEREC, in th... read_more

In this paper, we will first take assess of 25 years of interactive real-time music, and introduce the problem of preservation of this music for the future generations, that is to say its ability to be re-performed, and not only to preserve the recordings. We present the state of the art in the field of active preservation of real-time works. We then give an overview of the solutions developed by IRCAM and its partners Grame, Armines ParisTech and CIEREC, in the framework of the ASTREE project, and explain the possibilities envisioned in a case study that is En Echo by Philippe Manoury.

Jérôme Barthélemy, Alain Bonardi, Yann Orlarey, Serge Lemouton, Raffaele Ciavarella, Karim Barkati

Mots-clés :
FAUST

2009

Adding Automatic Parallelization to Faust

Linux Audio Conference, 2009, Parma, Italy

Faust 0.9.9.5 introduces new compilation options to do automatic parallelization of code using OpenMP. This paper explains how the automatic parallelization is done and presents some benchmarks.

Yann Orlarey, Stéphane Letz, Dominique Fober

Mots-clés :
FAUST, OpenMP, Parallelism, Processing, Signal

Semantics for multirate Faust

[Technical Report] GRAME. 2009

Faust is a functional programming language dedicated to the specification of executable monorate musical applications. We present here a multirate extension of the core of the Faust language, called MR Faust, together with a typing semantics, a denotational semantics and correctness theorems that link them together.

Pierre Jouvelot, Yann Orlarey

Mots-clés :
FAUST, Multirate, Processing, Signal

2006

DSP Programming with Faust, Q and SuperCollider

Linux Audio Conference, 2006, Karlsruhe, Germany

Faust is a functional programming language for realtime signal processing and synthesis that targets high-performance signal processing applications and audio plugins. The paper gives a brief introduction to Faust and discusses its interfaces to Q, a general purpose functional programming language, and SuperCollider, an object-oriented sound synthesis language and engine.

Yann Orlarey, Albert Graef, Stefan Kersten

Mots-clés :
Computer, Digital, FAUST, Functional, Language, Music, Processing, Programming, Q, Signal, SuperCollider

USING FAUST FOR FPGA PROGRAMMING

International Conference on Digital Audio Effects, 2006, Montreal, Canada. pp.287-290

In this paper we show the possibility of using FAUST (a programming language for function based block oriented programming) to create a fast audio processor in a single chip FPGA environment. The produced VHDL code is embedded in the on-chip processor system and utilizes the FPGA fabric for parallel processing. For the purpose of implementing and testing the code a complete System-On-Chip framework has been created. We use a Digilent board with a XILINX Virtex... read_more

In this paper we show the possibility of using FAUST (a programming language for function based block oriented programming) to create a fast audio processor in a single chip FPGA environment. The produced VHDL code is embedded in the on-chip processor system and utilizes the FPGA fabric for parallel processing. For the purpose of implementing and testing the code a complete System-On-Chip framework has been created. We use a Digilent board with a XILINX Virtex 2 Pro FPGA. The chip has a PowerPC 405 core and the framework uses the on chip peripheral bus to interface the core. The content of this paper presents a proof-of-concept implementation using a simple two pole IIR filter. The produced code is working, although more work has to be done for implementing complex arithmetic operations support.

Robert Trausmuth, Christian Dusek, Yann Orlarey

Mots-clés :
FAUST