I hadn't even thought of window management, which is obviously pretty important to the way we currently patch Pd. Thanks for calling that out. And then of course it would be another matter designing an interface that would make patching easy on a touchscreen.
It would be great if we could see multiple implementations arise and use them interchangeably, but I understand there aren't enough man-hours and expertise available for everything.
On Mon, Jan 5, 2015 at 5:23 PM, Jonathan Wilkes jancsika@yahoo.com wrote:
I now have a Pd console window running on Node-Webkit, plus some menus.
The reason I chose Node-Webkit is because all of the bloat includes within it what I need to change from tcl/tk, yet still retain the same basic GUI interface (and be cross-platform). Things like creating/destroying new windows, adding and disabling menus/menuitems, etc.
To have even a tiny web server one would have to change the basic design to some kind of single-window IDE where you roll your own patch windows. That could be very interesting, but it is too much work at this moment. However, I am using a sys_vgui wrapper that looks more like pd_vmess. That at least helps to get rid of explicit tcl in the c code, which could help going forward with the kind of interface you're talking about.
-Jonathan
On Monday, January 5, 2015 4:22 PM, Brian Fay ovaltinevortex@gmail.com wrote:
One thing I really like about a web technology-based interface is the idea that maybe the computer running Pd and the computer accessing the interface wouldn't necessarily have to be the same computer.
I'm imagining running Pd on a small single-board computer, and patching/interacting with it on a tablet or a phone or a laptop, connecting over an ad-hoc wireless network.
Node-webkit from my understanding is really only intended to run locally, as if it were a native application. It includes an implementation of a web browser so that it can run, and that is where the ~100MB bloat comes from.
Maybe instead of relying on node-webkit we could write our own tiny node server, and have users jump into their favorite web browsers to access the interface?
This would lose the convenience of starting Pd like a native program, but it could be really cool to access it from outside devices.
Does anybody with more knowledge of Pd's internals have thoughts on the feasibility of this?
-Brian
On Thu, Jan 1, 2015 at 10:51 PM, Billy Stiltner billy.stiltner@gmail.com wrote:
If GUI manipulation happens only in the GUI thread (i.e., we completely separate Pd into GUI thread and audio/message thread), a patch currently using [cnv] "get_pos" method for a crude control surface will break. This is because the coordinate data is only being updated on the GUI side, and not reported back to the "core". (Even if the core updates the GUI with programmatic coordinate changes.)
If, on the other hand, the "core" is changed so that it queries the GUI to get coordinate data (for example), you either must block until the GUI returns-- which is bad-- or query ansynchrously which breaks determinism-- which is worse.
Finally, if you continually send the relevant GUI event data to the Pd
does webkit provide a submilisecond setInterval()?
is there anyway to change how tcl/tk responds to input?
maybe like how in javascript instead of each cell of a table having an onClick() , a single loadEventHandler is used foor. the entire table, each tcl/tk canvas is kinda like each document element in concept. anytime user input occurs only controls that respond to that input need redrawn. how about 2 different response modes? or 3even. 1 for patch editing, 1 for performance, and another for dynamic patching?
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list