Same as the tcl/tk GUi-- it communicates over a socket connection with Pd.
Early on I was looking at using Qt in a separate thread. matju actually
provided some skeleton code for doing this, but it quickly became clear to me
that this would become too complex to maintain or even finish. I just don't
see how to do it right without constraining the API to sending messages back
and forth-- and if I'm going to do that I might as well use existing
infrastructure.
With nwjs I started out trying to separate the GUI-toolkit-specific code (stuff
like creating menus, locating the window on the screen, etc.) from the other
code. However, I've realized that it would also be helpful to separate the
node.js stuff (finding the pwd, reading from filesystem, etc.) from the pure
javascript stuff. But initially it's been a greater sanity-check to follow the
tcl/tk code rather closely just to make sure as many of Pd's idiosyncrasies
work in the new GUI.
But importantly-- outside of some wrappers in s_inter.c, there is no C code
containing strings of code in another language. It's just typed parameters
similar to pd_vmess, plus a set of convenience functions for sending array data.
Btw-- we just got PACDATA up and running, and the animation is smooth with no
audio dropouts on my Lenovo X60.
-Jonathan
On Monday, September 14, 2015 12:02 PM, s p <[email protected]> wrote:
Jonathan, I'm curious how is the pd-l2ork GUI implemented?
On Sun, Sep 13, 2015 at 8:40 PM, Jonathan Wilkes via Pd-list
<[email protected]> wrote:
In Pd-l2ork, I've added [draw] commands to data structures which implement a
subset of SVG functionality. (Essentially its the same functionality most 2d
APIs offer-- affine transformations, paths, and grouping.) I also have the
usual mouse events which can be associated with each shape in the drawing. In
fact, I just found out HTML5 has some touch events, so I'm going to test them
out with my new RPI touchscreen. :)
As far as d3 and friends-- I think the thing to do is just load whatever
framework along with webpd (or use that framework in my gui port), then send
messages back and forth between the two.
In my port I'm just using the DOM fairly directly, but it's pretty easy to
leverage any of the various frameworks under the hood to get more
efficiency/expressivity in rendering the patch. The one danger I'd point out
is adding features inside Pd proper. Even the very simple bbox calculation for
Pd-Vanilla's scalars can quickly eat up cpu time and interrupt audio. The
complexity it takes to get everything to "just work" from the same programming
environment is evident from the number of processes running in a modern browser.
-Jonathan
On Sunday, September 13, 2015 10:49 AM, patrice colet
<[email protected]> wrote:
Hello,
Le 13/09/2015 11:44, s p a écrit :
Hi Py,
I think WebPd core could definitely be used for that, and thus the
refactoring I am doing these days is a good thing as it will create a good base
to start these kind of projects.
Personally, I am not very familiar with graphics on the web (especially when
it comes to WebGL), but I am sure that for anyone with a good experience in
this, it should be pretty straightforward, for example using one of the many
good libraries that make WebGL, SVG or canvas easier (d3.js, three.js, ...), to
replicate some GEM objects in WebPd. And would be nice indeed! But I see this
as something more in the future ...
replicating datastructure might be a good start.
I've found out that gpointers provide a nice environment for
storing/interfacing Gem objects parameters, it's fast, easily reliable for
hardware storing, or streaming, one inconvenient might be complexity of
implementing.
On Tue, Sep 8, 2015 at 10:07 AM, Py Fave <[email protected]> wrote:
hello pdlisters
just dreaming of possibilities
as i use sound AND images
and can't have the time and will to really learn programming (outside
of patching).
as a limited human,
I think we need GEM or sort of ported in the browser.
what are the current possibilities?
bridges to things like paper.js and GLSL ( webgl) (shader toy) would
make a great envirronnement,
but currently the knowledge necessary is too far away for the rest of
us (wich i belong to)
even if there is need for server- side things to implement interaction
(with arduino for instance),
this is where pd would be needed.
please tell me what the solutions or directions are now for this.
I am sure many would like this implemented?
sorry for my english.
Thank you
Py
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list
--
Sébastien Piquemal
----- @sebpiq
----- http://github.com/sebpiq
----- http://funktion.fm
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list
--
Sébastien Piquemal
----- @sebpiq
----- http://github.com/sebpiq
----- http://funktion.fm
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list