Giter Club home page Giter Club logo

pd4web's Introduction

pd4web

Logo

pd4web: Running PureData Patches with Externals on Web

Release Version DOI

Downloads License

Tests

pd4web lets you run PureData patches directly in web browsers. It stands out from alternatives like hvcc and WebPd by compiling the source code of libpd, thanks to the work of claudeha. With pd4web, you can compile any PureData Vanilla patch, along with a list of more than 800 externals and abstractions.

Examples

Click to Expand!

1. Simple Patch

Logo

2. Interaction with p5js

Logo

WebSite

3. Live Score (VexFlow)

Logo

WebSite


Questions, doubts, help

  • Check the Discussions Sections here.

Issues

  • Check the Discussions Issues here.

Acknowledgements

  • Zack Lee for the GUI interface for patches;
  • Jonathan Wilkes, Ivica Ico Bukvic, and the Purr Data team;
  • Claude Heiland-Allen for creating empd;
  • Dan Wilcox for libpd;
  • Miller Puckette and the Pd community for developing and maintaining Pd;

Details and Documentation

For more details and documentation, please visit the Docs section of this project.

Contribute

Contribute to enabling running your external library in PureData for WebBrowsers! Add you CMakeFile.

pd4web's People

Contributors

charlesneimog avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

jyg

pd4web's Issues

Add cfg file for back compatibility

  • Add version for libpd;
  • Add version for PureData;
  • Add version for Emscripten;
  • Check the version of pd2wasm and give some warning possible incompatibilities;

changing the PdPatch and rebuilding has no effect

after changing the Patches/index.pd, some special steps need to be taken in order for the patch to actually show up in the webpage.

as per pure-data/pure-data#2258 (comment), these steps should be something like:

emcmake cmake . -B build
emmake make -C build -j 8

however, it seems that this is not enough (as in: reloading the page and restarting the patch will still use the old patch)

afaict, i also need to change "something" in the source-code and re-compile (since i was working on Pd itself, something like build/libpd/pure-data/src/x_time.c would do the trick).

as assume this is because webpatch/pd4web.js (which i guess contains both the patch and the Pd wasm code) is only rebuilt if the .c sources change, but not if only the .pd file changes.

lower required CMake version

i tried building pd4web within an emscripten/emsdk Docker image (with today's latest aka 3.1.57 aka 8b7c9e9e95f3), which is based on Ubuntu/Jammy (22.04), which only comes with CMake-3.22

however, the minimum required CMake version is 3.25:

cmake_minimum_required(VERSION 3.25)

i wonder what motivates this minimum required version?

lowering the required version to 3.22 with something like this

sed -e '1s/VERSION 3.25/VERSION 3.22/' -i CMakeLists.txt

allowed me to build the the project just fine.

in order to allow for maximum backwards compatibility, I would suggest to use the actually required minimum version (based on which features of CMake you need), rather than your currently used version.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.