Hi!
As a proof of concept I modified pure-data and libpd just enough to get it to compile with Emscripten and run some patches:
Only -nogui mode. You can make GUIs using SDL2 and OpenGL, or using other web APIs (HTML forms, SVG, etc).
Performance (provided you compile in Release mode) is about 2x worse than native in one of my tests.
Changes were mainly annoying rather than hard: - Emscripten is stricter about calling function pointers with the correct type, this means pd_typedmess explodes from 6 cases to 60. - I also needed to special-case pd_objectmaker in more places, because its methods have return values other than void. - These type errors are only visible at runtime, so I may have missed some - please report.
Some other smaller fixes I may make pull-requests for soon.
Claude
On 10/1/19 1:36 am, Claude Heiland-Allen wrote:
As a proof of concept I modified pure-data and libpd just enough to get it to compile with Emscripten and run some patches:
Wow! This rules, Claude!
Chris.
Hi,
I updated it to Pd-0.50-2 (not updated the experimental Gem part yet). Instructions remain the same, the changes are in the github repositories: https://mathr.co.uk/empd
Example generative techno patch: https://mathr.co.uk/dynamo/live to listen https://mathr.co.uk/dynamo for info https://code.mathr.co.uk/dynamo for source
Check the licenses for your libraries when making web pages like this, you might have to distribute the corresponding source code too.
Claude
On 09/01/2019 17:36, Claude Heiland-Allen wrote:
Hi!
As a proof of concept I modified pure-data and libpd just enough to get it to compile with Emscripten and run some patches:
Only -nogui mode. You can make GUIs using SDL2 and OpenGL, or using other web APIs (HTML forms, SVG, etc).
Performance (provided you compile in Release mode) is about 2x worse than native in one of my tests.
Changes were mainly annoying rather than hard:
- Emscripten is stricter about calling function pointers with the
correct type, this means pd_typedmess explodes from 6 cases to 60.
- I also needed to special-case pd_objectmaker in more places, because
its methods have return values other than void.
- These type errors are only visible at runtime, so I may have missed
some - please report.
Some other smaller fixes I may make pull-requests for soon.
Claude
Wow, this is very promising!
Gesendet: Dienstag, 26. November 2019 um 19:17 Uhr Von: "Claude Heiland-Allen" claude@mathr.co.uk An: pd-dev@lists.iem.at Betreff: Re: [PD-dev] pd compiled for web with emscripten
Hi,
I updated it to Pd-0.50-2 (not updated the experimental Gem part yet). Instructions remain the same, the changes are in the github repositories: https://mathr.co.uk/empd
Example generative techno patch: https://mathr.co.uk/dynamo/live to listen https://mathr.co.uk/dynamo for info https://code.mathr.co.uk/dynamo for source
Check the licenses for your libraries when making web pages like this, you might have to distribute the corresponding source code too.
Claude
On 09/01/2019 17:36, Claude Heiland-Allen wrote:
Hi!
As a proof of concept I modified pure-data and libpd just enough to get it to compile with Emscripten and run some patches:
Only -nogui mode. You can make GUIs using SDL2 and OpenGL, or using other web APIs (HTML forms, SVG, etc).
Performance (provided you compile in Release mode) is about 2x worse than native in one of my tests.
Changes were mainly annoying rather than hard:
- Emscripten is stricter about calling function pointers with the
correct type, this means pd_typedmess explodes from 6 cases to 60.
- I also needed to special-case pd_objectmaker in more places, because
its methods have return values other than void.
- These type errors are only visible at runtime, so I may have missed
some - please report.
Some other smaller fixes I may make pull-requests for soon.
Claude
Pd-dev mailing list Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev