Oct. 10th, Thursday - 13:30 - 14:00
Practical Rust for Web Audio
This talk will document the author’s journey utilizing Rust while developing a custom low-level audio processing engine for web targets.
Audio on the web has long been plagued by the lack of performance guarantees, with many applications and use cases held back due to insufficient API support by select browser engine implementations. The situations has, however, dramatically improved in the last two years, in no small part thanks to the rise of WebAssembly and developments in the ecosystem.
We will explore:
- navigating web vs. systems programming
- common audio engine internals
- architectural decisions for the web platform
- AudioWorkletProcessor code in Rust
- compilation hacks for minimizing WebAssembly bundle sizes
- using custom allocators, or none
- hand-crafted bindings to JavaScript
- “safe” unsafe code
- practical real-world limitations
- the current state of web audio
- performance tradeoffs we need to deal with for the foreseeable future
The talk will wrap around technical parts with briefly addressing the important ”why”s: exploring philosophical drivers, implications and futures of interactive, interconnected musical works that could live on the web.