WAMs

Category Archives: Uncategorized

VAMP plugins as WAMs

About a year ago I explored how to get VAMP plugins online. As a proof of concept I ported Dan Stowell’s amplitude follower VAMP plugin as a WAM. A demo is available at http://webaudiomodules.org/demos/vamp/vamphost.html This WAM is implemented as a PNaCl module, so it requires Chrome (canary is not necessary). After porting and thinking a bit further, I concluded that desktop browser is actually an excellent platform for hosting VAMPs. Here’s a quick and incomplete list of the benefits. plugin implementation : realtime/offline audio graphs and…

Read More »

webOBXD

I ported a subset of the JUCE library to WebAssembly, and bridged WAM::Processor directly to juce::PluginProcessor. The bridge is a generic wrapper for JUCE plugins. It looks like JUCE C++ code requires only minor changes, if any at all to be used as a WAM. As a proof of concept, I wrapped the OBXD JUCE plugin as a WAM, compiled it in WebAssembly, linked it to the WASM JUCE library, and finally encapsulated the result as an AudioWorklet. A demo is available here. Like webDX7,…

Read More »

webDX7 — AudioWorklet/WASM

A public git repository for our work-in-progress  AudioWorklet/WebAssembly version of webDX7 is now available at github. An early demo works with webMIDI and an embedded onscreen keyboard, and contains couple of DX7 sysex files to play with. Please note that the demo requires Chrome Canary 64 or later, and enabling experimental web platform features in chrome://flags.

Read More »

AudioWorklets and WASM

We are currently migrating our API to v0.2, which will support AudioWorklets and WebAssembly (WASM). The AudioWorklet reduces latency and glitches due to threading conflicts, while WASM increases performance and gives a smaller download size. WASM has been out for quite some time already, and the initial AudioWorklet implementation just landed on Chrome Canary. Exciting times! Also time to start keeping this website up to date. webDX7 has already been compiled in WASM, and it runs as an AudioWorklet. The binary is a neat 25kB package, and it works with 128 sample…

Read More »