Modernized Toolchains to Create JSPatcher Objects and WebAudioModules from Faust Code
Résumé
Faust, as an audio domain specific language (DSL) for DSP, has different compilation targets including WebAudio nodes. An AudioWorklet processor wrapping a WebAssembly DSP can be generated statically from native platform compilers as a JavaScript module with wasm files, or dynamically in a browser using a WebAssembly version of the compiler. The WebAssembly compiler has been used in various WebAudio projects through a JavaScript module faust2webaudio, such as the Faust IDE and JSPatcher.
In the paper, we present recent work on a new version of the FaustWebAssembly compiler for the WebAssembly target and its JavaScript wrapper module: faustwasm. Using modern JavaScript tools, the module is designed to be cross platform and runnable under both Node.js and browser environment to generate, compile, and instantiate WebAssembly binary code from Faust code and wrap the binary as an AudioWorklet Processor. Based on this module, we created faust2wam, a WebAudio plugin generator for the WebAudioModule standard with an automatically generated user interface. We also created a tool as an external package for JSPatcher to generate JSPatcher DSP objects in bulk.
Origine | Fichiers produits par l'(les) auteur(s) |
---|