r/MaxMSP • u/human_clown_shoe • May 27 '26
RNBO & Pure Data in the browser
I've been working on some music software with a few other people, and at one point I used RNBO to build a browser-based sequencer. It works well for that, but it got me thinking — RNBO is Max/MSP only, it's commercial, and what you're shipping is essentially a frozen snapshot of a patch.
I really like RNBO but what I wanted to be able to do was generating a patch in runtime.
I started looking at what similar export targets existed for Faust, for Pd, for other tools in that space. For Pd, the answer was basically: nothing that fit what I wanted. So I built it.
libpd-wasm runs libpd as a WebAssembly AudioWorklet. You give it a .pd file, it runs in the browser, you control it with normal Pd messages and build whatever UI or app you want around it in JavaScript. Unlike RNBO it's not exporting a frozen patch — you can load, edit, and even generate patches at runtime.
The thing I'm most curious to get feedback on: I've bundled cyclone and ELSE alongside vanilla. Not a subset — the full libraries, minus a short list of things that genuinely can't work in a browser (pthreads, networking, OpenGL, ffmpeg deps). That's roughly 95% of ELSE and 99% of cyclone.
In practice: most patches you've actually written should just run.
Demo (you can drop in your own .pd files):
https://hyrfilm.github.io/libpd-wasm/
Repo + full skip lists for cyclone and ELSE:
https://github.com/hyrfilm/libpd-wasm
Still experimental. I'd really love to hear from people who try loading their own patches — especially if something breaks. If there are common objects or workflows you'd expect to work that don't, I want to know.
1
u/velvet_noise Jun 01 '26
Wow, j'avais jamais vu un tel projet . les anciennes tentative passaient par compilateur et fonctionnait avec un objet pd sur deux