This paper introduces Audio Anywhere (AA), a framework for working with audio plugins that are compiled once and run anywhere. At the heart of Audio Anywhere is an audio engine whose Digital Signal Processing (DSP) components are written in Faust and deployed with WebAssembly.
Unlike previous work, Audio Anywhere does not just run in the browser, in fact, the same portable plugin can run at close to native speed on desktop, tablets, and low-power micro controllers at the edge of the Internet of Musical Things network (IoMusT). It is not our intention to push another audio module or plugin format, rather we are developing Audio Anywhere as a proof that Faust to WebAssembly, combined with HTML5 is a viable platform for portable audio modules or plugins outside of the browser and even on tiny micro-controllers.
In this paper we focus on an example instance of the framework for the desktop, the use of Faust for DSP, lightweight Web-views for GUIs, and Rust as a hosting language. The embedded audio platform Daisy is also targeted. We describe our modifications to the Faust compiler, utilizing Rust as an intermediate language to provide access to auto-vectorization of WebAssembly (128-SIMD). A number of example modules are discussed, demonstrating the utility of the framework.