[PD] [PD-announce] WebPd (Pd but in the web browser) version 1.0 is coming ...

s p sebpiq at gmail.com
Wed Jun 15 18:49:52 CEST 2022

TL;DR : Faster, better, stronger, WebPd 1.0 is coming (featuring
WebAssembly, Audio Worklet and more) ... but it needs your support !

WebPd is a highly modular web audio programming toolkit inspired by Pure Data.
→ it allows Pure Data patches to run in web pages, therefore enabling
non-programmers (artists musicians, etc ... ) to design live and
interactive audio for the web.
→ it provides experienced web programmers with a complete audio
toolkit that is production-ready, and enables efficient audio
synthesis and processing in the browser.

🌱 You can try a demo of the upcoming version here :
🌱 You can donate money to help making it real :
🌱 Your money will help moving forward the following roadmap :



For the past weeks, development of WebPd (1) has picked up a good
pace, and the project has reached a state where I feel now confident
for sharing a demo (2), a public update on what's going on and a call
for crowdfunding (3).

🔊 1. How WebPd Got Here
The project was started in 2010 by Chris Mc Cormick when Firefox
released the first implementation of an API that enabled live audio
synthesis in the web browser. In 2012, I took over and ported WebPd to
a different API called Web Audio API (4), which has since become the
web standard for live audio.
The Web Audio API implementation of WebPd is still the current version
(v0.4) and hasn't seen any significant update for many years. It
works, but it is hackish and limited. This is due to the fact that the
Web Audio API impose its own synthesis and processing functions
(oscillators, filters, etc, ... ), and is therefore nearly impossible
to customize.
Luckily, the situation is now very different than it was 10 years ago.
New APIs and standards have been proposed and adopted by all major
browser vendors, making it finally possible to build serious custom
audio apps for the web browser :
- The AudioWorklet (5) : a recent fix to the Web Audio API allowing it
to run custom audio code with good performance.
- WebAssembly (6) : a binary instruction format which allows to
compile code so that it can run in the browser with performance close
to that of native applications.
With these in mind, I've been meaning to re build WebPd from scratch
for several years already but it's a daunting task : it requires an
entire re-design of the audio engine, and a full re-write of the code
to make the project future proof. Another problem is that there isn't
yet a good ecosystem of libraries for writing code with the new web
audio technologies mentioned above. Therefore, some generic web audio
packages need to be built as part of the project (adding to the
complexity and the amount of work).

🔊 2. What's planned for this new version, WebPd 1.0
First, let me say that WebPd does not intend to be a fully-fledged
application like Pure Data is on the desktop, but rather a library for
developing web applications. In that sense, conceptually, it is closer
to libpd (7) than to Pure Data. Of course, you could build a
fully-featured user interface, a Pure Data on the web, using WebPd,
but that is out of the scope of the project.
WebPd's goals are :
→ to allow artists to take their Pure Data patches and run these in
web pages, therefore enabling non-programmers (sound designers,
musicians, etc ... ) to design live and interactive audio for the web.
→ to provide experienced web programmers with a complete audio toolkit
that is production-ready, and enables efficient audio synthesis and
processing in the browser.
For this to be possible, WebPd needs a small community of users and
developers. In fact, I have received many messages inquiring about the
status of the project and many have offered help with development, so
I know that this community exists.
The first milestone is therefore to build a minimum viable product,
write good docs, resources for beginners to find help, find a good
platform for questions and discussion, etc ... making it more easy for
others to contribute. In the long run, I would like the development
work to be as collaborative as possible, and progressively hand over
ownership of the project to the community.

🔊 3. Crowdfunding campaign
In order to help reach this first milestone, I am starting a small
crowdfunding campaign so I can spend more time on the project in the
coming months. You can find here
(https://github.com/sebpiq/WebPd/blob/master/README.md#roadmap) a list
of what I plan to achieve for WebPd 1.0 with help from that money.
If this is something you'd like to help with, you can donate on the
opencollective page of the project
(https://opencollective.com/webpd#category-CONTRIBUTE). Any amount is
You can also ask questions, or come share ideas here
(https://github.com/sebpiq/WebPd/issues/113) or here

(1) https://github.com/sebpiq/WebPd
(2) https://sebpiq.github.io/WebPd_demos/the-graph/www/
(3) https://opencollective.com/webpd/contribute/backer-42114/checkout
(4) https://webaudio.github.io/web-audio-api/
(5) https://webaudio.github.io/web-audio-api/#AudioWorklet
(6) https://webassembly.org/
(7) https://github.com/libpd/libpd

Pd-announce mailing list
Pd-announce at lists.iem.at

More information about the Pd-list mailing list