Charles Klippel Neimog
Rodolfo Coelho de Souza
Reality: slow Wi‑Fi, slow machines
== unstable rehearsal, bad concert
Goal: ease and reliable performance
In short: deploy Pd patches with externals + GUIs, fast.
Patch + externals + code in a single repository → easier to rebuild works later
Three main groups
var Pd4Web = null;
Pd4WebModule().then((Module) => {
Pd4Web = new Module.Pd4Web();
Pd4Web.openPatch("index.pd", {
canvasId: "Pd4WebCanvas",
soundToggleId: "Pd4WebAudioSwitch",
patchZoom: 2,
projectName: "MyProject",
channelCountIn: 1,
channelCountOut: 2,
sampleRate: 48000,
renderGui: true,
requestMidi: false,
fps: 0, // browser chooses
});
});
// Receive
Pd4Web.onBangReceived("r-test", (r) => console.log("Bang from", r));
Pd4Web.onFloatReceived("r-test", (r,f) => console.log("Float:", f));
Pd4Web.onSymbolReceived("r-test", (r,s) => console.log("Symbol:", s));
Pd4Web.onListReceived("r-test", (r,l) => console.log("List:", l));
// Send
Pd4Web.sendBang("s-test");
Pd4Web.sendFloat("s-test", 42);
Pd4Web.sendSymbol("s-test", "test");
Pd4Web.sendList("s-test", [1, "hi", "message"]);
Charles K. Neimog
Jean‑Yves Gratius
BiA | pd4web
ml5 | pd4web
p5js | pd4web
Thank you!