2024

Towards Fixed-Point Formats Determination for Faust Programs

Journées d'Informatique Musicale 2024, May 2024, Marseille, France

Modern programmable digital signal processing relies on floating-point numbers for their ease of use. Fixed-point number formats have the potential to save resources and improve execution time, but realising this potential burdens the programmer with the need to define each format, at every step of the computation. This article reviews existing methods to automatically determine fixed-point formats, then describes and evaluates the prototype implementation of a... Lire la suite

Modern programmable digital signal processing relies on floating-point numbers for their ease of use. Fixed-point number formats have the potential to save resources and improve execution time, but realising this potential burdens the programmer with the need to define each format, at every step of the computation. This article reviews existing methods to automatically determine fixed-point formats, then describes and evaluates the prototype implementation of automatic fixed-point format determination in the Faust compiler.. Les algorithmes de traitement du signal numérique sont aujourd'hui majoritairement implémentés en utilisant des nombres à virgule flottante, en raison de leur facilité d'utilisation. Les nombres à virgule fixe peuvent permettre d'économiser des ressources et d'accélérer le temps d'exécution, mais leur utilisation fait peser sur le programmeur la charge de définir chaque format utilisé, à chaque étape du calcul. Cet article passe en revue les méthodes existantes pour déterminer automatiquement les formats des nombres à virgule fixe, puis décrit et évalue l'implémentation prototype d'une méthode de détermination des formats à virgule fixe au sein du compilateur Faust.

Technologies rapides pour le traitement du signal audio

Agathe Herrou, Florent de Dinechin, Stéphane Letz, Yann Orlarey, Anastasia Volkova

Design and Run Real-time Spectral Processing on the Web with Faust

WAC 2024 - Web Audio Conference 2024, Purdue University / Tae Hong Park, Mar 2024, Lafayette, Indiana, United States. ⟨10.5281/zenodo.10825715⟩

Web-based spectral processing with the Web Audio API is a challenging task that requires efficient and flexible tools. It involves Fourier transform utilities and frequency-domain data manipulations. In this paper, we present a novel frame- work for designing and running real-time spectral processors on the web, using Faust as the programming language and its web-based toolchain. Our framework is inspired by Max’s pfft~ paradigm, which allows users to create cu... Lire la suite

Web-based spectral processing with the Web Audio API is a challenging task that requires efficient and flexible tools. It involves Fourier transform utilities and frequency-domain data manipulations. In this paper, we present a novel frame- work for designing and running real-time spectral processors on the web, using Faust as the programming language and its web-based toolchain. Our framework is inspired by Max’s pfft~ paradigm, which allows users to create custom spec- tral processors from streamed spectral data. Using Faust language and suitable FFT tools, the designed algorithm can be compiled to WebAssembly modules that are executed in an Audio Worklet. We demonstrate the potential of our framework by showing some examples of spectral effects and synthesizers that can be easily designed and executed on the web.

Shihong Ren, Stéphane Letz, Michel Buffa, Laurent Pottier, Yang Yu

2022

What's new in the faust ecosystem and community?

IFC 22 - International Faust Conference, Jun 2022, Saint-Etienne, France

This paper presents an overview all the new developments and contributions in the FAUST programming language since the 2020 International FAUST Conference. It shows a growing and dynamic community with artistic projects, plugins, standalone applications, integration in audio programming environments, development tools, research projects, embedded devices, Web applications, etc., produced by a large variety of contributors.

Stéphane Letz, Romain Michon, Yann Orlarey

2021

A WEB BASED ENVIRONMENT EMBEDDING SIGNAL PROCESSING IN MUSICAL SCORES

International Conference on Technologies for Music Notation and Representation -- TENOR'21, 2021, Hamburg, Germany

We present an online environment for the design of musical scores, also allowing for the embedding of signal processors and hence the publication of electronic works. This environment is part of the INScore project. Its latest version has been transcribed to WebAssembly/Javascript to provide in a web browser the same features as in its native counterpart: the diversity of music representations supported by INScore, the interaction capabilities and all the dynam... Lire la suite

We present an online environment for the design of musical scores, also allowing for the embedding of signal processors and hence the publication of electronic works. This environment is part of the INScore project. Its latest version has been transcribed to WebAssembly/Javascript to provide in a web browser the same features as in its native counterpart: the diversity of music representations supported by INScore, the interaction capabilities and all the dynamic aspects of the score. After some historical elements about distributed musical scores, we will provide some reminders about the INScore project and its associated description language. We will then describe the architecture of the system and the choices made for its portability to the Web. Then, we will present the extensions specific to the Javascript version and in particular the support of signal processing objects. Finally, we will show how INScore's communication system has been extended to allow online musical score control from a native version of INScore, paving the way for real-time performance on the web.

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

2020

FAUST is a functional programming language for realtime audio digital signal processing. The Faust compiler can generate code in lower-level programming languages such as C, C++, JAVA, LLVM bitcode, WebAssembly, etc. Code generated by the FAUST compiler can be turned into a wide range of objects (e.g., audio plug-ins, smartphone apps, web apps, etc.) for various platforms (e.g., Linux, Windows, MacOS, etc.). By also allowing us to target embedded systems such a... Lire la suite

FAUST is a functional programming language for realtime audio digital signal processing. The Faust compiler can generate code in lower-level programming languages such as C, C++, JAVA, LLVM bitcode, WebAssembly, etc. Code generated by the FAUST compiler can be turned into a wide range of objects (e.g., audio plug-ins, smartphone apps, web apps, etc.) for various platforms (e.g., Linux, Windows, MacOS, etc.). By also allowing us to target embedded systems such as microcontrollers, DSPs, FPGAs, embedded Linux systems, etc. and by providing a set of tools to implement physical models of musical instruments, FAUST is particularly well suited to design hybrid acoustical and digital musical instruments mixing physical and virtual elements. After giving an overview of the aforementioned tools, we demonstrate how they can be used for designing novel hybrid instruments.

Romain Michon, Yann Orlarey, Stephane Letz, Dominique Fober

HYBRIDIZING FAUST AND SOUL

International Faust Conference, Dec 2020, Paris, France

SOUL is a new audio Domain Specific Language and a runtime platform developed by ROLI, which aims at modernizing and optimizing the way high-performance and low-latency audio code is written and executed. FAUST is a functional Domain Specific Language specifically designed for real-time audio signal processing. Both approaches share common ideas: sample-level DSP computation, fixed memory and CPU footprints, dynamic JIT compilation, CPU efficiency, multi-target... Lire la suite

SOUL is a new audio Domain Specific Language and a runtime platform developed by ROLI, which aims at modernizing and optimizing the way high-performance and low-latency audio code is written and executed. FAUST is a functional Domain Specific Language specifically designed for real-time audio signal processing. Both approaches share common ideas: sample-level DSP computation, fixed memory and CPU footprints, dynamic JIT compilation, CPU efficiency, multi-targets deployment (native and embedded platforms, up to the Web). This paper presents a work in progress done around the idea of hybridizing FAUST with SOUL.

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

A NEW INTERMEDIATE REPRESENTATION FOR COMPILING AND OPTIMIZING FAUST CODE

International Faust Conference, Dec 2020, Paris, France

The Faust compiler relies on several intermediate representationsto translate a Faust program. One step, in particular, consists ofmoving from a functional representation of computations on infi-nite signals to an imperative (stateful) representation of computa-tions on samples. This translation phase is complex, as it combinesthe recursive tree traversal, the division of the computations intoinstructions, the scheduling, and the code generation. As a result,th... Lire la suite

The Faust compiler relies on several intermediate representationsto translate a Faust program. One step, in particular, consists ofmoving from a functional representation of computations on infi-nite signals to an imperative (stateful) representation of computa-tions on samples. This translation phase is complex, as it combinesthe recursive tree traversal, the division of the computations intoinstructions, the scheduling, and the code generation. As a result,the implementation of new code generation strategies is difficult toachieve.In this paper, we propose a new intermediate representation inthe form of a graph whose nodes represent computations on infinitesignals and the edges time dependencies between these computa-tions. The graph structure makes it much easier to handle recursivedependencies as well as to experiment with all kinds of schedul-ing strategies. We will present several of them whose performancehave been tested with the examples of the Faust distribution. Per-formance gains can sometimes be quite significant compared to thecurrent compiler.

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

Faust2FPGA for Ultra-Low Audio Latency: Preliminary work in the Syfala project

IFC 2020 - Second International Faust Conference, Dec 2020, Paris, France. pp.1-9

FPGAs are increasingly present in every field of computer science. The generalization of High Level Synthesis (HLS) improves the productivity of the FPGA programmer. However, even with HLS, FPGA configuration requires advanced engineering. This paper investigates the use of FPGA in the context of very low latency (less than 500µs) audio digital signal processing. We propose a methodology to compile FAUST programs on FPGA platforms towards ultra-low latency. We... Lire la suite

FPGAs are increasingly present in every field of computer science. The generalization of High Level Synthesis (HLS) improves the productivity of the FPGA programmer. However, even with HLS, FPGA configuration requires advanced engineering. This paper investigates the use of FPGA in the context of very low latency (less than 500µs) audio digital signal processing. We propose a methodology to compile FAUST programs on FPGA platforms towards ultra-low latency. We expose the challenges it raises and report about the first steps of a future faust2FPGA compiler.

Tanguy Risset, Romain Michon, Yann Orlarey, Stéphane Letz, Gero Müller, Adeyemi Gbadamosi

Embedded Real-Time Audio Signal Processing With Faust

International Faust Conference (IFC-20), Dec 2020, Paris, France

Faust has been targeting an increasing number of embedded platforms for real-time audio signal processing applications in recent years. It can now be used to program microcontrollers, mobile platforms, embedded Linux systems, Digital Signal Processors (DSPs), and more. This paper gives an overview of existing targets, presents ongoing research, and gives potential avenues for future developments in this field.

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

The development and porting of virtual instruments or audio effects on the Web is a hot topic. Several initiatives are emerging, from industry-driven ones (e.g., Propellerhead Rack Extension running on the Web2), to more community based open-source projects. Most of them aim at adapting existing code bases (usually developed in native languages like C/C++) as well as facilitating the use of existing audio Digital Signal Processing (DSP) languages and platforms.... Lire la suite

The development and porting of virtual instruments or audio effects on the Web is a hot topic. Several initiatives are emerging, from industry-driven ones (e.g., Propellerhead Rack Extension running on the Web2), to more community based open-source projects. Most of them aim at adapting existing code bases (usually developed in native languages like C/C++) as well as facilitating the use of existing audio Digital Signal Processing (DSP) languages and platforms. Our two teams previously presented an open format for WebAudio Plugins coined WAP [2]. It aims at: (i) improving the interoperability of audio/MIDI plugins developed using pure Web APIs, (ii) porting existing native code bases, or (iii) using Domain Specific Languages (DSL). In this paper, we present a solution based around FAUST DSL, its Web-based editor, and the integration of a plugin GUI editor allowing to directly test, generate and deploy WAP plugins. We also evoke our collaborative work: one team hatching and improving FAUST, the other working on the recreation of tube guitar amplifiers and pedalboards within Web browsers. So as to fully illustrate the FAUST online framework, a case study is detailed with complete workflow, from the FAUST DSP source code written and tested in a fully functional online editor, to a self-contained plugin running in a separate host application.

Web Audio et Web Sémantique agrégées dans le navigateur pour de l'indexation

Shihong Ren, Stephane Letz, Yann Orlarey, Romain Michon, Dominique Fober, Michel Buffa, Jerome Lebrun

A Faust Architecture for the ESP32 Microcontroller

Sound and Music Computing Conference (SMC-20), Jun 2020, Turin, Italy

Romain Michon, Daniel Overholt, Stephane Letz, Yann Orlarey, Dominique Fober, Catinca Dumitrascu

In 2018, with a group of researchers and developers (some of whom are members of the W3C WebAudio WG) we proposed a WebAudio Plugin standard (WAP) and gave birth to a growing ecosystem for the development of computer music applications in the browser [1]. These plugins can be seen as a transposition of what exists in the native world, adapted to be web-aware (i.e. a plugin can be remotely included in any host web audio application by a URI). Since then, many co... Lire la suite

In 2018, with a group of researchers and developers (some of whom are members of the W3C WebAudio WG) we proposed a WebAudio Plugin standard (WAP) and gave birth to a growing ecosystem for the development of computer music applications in the browser [1]. These plugins can be seen as a transposition of what exists in the native world, adapted to be web-aware (i.e. a plugin can be remotely included in any host web audio application by a URI). Since then, many contributions have been made and many plugins have been developed. Not only several "host" applications have appeared, including commercial ones, but also tools to help developers, including an online IDE coded as a Progressive Web App (PWA) to write and publish plugins from A to Z, the audio DSP core of the plugins being compiled into WebAssembly. Some of the plugins we developed during the French research project WASABI are now sold as add-ons to an online Digital Audio Workstation (Amped Studio), showing the new opportunities that these emerging APIs have created.

Wireless System And SystemC-AMS Basic Infrastructure

Michel Buffa, Jerome Lebrun, Shihong Ren, Stéphane Letz, Yann Orlarey, Romain Michon, Dominique Fober

2019

FAUST online IDE: dynamically compile and publish FAUST code as WebAudio Plugins

WAC 2019 - 5th Web Audio Conference, NTNU, Dec 2019, Trondheim, Norway

Wireless System And SystemC-AMS Basic Infrastructure

Shihong Ren, Stéphane Letz, Yann Orlarey, Romain Michon, Dominique Fober, Michel Buffa, Elmehdi Ammari, Jerome Lebrun

The slow but steady shift away from printed text into digital media has not yet modified the working habits of chamber music practitioners. If most instrumentalists still heavily rely on printed scores, audiences increasingly access notated music online, with printed scores synced to an audio recording on youtube for instance. This paper proposes to guide the listener and/or the performer with a cursor scrolling on the page with INScore, in order to examine the... Lire la suite

The slow but steady shift away from printed text into digital media has not yet modified the working habits of chamber music practitioners. If most instrumentalists still heavily rely on printed scores, audiences increasingly access notated music online, with printed scores synced to an audio recording on youtube for instance. This paper proposes to guide the listener and/or the performer with a cursor scrolling on the page with INScore, in order to examine the consequences of representing time in this way as opposed to traditional bars and beats notation. In addition to its score following interest for pedagogy and analysis, the networking possibilities of today's ubiquitous technologies reveal interesting potentials for works in which the presence of a conductor is required for synchronization between performers and/or with fixed media (film or tape). A Raspberry Pi-embedded prototype for animated/distributed notation is presented here as a score player (such as the Decibel ScorePlayer, or SmartVox), in order to send and synchronize mp4 scores to any browser capable device connected to the same WIFI network. The corpus will concern pieces edited at BabelScores, an online library for contemporary classical music. The BabelScores pdf works, composed in standard engraving softwares, will be animated using INScore and video editors, in order to find strategies for animation or dynamic display of the unfolding of time, originally represented statically on the page.. L'abandon lent mais certain du texte imprimé au profit des médias numériques n'a pas encore modifié les habitudes de travail des instrumentistes en musique de chambre. Si la plupart s'appuie encore fortement sur les partitions imprimées, le public a de plus en plus accès aux partitions en ligne, synchronisées sur un enregistrement audio sur youtube par exemple. Cet article propose de guider l'auditeur et/ou l'interprète à l'aide d'un curseur défilant sur la page (avec INScore), afin d'examiner ce qu'implique de représenter le temps de cette manière, par opposition à la notation traditionnelle des mesures rythmiques du solfège. Outre son intérêt pour la pédagogie et l'analyse, les possibilités de mise en réseau des technologies omniprésentes d'aujourd'hui révèlent des potentiels intéressants pour des œuvres dans lesquelles la présence d'un chef d'orchestre est requise pour la synchronisation entre interprètes et/ou avec des supports fixes (film ou bande). Un prototype pour la notation animée/distribuée intégré sur Raspberry Pi est présenté ici comme lecteur de partition (tel que le Decibel ScorePlayer ou SmartVox), afin d’envoyer et de synchroniser les partitions mp4 à n’importe quel appareil compatible avec un navigateur connecté au même réseau WIFI. Le corpus concernera des pièces éditées sur BabelScores, une bibliothèque en ligne de musique classique contemporaine. Les œuvres pdf de BabelScores, composées de logiciels de gravure standard, seront animées à l'aide d'éditeurs INScore et vidéo, afin de trouver des stratégies d'animation ou d'affichage dynamique du déroulement du temps, initialement représentées de manière statique sur la page.

Jonathan Bell, Dominique Fober, Daniel Fígols-Cuevas, Pedro Garcia-Velasquez

Mots-clés :
Distributed scores, Animated notation, Music publishing, Embedded system, Networked music performance

A Tree Based Language for Music Score Description.

International Symposium on Computer Music Multidisciplinary Research, Oct 2019, Marseille, France

The presented work is part of the INScore project, an environment for the design of augmented interactive music scores, oriented towards unconven-tional uses of music notation and representation, including real-time symbolic notation capabilities. This environment is fully controllable using Open Sound Control [OSC] messages. INScore scripting language is an extended textual version of OSC messages that allows you to design scores in a modular and incre-mental... Lire la suite

The presented work is part of the INScore project, an environment for the design of augmented interactive music scores, oriented towards unconven-tional uses of music notation and representation, including real-time symbolic notation capabilities. This environment is fully controllable using Open Sound Control [OSC] messages. INScore scripting language is an extended textual version of OSC messages that allows you to design scores in a modular and incre-mental way. This article presents a major revision of this language, based on the description and manipulation of trees.

Dominique Fober, Y Orlarey, S Letz, R. Michon

Real Time Audio Digital Signal Processing With Faust and the Teensy

Sound and Music Computing Conference (SMC-19), May 2019, Malaga, Spain

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

Un langage basé sur des arbres pour la description de partitions musicales.

Journées d'Informatique Musicale - JIM'19, 2019, Bayonne, France

Le travail présenté s’inscrit dans le projet INScore, un environnement pour la conception de partition interactives augmentées, tourné vers des usages non conventionnels de la notation et de la représentation de la musique, sans exclure pour autant les approches classiques. Cet environnement est entièrement pilotable par des messages Open Sound Control [OSC]. Un langage de script, basé sur une version textuelle étendue de ces messages permet de concevoir des pa... Lire la suite

Le travail présenté s’inscrit dans le projet INScore, un environnement pour la conception de partition interactives augmentées, tourné vers des usages non conventionnels de la notation et de la représentation de la musique, sans exclure pour autant les approches classiques. Cet environnement est entièrement pilotable par des messages Open Sound Control [OSC]. Un langage de script, basé sur une version textuelle étendue de ces messages permet de concevoir des partitions sous forme modulaire et incrémentale. Cet article présente une révision majeure de ce langage de script, fondée sur la description et la manipulation d’arbres.

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

Mots-clés :
INScore, Partition, Musique, Langage, OSC

2018

WAP: Ideas for a Web Audio Plug-in Standard

Proceedings of Web Audio Conf 2018, TU Berlin, Sep 2018, Berlin, France

Several native audio plug-in formats are popular today including Steinberg's VST, Apple's Audio Units, Avid's AAX and the Linux audio community's LV2. Although the APIs are different, all exist to achieve more or less the same thing-represent an instrument or audio effect and allow it to be loaded by a host application. In the Web Audio API such a high-level audio plug-in entity does not exist. With the emergence of web-based audio software such as digital audi... Lire la suite

Several native audio plug-in formats are popular today including Steinberg's VST, Apple's Audio Units, Avid's AAX and the Linux audio community's LV2. Although the APIs are different, all exist to achieve more or less the same thing-represent an instrument or audio effect and allow it to be loaded by a host application. In the Web Audio API such a high-level audio plug-in entity does not exist. With the emergence of web-based audio software such as digital audio workstations (DAWs), it is desirable to have a standard in order to make Web Audio instruments and effects interoperable. Since there are many ways of developing for Web Audio, such a standard should be flexible enough to support different approaches, including using a variety of programming languages. New functionality that is enabled by the web platform should be available to plug-ins written in different ways. To this end, several groups of developers came together to make their work compatible, and this paper presents the work achieved so far. This includes the development of a draft API specification, a small preliminary SDK, online plug-in validators and a set of examples written in JavaScript. These simple, proof of concept examples show how to discover plug-ins from repositories, how to instantiate a plug-in and how to connect plug-ins together. A more ambitious host has also been developed to validate the WAP standard: a virtual guitar "pedal board" that discovers plug-ins from multiple remote repositories, and allows the musician to chain pedals and control them via MIDI.

Web Audio et Web Sémantique agrégées dans le navigateur pour de l'indexation

Michel Buffa, Jerome Lebrun, Jari Kleimola, Oliver Larkin, Guillaume Pellerin, Stéphane Letz

Towards an open Web Audio plug-in standard

WWW2018 - TheWebConf 2018 : The Web Conference, 27th International World Wide Web Conference, Mar 2018, Lyon, France. ⟨10.1145/3184558.3188737⟩

Web Audio is a recent W3C API that brings the world of computer music applications to the browser. Although developers have been actively using it since the first beta implementations in 2012, the number of web apps built using Web Audio API cannot yet compare to the number of commercial and open source audio software tools available on native platforms. Many of the sites using this new technology are of an experimental nature or are very limited in their scope... Lire la suite

Web Audio is a recent W3C API that brings the world of computer music applications to the browser. Although developers have been actively using it since the first beta implementations in 2012, the number of web apps built using Web Audio API cannot yet compare to the number of commercial and open source audio software tools available on native platforms. Many of the sites using this new technology are of an experimental nature or are very limited in their scope. While JavaScript and Web standards are increasingly flexible and powerful, C and C++ are the languages most often used for real-time audio applications and domain specific languages such as FAUST facilitate rapid development with high performance. Our work aims to create a continuum between native and browser based audio app development and to appeal to programmers from both worlds. This paper presents our proposal including guidelines and proof of concept implementations for an open Web Audio plug-in standard-essentially the infrastructure to support high level audio plug-ins for the browser.

Web Audio et Web Sémantique agrégées dans le navigateur pour de l'indexation

Michel Buffa, Jerome Lebrun, Jari Kleimola, Oliver Larkin, Stephane Letz

Mots-clés :
WebAudio, Audio Effects and Instruments, Plug-in Architecture, Web Standards

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

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... Lire la suite

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

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... Lire la suite

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

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

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... Lire la suite

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 :
Webassembly, Webaudio, Audio, Compilation, Domain Specific Language, DSP, FAUST, Signal processing

An Overview of the FAUST Developer Ecosystem

International Faust Conference, 2018, Mainz, Germany

The FAUST language has been designed to provide developers an alternative to C/C++ code, to easily develop and deploy DSP algorithms, effects, instruments etc. The ecosystem is composed of the language and its compiler, as well as different components that help test, benchmark and optimize, and run the resulting code on a large variety of platforms. In this paper we present various architectures files, optimization and testing tools, that have been developed ov... Lire la suite

The FAUST language has been designed to provide developers an alternative to C/C++ code, to easily develop and deploy DSP algorithms, effects, instruments etc. The ecosystem is composed of the language and its compiler, as well as different components that help test, benchmark and optimize, and run the resulting code on a large variety of platforms. In this paper we present various architectures files, optimization and testing tools, that have been developed over the years as part of the FAUST ecosystem, in order to expand the use of the compiler on various targets, and help developers optimize their DSP code. Some of them were publicly announced and can help when deploying DSPs, some are more experimental to be tested by more adventurous developers.

Stéphane Letz, Yann Orlarey, Dominique Fober

Mots-clés :
Faust, Ecosystem, DSP

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... Lire la suite

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

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... Lire la suite

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 :
DSP, Ecosystem, FAUST

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... Lire la suite

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

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... Lire la suite

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