Mots clés
2018 |
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
|
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.
|
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.
|
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.
|
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.
|