Mots clés
2018 |
An Overview of the FAUST Developer Ecosystem (Inproceeding) Proceedings of the International Faust Conference, Mainz 2018, 2018. (Abstract | Links | BibTeX | Étiquettes: DSP, ecosystem, FAUST) @inproceedings{Letzb:2018,
title = {An Overview of the FAUST Developer Ecosystem}, url = {AnOverviewOfTheFaustEcoystemIFC-18.pdf}, year = {2018}, date = {2018-01-01}, booktitle = {Proceedings of the International Faust Conference, Mainz 2018}, series = {IFC 18}, abstract = {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. author = Letz, St’ephane and Orlarey, Yann and Fober, Dominique}, keywords = {DSP, ecosystem, FAUST}, pubstate = {published}, tppubtype = {inproceedings} } 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. author = Letz, St’ephane and Orlarey, Yann and Fober, Dominique
|
MENDING BELLS AND CLOSING BELFRIES WITH FAUST (Inproceeding) Proceedings of the International Faust Conference, Mainz 2018, 2018. (Abstract | Links | BibTeX | Étiquettes: DSP, ecosystem, FAUST) @inproceedings{granzow:2018,
title = {MENDING BELLS AND CLOSING BELFRIES WITH FAUST}, url = {bells-with-faust.pdf}, year = {2018}, date = {2018-01-01}, booktitle = {Proceedings of the International Faust Conference, Mainz 2018}, series = {IFC 18}, abstract = {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. author = Granzow, John and Ng, Tiffany and Chafe, Chris and Michon, Romain}, keywords = {DSP, ecosystem, FAUST}, pubstate = {published}, tppubtype = {inproceedings} } 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. author = Granzow, John and Ng, Tiffany and Chafe, Chris and Michon, Romain
|
Blender2faust: from drawn 3d objects to physically based sound models (Inproceeding) Proceedings of the Sound and Music Computing, Limassol, Cyprus, 2018, 2018. (Abstract | Links | BibTeX | Étiquettes: 3D, FAUST, physical modeling) @inproceedings{dimitrov:2018,
title = {Blender2faust: from drawn 3d objects to physically based sound models}, url = {blender2faust.pdf}, year = {2018}, date = {2018-01-01}, booktitle = {Proceedings of the Sound and Music Computing, Limassol, Cyprus, 2018}, series = {SMC 18}, abstract = {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. author = Dimitrov, Smilen and Michon, Romain and Serafin, Stefania}, keywords = {3D, FAUST, physical modeling}, pubstate = {published}, tppubtype = {inproceedings} } 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. author = Dimitrov, Smilen and Michon, Romain and Serafin, Stefania
|
Building Faust with CMake (Inproceeding) Proceedings of the International Faust Conference, Mainz 2018, 2018. (Abstract | Links | BibTeX | Étiquettes: DSP, ecosystem, FAUST) @inproceedings{fober:2018a,
title = {Building Faust with CMake}, url = {building-faust-cmake.pdf}, year = {2018}, date = {2018-01-01}, booktitle = {Proceedings of the International Faust Conference, Mainz 2018}, series = {IFC 18}, abstract = {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. author = Fober, Dominique and Orlarey, Yann and Letz, Stephane}, keywords = {DSP, ecosystem, FAUST}, pubstate = {published}, tppubtype = {inproceedings} } 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. author = Fober, Dominique and Orlarey, Yann and Letz, Stephane
|
Faust, du code pour la scène aux cours de code (Inproceeding) CULTURE ET RECHERCHE n° 137 printemps-été 2018, 2018. (Abstract | Links | BibTeX | Étiquettes: enseignement, FAUST, teaching) @inproceedings{orlarey:2018a,
title = {Faust, du code pour la scène aux cours de code}, url = {faust-culture-recherche.pdf}, year = {2018}, date = {2018-01-01}, booktitle = {CULTURE ET RECHERCHE n° 137 printemps-été 2018}, series = {IFC 18}, abstract = {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. author = Orlarey, Yann}, keywords = {enseignement, FAUST, teaching}, pubstate = {published}, tppubtype = {inproceedings} } 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. author = Orlarey, Yann
|
Letz, St’ephane; Orlarey, Yann; Fober, Dominique FAUST Domain Specific Audio DSP Language Compiled to WebAssembly (Inproceeding) Companion Proceedings of the The Web Conference 2018, pp. 701–709, International World Wide Web Conferences Steering Committee, Lyon, France, 2018, ISBN: 978-1-4503-5640-4. (Abstract | Links | BibTeX | Étiquettes: audio, compilation, Domain Specific Language, DSP, FAUST, keywords{signal processing, webassembly, webaudio}) @inproceedings{Letz:2018:FDS:3184558.3185970,
title = {FAUST Domain Specific Audio DSP Language Compiled to WebAssembly}, author = {Letz, St’ephane and Orlarey, Yann and Fober, Dominique}, url = {faust-thewebconf2018.pdf}, doi = {10.1145/3184558.3185970}, isbn = {978-1-4503-5640-4}, year = {2018}, date = {2018-01-01}, booktitle = {Companion Proceedings of the The Web Conference 2018}, pages = {701–709}, publisher = {International World Wide Web Conferences Steering Committee}, address = {Lyon, France}, series = {WWW ’18}, abstract = {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}, keywords = {audio, compilation, Domain Specific Language, DSP, FAUST, keywords{signal processing, webassembly, webaudio}}, pubstate = {published}, tppubtype = {inproceedings} } 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
|
FAUST2SMARTKEYB: A TOOL TO MAKE MOBILE INSTRUMENTS FOCUSING ON SKILLS TRANSFER IN THE FAUST PROGRAMMING LANGUAGE (Inproceeding) Proceedings of the International Faust Conference, Mainz 2018, 2018. (Abstract | Links | BibTeX | Étiquettes: DSP, ecosystem, FAUST) @inproceedings{michon:2018c,
title = {FAUST2SMARTKEYB: A TOOL TO MAKE MOBILE INSTRUMENTS FOCUSING ON SKILLS TRANSFER IN THE FAUST PROGRAMMING LANGUAGE}, url = {faust2smartkeyb.pdf}, year = {2018}, date = {2018-01-01}, booktitle = {Proceedings of the International Faust Conference, Mainz 2018}, series = {IFC 18}, abstract = {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. author = Michon, Romain and Smith, Julius and Chafe, Chris and Wright, Matthew}, keywords = {DSP, ecosystem, FAUST}, pubstate = {published}, tppubtype = {inproceedings} } 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. author = Michon, Romain and Smith, Julius and Chafe, Chris and Wright, Matthew
|
THE FAUST PHYSICAL MODELING LIBRARY: A MODULAR PLAYGROUND FOR THE DIGITAL LUTHIER (Inproceeding) Proceedings of the International Faust Conference, Mainz 2018, 2018. (Abstract | Links | BibTeX | Étiquettes: DSP, ecosystem, FAUST) @inproceedings{michon:2018a,
title = {THE FAUST PHYSICAL MODELING LIBRARY: A MODULAR PLAYGROUND FOR THE DIGITAL LUTHIER}, url = {physical-modeling-library.pdf}, year = {2018}, date = {2018-01-01}, booktitle = {Proceedings of the International Faust Conference, Mainz 2018}, series = {IFC 18}, abstract = {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. author = Michon, Romain and Smith, Julius and Wang, Ge and Wright, Matthew}, keywords = {DSP, ecosystem, FAUST}, pubstate = {published}, tppubtype = {inproceedings} } 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. author = Michon, Romain and Smith, Julius and Wang, Ge and Wright, Matthew
|
3D Printing and Physical Modeling of Musical Instruments: Casting the Net (Inproceeding) Proceedings of the Sound and Music Computing, Limassol, Cyprus, 2018, 2018. (Abstract | Links | BibTeX | Étiquettes: 3D, FAUST, physical modeling) @inproceedings{michon:2018b,
title = {3D Printing and Physical Modeling of Musical Instruments: Casting the Net}, url = {SMC18-3D-printing.pdf}, year = {2018}, date = {2018-01-01}, booktitle = {Proceedings of the Sound and Music Computing, Limassol, Cyprus, 2018}, series = {SMC 18}, abstract = {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. author = Michon, Roamin and Chafe, Chris and Granzow, John}, keywords = {3D, FAUST, physical modeling}, pubstate = {published}, tppubtype = {inproceedings} } 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. author = Michon, Roamin and Chafe, Chris and Granzow, John
|
2017 |
Albouy, Adrien; Letz, Stéphane Faust audio DSP language for JUCE (Inproceeding) Ciciliato, Vincent; Orlarey, Yann; Pottier, Laurent (Ed.): Proceedings of the Linux Audio Conference — LAC 2017, pp. 61–68, CIEREC, Saint Etienne, 2017. (Abstract | Links | BibTeX | Étiquettes: audio, Domain Specific Language, DSP, FAUST, JUCE, real-time) @inproceedings{albouy17,
title = {Faust audio DSP language for JUCE}, author = {Adrien Albouy and Stéphane Letz}, editor = {Vincent Ciciliato and Yann Orlarey and Laurent Pottier}, url = {08_C_B_137208.pdf}, year = {2017}, date = {2017-01-01}, booktitle = {Proceedings of the Linux Audio Conference — LAC 2017}, pages = {61–68}, publisher = {CIEREC}, address = {Saint Etienne}, abstract = {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.}, keywords = {audio, Domain Specific Language, DSP, FAUST, JUCE, real-time}, pubstate = {published}, tppubtype = {inproceedings} } 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.
|
Letz, Stéphane; Orlarey, Yann; Fober, Dominique; Michon, Romain Polyphony, sample-accurate control and MIDI support for FAUST DSP using combinable architecture files (Inproceeding) Ciciliato, Vincent; Orlarey, Yann; Pottier, Laurent (Ed.): Proceedings of the Linux Audio Conference — LAC 2017, pp. 69–75, CIEREC, Saint Etienne, 2017. (Abstract | Links | BibTeX | Étiquettes: audio, DSP programming, FAUST, MIDI) @inproceedings{letz17a,
title = {Polyphony, sample-accurate control and MIDI support for FAUST DSP using combinable architecture files}, author = {Stéphane Letz and Yann Orlarey and Dominique Fober and Romain Michon}, editor = {Vincent Ciciliato and Yann Orlarey and Laurent Pottier}, url = {09_C_B_137724.pdf}, year = {2017}, date = {2017-01-01}, booktitle = {Proceedings of the Linux Audio Conference — LAC 2017}, pages = {69–75}, publisher = {CIEREC}, address = {Saint Etienne}, abstract = {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.}, keywords = {audio, DSP programming, FAUST, MIDI}, pubstate = {published}, tppubtype = {inproceedings} } 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.
|
Michon, Romain; Smith, Julius; Chafe, Chris; Letz, Stéphane; Orlarey, Yann faust2api: a Comprehensive API Generator for Android and iOS (Inproceeding) Ciciliato, Vincent; Orlarey, Yann; Pottier, Laurent (Ed.): Proceedings of the Linux Audio Conference — LAC 2017, pp. 77-82, CIEREC, Saint Etienne, 2017. (Abstract | Links | BibTeX | Étiquettes: Android, FAUST, iOS, Mobile Instruments) @inproceedings{michon17a,
title = {faust2api: a Comprehensive API Generator for Android and iOS}, author = {Romain Michon and Julius Smith and Chris Chafe and Stéphane Letz and Yann Orlarey}, editor = {Vincent Ciciliato and Yann Orlarey and Laurent Pottier}, url = {10_C_C_137485N.pdf}, year = {2017}, date = {2017-01-01}, booktitle = {Proceedings of the Linux Audio Conference — LAC 2017}, pages = {77-82}, publisher = {CIEREC}, address = {Saint Etienne}, abstract = {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.}, keywords = {Android, FAUST, iOS, Mobile Instruments}, pubstate = {published}, tppubtype = {inproceedings} } 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.
|
Michon, Romain; Smith, Julius; Orlarey, Yann New Signal Processing Libraries for Faust (Inproceeding) Ciciliato, Vincent; Orlarey, Yann; Pottier, Laurent (Ed.): Proceedings of the Linux Audio Conference — LAC 2017, pp. 83–87, CIEREC, Saint Etienne, 2017. (Abstract | Links | BibTeX | Étiquettes: Computer Music Programming Language, digital signal processing, FAUST) @inproceedings{michon17b,
title = {New Signal Processing Libraries for Faust}, author = {Romain Michon and Julius Smith and Yann Orlarey}, editor = {Vincent Ciciliato and Yann Orlarey and Laurent Pottier}, url = {11_C_C_137486.pdf}, year = {2017}, date = {2017-01-01}, booktitle = {Proceedings of the Linux Audio Conference — LAC 2017}, pages = {83–87}, publisher = {CIEREC}, address = {Saint Etienne}, abstract = {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.}, keywords = {Computer Music Programming Language, digital signal processing, FAUST}, pubstate = {published}, tppubtype = {inproceedings} } 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.
|
2016 |
Orlarey, Yann; Jouvelot, Pierre Signal Rate Inference for Multidimensional Faust (Inproceeding) Proceedings of the 28th Symposium on the Implementation and Application of Functional Programming Languages, pp. 1:1–1:12, ACM, Leuven, Belgium, 2016, ISBN: 978-1-4503-4767-9, (a1-orlarey.pdf). (Abstract | Links | BibTeX | Étiquettes: audio signal processing, FAUST, rate inference, type systems) @inproceedings{Orlarey:2016:SRI:3064899.3064902,
title = {Signal Rate Inference for Multidimensional Faust}, author = {Yann Orlarey and Pierre Jouvelot}, doi = {10.1145/3064899.3064902}, isbn = {978-1-4503-4767-9}, year = {2016}, date = {2016-01-01}, booktitle = {Proceedings of the 28th Symposium on the Implementation and Application of Functional Programming Languages}, pages = {1:1–1:12}, publisher = {ACM}, address = {Leuven, Belgium}, series = {IFL 2016}, abstract = {We introduce a new signal-level, type- and rate-based semantic framework for describing a multirate version of the functional, domain-specic Faust language, dedicated to audio signal processing, and here extended to support array-valued samples. If Faust is usually viewed as a formalism for combining signal processors, which are expressions mapping input signals to output signals, we provide here the first formal, lower-level semantics for Faust based on signals instead. In addition to its interest in understanding the inner workings of the Faust compiler, which uses symbolic evaluation of signal expressions, this approach turns out to be useful when introducing a language extension targeting multirate and multidimensional (array-valued) processing. More precisely, we provide (1) new syntax and dynamic semantics for (recursive) Faust-based signals, (2) a type and, more interestingly, rational rate static semantics and (3) a new rate inference algorithm, together with its soundness and (relative) completeness theorems.}, note = {a1-orlarey.pdf}, keywords = {audio signal processing, FAUST, rate inference, type systems}, pubstate = {published}, tppubtype = {inproceedings} } We introduce a new signal-level, type- and rate-based semantic framework for describing a multirate version of the functional, domain-specic Faust language, dedicated to audio signal processing, and here extended to support array-valued samples. If Faust is usually viewed as a formalism for combining signal processors, which are expressions mapping input signals to output signals, we provide here the first formal, lower-level semantics for Faust based on signals instead. In addition to its interest in understanding the inner workings of the Faust compiler, which uses symbolic evaluation of signal expressions, this approach turns out to be useful when introducing a language extension targeting multirate and multidimensional (array-valued) processing.
More precisely, we provide (1) new syntax and dynamic semantics for (recursive) Faust-based signals, (2) a type and, more interestingly, rational rate static semantics and (3) a new rate inference algorithm, together with its soundness and (relative) completeness theorems. |
2015 |
Letz, Stéphane; Denoux, Sarah; Orlarey, Yann; Fober, Dominique Faust audio DSP language in the Web (Inproceeding) Proceedings of the Linux Audio Conference, pp. 29–36, GRAME 2015. (Abstract | Links | BibTeX | Étiquettes: Domain Specific Language, DSP, FAUST, real-time, Web Audio API) @inproceedings{letz15a,
title = {Faust audio DSP language in the Web}, author = {Stéphane Letz and Sarah Denoux and Yann Orlarey and Dominique Fober}, url = {Faust-web-lac.pdf}, year = {2015}, date = {2015-04-10}, booktitle = {Proceedings of the Linux Audio Conference}, pages = {29–36}, organization = {GRAME}, abstract = {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.}, keywords = {Domain Specific Language, DSP, FAUST, real-time, Web Audio API}, pubstate = {published}, tppubtype = {inproceedings} } 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.
|
Denoux, Sarah; Orlarey, Yann; Letz, Stéphane Composing a Web of Audio Applications (Inproceeding) Proceedings of the Web Audio Conference, GRAME 2015. (Abstract | Links | BibTeX | Étiquettes: Composability, DSP programming, FAUST, web) @inproceedings{denoux15a,
title = {Composing a Web of Audio Applications}, author = {Sarah Denoux and Yann Orlarey and Stéphane Letz}, url = {WAC.pdf}, year = {2015}, date = {2015-01-27}, booktitle = {Proceedings of the Web Audio Conference}, organization = {GRAME}, abstract = {The Web offers a great opportunity to share, deploy and use programs without installation difficulties. In this article we explore the idea of freely combining/composing real-time audio applications deployed on the Web using Faust audio DSP language.}, keywords = {Composability, DSP programming, FAUST, web}, pubstate = {published}, tppubtype = {inproceedings} } The Web offers a great opportunity to share, deploy and use programs without installation difficulties. In this article we explore the idea of freely combining/composing real-time audio applications deployed on the Web using Faust audio DSP language.
|
2014 |
Letz, Stéphane; Denoux, Sarah; Orlarey, Yann Audio Rendering/Processing and Control Ubiquity ? a Solution Built Using the Faust Dynamic Compiler and JACK/NetJack (Inproceeding) Proceedings of the ICMC/SMC 2014, pp. 1518–1523, 2014. (Abstract | Links | BibTeX | Étiquettes: audio, Domain Specific Language, DSP, FAUST, real-time) @inproceedings{letz14b,
title = {Audio Rendering/Processing and Control Ubiquity ? a Solution Built Using the Faust Dynamic Compiler and JACK/NetJack}, author = {Stéphane Letz and Sarah Denoux and Yann Orlarey}, url = {Faust-icmc.pdf}, year = {2014}, date = {2014-09-17}, booktitle = {Proceedings of the ICMC/SMC 2014}, pages = {1518–1523}, abstract = {We usually think of an audio application as a self-contained executable that will compute audio, allow user interface control, and render sound in a single process, on a unique machine. With the appearance of fast network and sophisticated, light and wireless control devices (such as tablets, smart- phones…) the three different parts (that are audio computation, interface control and sound rendering) can naturally be decoupled to run on different processes on a given machine, or even on different machines (on a LAN or WAN network). We describe a solution to run and control audio DSP on different machines based on FAUST audio DSP language and JACK/NetJack network audio real-time layer.}, keywords = {audio, Domain Specific Language, DSP, FAUST, real-time}, pubstate = {published}, tppubtype = {inproceedings} } We usually think of an audio application as a self-contained executable that will compute audio, allow user interface control, and render sound in a single process, on a unique machine. With the appearance of fast network and sophisticated, light and wireless control devices (such as tablets, smart- phones…) the three different parts (that are audio computation, interface control and sound rendering) can naturally be decoupled to run on different processes on a given machine, or even on different machines (on a LAN or WAN network). We describe a solution to run and control audio DSP on different machines based on FAUST audio DSP language and JACK/NetJack network audio real-time layer.
|
Denoux, Sarah; Letz, Stéphane; Orlarey, Yann; Fober, Dominique FaustLive : Un compilateur à la volée pour Faust… et bien plus encore (Inproceeding) Actes des Journées de l’informatique Musicale, 2014. (Abstract | Links | BibTeX | Étiquettes: audio, contrôle et calculs à distance, FAUST, Programmation de DSP) @inproceedings{FaustLive-JIM,
title = {FaustLive : Un compilateur à la volée pour Faust… et bien plus encore}, author = {Sarah Denoux and Stéphane Letz and Yann Orlarey and Dominique Fober}, url = {FaustLive-JIM.pdf}, year = {2014}, date = {2014-05-24}, booktitle = {Actes des Journées de l’informatique Musicale}, journal = {Actes des Journées de l’informatique Musicale 2014}, abstract = {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\’efficacité 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\’exploitation différent.}, keywords = {audio, contrôle et calculs à distance, FAUST, Programmation de DSP}, pubstate = {published}, tppubtype = {inproceedings} } 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’efficacité 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’exploitation différent.
|
Denoux, Sarah; Letz, Stéphane; Orlarey, Yann; Fober, Dominique FaustLive: Just-In-Time Faust Compiler… and much more (Inproceeding) Proceedings of the Linux Audio Conference, GRAME 2014. (Abstract | Links | BibTeX | Étiquettes: audio, DSP programming, FAUST, remote processing and interfacing) @inproceedings{FaustLive,
title = {FaustLive: Just-In-Time Faust Compiler… and much more}, author = {Sarah Denoux and Stéphane Letz and Yann Orlarey and Dominique Fober}, url = {FaustLive-LAC.pdf}, year = {2014}, date = {2014-05-01}, booktitle = {Proceedings of the Linux Audio Conference}, organization = {GRAME}, abstract = {FaustLive is a standalone just-in-time Faust compiler. It tries to bring together the conve- nience of a standalone interpreted language with the efficiency of a compiled language. Based on libfaust, a library that provides a full in- memory compilation chain, FaustLive doesn\’t require any external tool (compiler, linker, etc.) to translate Faust source code into binary ex- ecutable code. Thanks to this technology, FaustLive pro- vides several advanced features. For example it is possible, while a Faust application is run- ning, to modify its behavior on-the-fly without any sound interruption. It is also possible to mi- grate a running application from one machine to another, etc.}, keywords = {audio, DSP programming, FAUST, remote processing and interfacing}, pubstate = {published}, tppubtype = {inproceedings} } FaustLive is a standalone just-in-time Faust compiler. It tries to bring together the conve- nience of a standalone interpreted language with the efficiency of a compiled language. Based on libfaust, a library that provides a full in- memory compilation chain, FaustLive doesn’t require any external tool (compiler, linker, etc.) to translate Faust source code into binary ex- ecutable code. Thanks to this technology, FaustLive pro- vides several advanced features. For example it is possible, while a Faust application is run- ning, to modify its behavior on-the-fly without any sound interruption. It is also possible to mi- grate a running application from one machine to another, etc.
|
Orlarey, Yann; Letz, Stéphane; Fober, Dominique Version librairie du compilateur Faust. (Technical Report) 2014. (Abstract | Links | BibTeX | Étiquettes: audio, Domain Specific Language, DSP, FAUST, real-time) @techreport{orlarey14a,
title = {Version librairie du compilateur Faust.}, author = {Yann Orlarey and Stéphane Letz and Dominique Fober}, editor = {Grame}, url = {libfaust-INEDIT-2014.pdf}, year = {2014}, date = {2014-02-16}, abstract = {Faust est un langage de programmation de type fonctionnel synchrone conçu spécifiquement pour la synthèse et le traitement du signal audio-numérique en temps-réel. L’objectif de WP3.4 est de développer une version embarquable du compilateur Faust (appelée libfaust) pouvant être intégrée aux différentes applications du projet INEDIT. L’intérêt pour ces applications est de disposer ainsi d’une chaîne de compilation complète, permettant de traduire les traitements synchrones, écrites en Faust, en code binaire exécutable fonctionnant donc à vitesse native. En s’appuyant sur la technologie LLVM cette chaîne de compilation est totalement autonome et ne dépend d’aucun outil de développement extérieur. Ceci facilite grandement le déploiement auprès d’utilisateurs non informaticiens. Elle est en outre très rapide, rendant ainsi dans de nombreux cas la phase de compilation transparente pour l’utilisateur. Le rapport présente la libraire libfaust, l’infrastructure de compilation LLVM, et trois applications de cette technologie : faustgen ̃ un plugin Max/MSP permettant d’éditer, de compiler et d’exécuter du code Faust depuis Max, FaustNode, une extension de la WebAudio API permettant de compiler et d’exécuter du code Faust depuis un navigateur Web et faustcsound, un ensemble de quatre opcodes pour intégrer Faust dans le langage Csound.}, keywords = {audio, Domain Specific Language, DSP, FAUST, real-time}, pubstate = {published}, tppubtype = {techreport} } Faust est un langage de programmation de type fonctionnel synchrone conçu spécifiquement pour la synthèse et le traitement du signal audio-numérique en temps-réel. L’objectif de WP3.4 est de développer une version embarquable du compilateur Faust (appelée libfaust) pouvant être intégrée aux différentes applications du projet INEDIT. L’intérêt pour ces applications est de disposer ainsi d’une chaîne de compilation complète, permettant de traduire les traitements synchrones, écrites en Faust, en code binaire exécutable fonctionnant donc à vitesse native. En s’appuyant sur la technologie LLVM cette chaîne de compilation est totalement autonome et ne dépend d’aucun outil de développement extérieur. Ceci facilite grandement le déploiement auprès d’utilisateurs non informaticiens. Elle est en outre très rapide, rendant ainsi dans de nombreux cas la phase de compilation transparente pour l’utilisateur. Le rapport présente la libraire libfaust, l’infrastructure de compilation LLVM, et trois applications de cette technologie : faustgen ̃ un plugin Max/MSP permettant d’éditer, de compiler et d’exécuter du code Faust depuis Max, FaustNode, une extension de la WebAudio API permettant de compiler et d’exécuter du code Faust depuis un navigateur Web et faustcsound, un ensemble de quatre opcodes pour intégrer Faust dans le langage Csound.
|
2013 |
Letz, Stéphane; Fober, Dominique; Orlarey, Yann Comment embarquer le compilateur Faust dans vos applications ? (Inproceeding) Actes des Journ’ees d’Informatique Musicale JIM2013, Paris, pp. 137–140, 2013. (Abstract | Links | BibTeX | Étiquettes: compilation, FAUST, programming, signal processing) @inproceedings{letz13,
title = {Comment embarquer le compilateur Faust dans vos applications ?}, author = {Stéphane Letz and Dominique Fober and Yann Orlarey}, url = {jim2013_17.pdf}, year = {2013}, date = {2013-01-01}, booktitle = {Actes des Journ’ees d’Informatique Musicale JIM2013, Paris}, pages = {137–140}, abstract = {Le compilateur Faust est désormais disponible sous la forme d’une librairie nommée libfaust. Associée à la technologie LLVM, cette librairie peut être embarquée dans n’importe quelle application ou plugin audio, leur permet- tant ainsi de compiler et d’exécuter dynamiquement du code Faust de manière native, aussi efficacement que du code compilé traditionnel. L’article présente la libraire libfaust, l’infrastructure de compilation LLVM, et deux applications de cette technologie : faustgen ̃ un plugin Max/MSP permettant d’éditer, de compiler et d’exécuter du code Faust depuis Max, et FaustNode, une extension de la WebAudio API permet- tant de compiler et d’exécuter du code Faust depuis un navigateur Web. }, keywords = {compilation, FAUST, programming, signal processing}, pubstate = {published}, tppubtype = {inproceedings} } Le compilateur Faust est désormais disponible sous la forme d’une librairie nommée libfaust. Associée à la technologie LLVM, cette librairie peut être embarquée dans n’importe quelle application ou plugin audio, leur permet- tant ainsi de compiler et d’exécuter dynamiquement du code Faust de manière native, aussi efficacement que du code compilé traditionnel.
L’article présente la libraire libfaust, l’infrastructure de compilation LLVM, et deux applications de cette technologie : faustgen ̃ un plugin Max/MSP permettant d’éditer, de compiler et d’exécuter du code Faust depuis Max, et FaustNode, une extension de la WebAudio API permet- tant de compiler et d’exécuter du code Faust depuis un navigateur Web. |
2012 |
Barkati, Karim; Orlarey, Yann; Barthélemy, Jérôme Abstraction du processus temps réel : une stratégie pour la préservation à long terme (Inproceeding) Revue Francophone d’Informatique Musicale, MSH Paris, 2012. (Abstract | Links | BibTeX | Étiquettes: DSP, FAUST, heritage, preservation, programming) @inproceedings{orlarey12w,
title = {Abstraction du processus temps réel : une stratégie pour la préservation à long terme}, author = {Karim Barkati and Yann Orlarey and Jérôme Barthélemy}, url = {faust-preservation-rfim-2012.pdf}, year = {2012}, date = {2012-09-28}, booktitle = {Revue Francophone d’Informatique Musicale, MSH Paris}, abstract = {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’enjeu de cette approche sont à situer dans le statut auto-suffisant de cette documentation, en tant que support autonome pour la réimplémentation.}, keywords = {DSP, FAUST, heritage, preservation, programming}, pubstate = {published}, tppubtype = {inproceedings} } 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’enjeu de cette approche sont à situer dans le statut auto-suffisant de cette documentation, en tant que support autonome pour la réimplémentation.
|
Michon, Romain; Orlarey, Yann Le compilateur FAUST en ligne : un IDE en ligne pour le langage de programmation FAUST (Inproceeding) Actes des Journées d’Informatique Musicale (JIM) 2012, Mons, Belgique,, 2012. (Abstract | Links | BibTeX | Étiquettes: DSP, FAUST, programming, web) @inproceedings{orlarey12z,
title = {Le compilateur FAUST en ligne : un IDE en ligne pour le langage de programmation FAUST}, author = {Romain Michon and Yann Orlarey}, url = {faust-online-jim-2012.pdf}, year = {2012}, date = {2012-05-09}, booktitle = {Actes des Journées d’Informatique Musicale (JIM) 2012, Mons, Belgique,}, abstract = {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.}, keywords = {DSP, FAUST, programming, web}, pubstate = {published}, tppubtype = {inproceedings} } 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.
|
Michon, Romain; Orlarey, Yann The Faust Online Compiler: a Web-Based IDE for the Faust Programming Language (Inproceeding) Proceedings of the Linux Audio Conference 2012, CCRMA, 2012. (Abstract | Links | BibTeX | Étiquettes: DSP, FAUST, programming, web) @inproceedings{orlarey12y,
title = {The Faust Online Compiler: a Web-Based IDE for the Faust Programming Language}, author = {Romain Michon and Yann Orlarey}, url = {faust-online-lac-2012.pdf}, year = {2012}, date = {2012-04-12}, booktitle = {Proceedings of the Linux Audio Conference 2012, CCRMA}, abstract = {The Faust Online Compiler is a PHP/JavaScript based web application that provides a cross-platform and cross-processor programming environment for the Faust language. It allows to use most of Faust features directly in a web browser and it integrates an editable catalog of examples making it a platform to easily share and use Faust objects.}, keywords = {DSP, FAUST, programming, web}, pubstate = {published}, tppubtype = {inproceedings} } The Faust Online Compiler is a PHP/JavaScript based web application that provides a cross-platform and cross-processor programming environment for the Faust language. It allows to use most of Faust features directly in a web browser and it integrates an editable catalog of examples making it a platform to easily share and use Faust objects.
|
2011 |
Barkati, Karim; Orlarey, Yann Auto-documentation mathématique pour le traitement du signal avec Faust (Inproceeding) Actes des Journées d’Informatique Musicale (JIM) 2011, Saint-Etienne, 2011. (Abstract | Links | BibTeX | Étiquettes: DSP, FAUST, heritage, preservation, programming) @inproceedings{orlarey11w,
title = {Auto-documentation mathématique pour le traitement du signal avec Faust}, author = {Karim Barkati and Yann Orlarey}, url = {faust-mathdoc-jim-2011.pdf}, year = {2011}, date = {2011-05-09}, booktitle = {Actes des Journées d’Informatique Musicale (JIM) 2011, Saint-Etienne}, abstract = {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.}, keywords = {DSP, FAUST, heritage, preservation, programming}, pubstate = {published}, tppubtype = {inproceedings} } 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.
|
Fober, Dominique; Orlarey, Yann; Letz, Stephane FAUST Architectures Design and OSC Support. (Inproceeding) IRCAM, (Ed.): Proc. of the 14th Int. Conference on Digital Audio Effects (DAFx-11), pp. 231–216, 2011. (Abstract | Links | BibTeX | Étiquettes: architecture, FAUST) @inproceedings{ Fober:11b ,
title = {FAUST Architectures Design and OSC Support.}, author = {Dominique Fober and Yann Orlarey and Stephane Letz}, editor = {IRCAM}, url = {faustarch-dafx11-final.pdf}, year = {2011}, date = {2011-01-01}, booktitle = {Proc. of the 14th Int. Conference on Digital Audio Effects (DAFx-11)}, pages = {231–216}, abstract = {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.}, keywords = {architecture, FAUST}, pubstate = {published}, tppubtype = {inproceedings} } 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.
|
2010 |
Jouvelot, Pierre; Orlarey, Yann Dependent Vector Types for Multirate Faust (Inproceeding) Proceedings of the Sound and Music Computing Conference – SMC’10, pp. 345–352, 2010. (Abstract | Links | BibTeX | Étiquettes: FAUST) @inproceedings{ Jouv10 ,
title = {Dependent Vector Types for Multirate Faust}, author = {Pierre Jouvelot and Yann Orlarey}, url = {Faust-SMC2010.pdf}, year = {2010}, date = {2010-01-01}, booktitle = {Proceedings of the Sound and Music Computing Conference – SMC’10}, pages = {345–352}, abstract = {Faust is a functional programming language dedicated to the specification of executable monorate synchronous mu- sical applications. To extend Faust capabilities to domains such as spectral processing, we introduce here a multi- rate extension of the core Faust language. The key idea is to link rate changes to data structure manipulation op- erations: creating a vector-valued output signal divides the rate of input signals by the vector size, while serializing vectors multiplies rates accordingly. This interplay be- tween vectors and rates is made possible in the language static semantics by the introduction of dependent types. We present a typing semantics, a denotational semantics and a correctness theorem that show that this extension preserves the language synchonous characteristics. This new design is under implementation in the Faust compiler.}, keywords = {FAUST}, pubstate = {published}, tppubtype = {inproceedings} } Faust is a functional programming language dedicated to the specification of executable monorate synchronous mu- sical applications. To extend Faust capabilities to domains such as spectral processing, we introduce here a multi- rate extension of the core Faust language. The key idea is to link rate changes to data structure manipulation op- erations: creating a vector-valued output signal divides the rate of input signals by the vector size, while serializing vectors multiplies rates accordingly. This interplay be- tween vectors and rates is made possible in the language static semantics by the introduction of dependent types. We present a typing semantics, a denotational semantics and a correctness theorem that show that this extension preserves the language synchonous characteristics. This new design is under implementation in the Faust compiler.
|
Barthélemy,; Bonardi,; Orlarey, Yann; Lemouton,; Ciavarella,; Barkati, First Steps Towards an Organology Of Virtual Instruments In Computer Music (Inproceeding) ICMA, (Ed.): Proceedings of the 2010 International Computer Music Conference, pp. 369-372, 2010. (Abstract | Links | BibTeX | Étiquettes: FAUST) @inproceedings{ barth10 ,
title = {First Steps Towards an Organology Of Virtual Instruments In Computer Music}, author = {J. Barthélemy and A Bonardi and Yann Orlarey and S Lemouton and R Ciavarella and K Barkati}, editor = {ICMA}, url = {astree-icmc2010.pdf}, year = {2010}, date = {2010-01-01}, booktitle = {Proceedings of the 2010 International Computer Music Conference}, pages = {369-372}, abstract = {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.}, keywords = {FAUST}, pubstate = {published}, tppubtype = {inproceedings} } 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.
|
2009 |
Orlarey, Yann; Fober, Dominique; Letz, Stephane Adding Automatic Parallelization to Faust (Inproceeding) Grame, (Ed.): Linux Audio Conference 2009, 2009. (Abstract | Links | BibTeX | Étiquettes: FAUST, OpenMP, Parallelism, processing, signal) @inproceedings{ orlarey:09a ,
title = {Adding Automatic Parallelization to Faust}, author = {Yann Orlarey and Dominique Fober and Stephane Letz}, editor = {Grame}, url = {faustLAC09.pdf}, year = {2009}, date = {2009-01-01}, booktitle = {Linux Audio Conference 2009}, abstract = {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.}, keywords = {FAUST, OpenMP, Parallelism, processing, signal}, pubstate = {published}, tppubtype = {inproceedings} } 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.
|
Jouvelot, Pierre; Orlarey, Yann Semantics for multirate Faust (Technical Report) 2009. (Abstract | Links | BibTeX | Étiquettes: FAUST, multirate, processing, signal) @techreport{ jouvorl:09a ,
title = {Semantics for multirate Faust}, author = {Pierre Jouvelot and Yann Orlarey}, editor = {CRI MINES Paris Tech}, url = {20091015-multirate-faust.pdf}, year = {2009}, date = {2009-01-01}, abstract = {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.}, keywords = {FAUST, multirate, processing, signal}, pubstate = {published}, tppubtype = {techreport} } 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.
|
2007 |
Graef, Albert Interfacing Pure Data with Faust (Inproceeding) LAC, (Ed.): 2007. (Abstract | Links | BibTeX | Étiquettes: Computer, Data, digital, FAUST, functional, language, music, Pd, processing, programming, Pure, signal) @inproceedings{ AG07 ,
title = {Interfacing Pure Data with Faust}, author = {Albert Graef}, editor = {LAC}, url = {lac07.pdf}, year = {2007}, date = {2007-01-01}, abstract = {This paper reports on a new plugin interface for Grame’s functional DSP programming language Faust. The interface allows Faust programs to be run as externals in Miller Puckette’s Pd (Pure Data), making it possible to extend Pd with new audio objects programmed in Faust. The software also includes a script to create wrapper patches around Faust units which feature “graph-on-parent†GUI elements to facilitate the interactive control of Faust units. The paper gives a description of the interface and illustrates its usage by means of a few examples.}, keywords = {Computer, Data, digital, FAUST, functional, language, music, Pd, processing, programming, Pure, signal}, pubstate = {published}, tppubtype = {inproceedings} } This paper reports on a new plugin interface for Grame’s functional DSP programming language Faust. The interface allows Faust programs to be run as externals in Miller Puckette’s Pd (Pure Data), making it possible to extend Pd with new audio objects programmed in Faust. The software also includes a script to create wrapper patches around Faust units which feature “graph-on-parent†GUI elements to facilitate the interactive control of Faust units. The paper gives a description of the interface and illustrates its usage by means of a few examples.
|
2006 |
Graef,; Kersten,; Orlarey, Yann DSP Programming with Faust, Q and SuperCollider (Inproceeding) LAC, (Ed.): Linux Audio Conference 2006, 2006. (Abstract | Links | BibTeX | Étiquettes: Computer, digital, FAUST, functional, language, music, processing, programming, Q, signal, SuperCollider) @inproceedings{ GKO2006a ,
title = {DSP Programming with Faust, Q and SuperCollider}, author = {A. Graef and S. Kersten and Yann Orlarey}, editor = {LAC}, url = {lac06.pdf}, year = {2006}, date = {2006-01-01}, booktitle = {Linux Audio Conference 2006}, abstract = {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.}, keywords = {Computer, digital, FAUST, functional, language, music, processing, programming, Q, signal, SuperCollider}, pubstate = {published}, tppubtype = {inproceedings} } 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.
|
Trausmuth, Robert; Dusek, Christian; Orlarey, Yann USING FAUST FOR FPGA PROGRAMMING (Inproceeding) Grame, (Ed.): Proc. of the 9th Int. Conference on Digital Audio Effects (DAFx-06), Montreal, Canada, September 18-20, 2006, pp. 287–290, 2006. (Abstract | Links | BibTeX | Étiquettes: FAUST) @inproceedings{ Orlarey:06c ,
title = {USING FAUST FOR FPGA PROGRAMMING}, author = {Robert Trausmuth and Christian Dusek and Yann Orlarey}, editor = {Grame}, url = {faust-dafx06-v2.pdf}, year = {2006}, date = {2006-01-01}, booktitle = {Proc. of the 9th Int. Conference on Digital Audio Effects (DAFx-06), Montreal, Canada, September 18-20, 2006}, pages = {287–290}, abstract = {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.}, keywords = {FAUST}, pubstate = {published}, tppubtype = {inproceedings} } 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.
|