Pd vanilla is completely supported. As well as what's sometimes called the "extras".
With the exception of a few objects it also includes Cyclone & ELSE, with support for some additional libs/externals coming up.
Background
I recently started creating WebAudio nodes using tools like RNBO, FAUST etc.
If you're not familiar with them they cover an impressive range of build targets, from embedded systems to VSTs to running patches in the browser as WebAudio worklets.
I incorrectly assumed that someone had ported libpd to WASM, but that wasn't the case so... then I did.
I did stumble over some cool projects but with slightly different goals though. Like the Heavy Compiler Collection (https://github.com/Wasted-Audio/hvcc)
which allows you to compile patches into WebAssembly to allow you to host them.
WebPd (https://github.com/sebpiq/WebPd) is another example of a similar approach.
I chose instead to actually port libpd. The main difference with that approach is that patches are interpreted at runtime, so you can load, reload, or swap them dynamically — just like you would on desktop. And it also opens up for things like generating patches at runtime and so on.
If you want to use it yourself, there's a npm package for it - so it should be fairly straightforward to get started.
jonasholmer•1h ago
This playground contains a number of patches to play around with:
https://hyrfilm.github.io/libpd-wasm
Pd vanilla is completely supported. As well as what's sometimes called the "extras". With the exception of a few objects it also includes Cyclone & ELSE, with support for some additional libs/externals coming up.
Background
I recently started creating WebAudio nodes using tools like RNBO, FAUST etc. If you're not familiar with them they cover an impressive range of build targets, from embedded systems to VSTs to running patches in the browser as WebAudio worklets. I incorrectly assumed that someone had ported libpd to WASM, but that wasn't the case so... then I did.
https://github.com/hyrfilm/libpd-wasm
I did stumble over some cool projects but with slightly different goals though. Like the Heavy Compiler Collection (https://github.com/Wasted-Audio/hvcc) which allows you to compile patches into WebAssembly to allow you to host them. WebPd (https://github.com/sebpiq/WebPd) is another example of a similar approach.
I chose instead to actually port libpd. The main difference with that approach is that patches are interpreted at runtime, so you can load, reload, or swap them dynamically — just like you would on desktop. And it also opens up for things like generating patches at runtime and so on. If you want to use it yourself, there's a npm package for it - so it should be fairly straightforward to get started.