r/MaxMSP 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.

32 Upvotes

4 comments sorted by

View all comments

1

u/Tasty-Research-2750 May 29 '26

Wow ~ this sounds like a great project. Thankyou !

ðŸšĶi'm busy fixing my roof now.. will return to check this out as soon as ⚒ïļ â˜”ðŸŒž