[PD] Pd-list Digest, Vol 120, Issue 8

Dan Wilcox danomatika at gmail.com
Fri Mar 6 13:44:30 CET 2015


Sounds like a simple enough abstraction. Maybe this is something we can add to libpd.

enohp ym morf tnes
--------------
Dan Wilcox
danomatika.com
robotcowboy.com

On Mar 5, 2015, at 6:18 PM, Jonathan Wilkes <jancsika at yahoo.com> wrote:

> On 03/05/2015 01:50 PM, Dan Wilcox       wrote:
>> 
>> Sounds good. How are you handling           getting the object graph info into and out of the pd core? I might be able to add patch display/editing on iOS ...
> 
> I use an abstracted API called gui_vmess that uses the same format     as pd_vmess.  It sends parameters to the gui which I am currently eval'ing in Javascript.  It's not FUDI because I'm pre-formatting the message specifically for JS's 'eval' function.  But that pre-formatting happens in a single c function that's trivial to change later.  The gui_vmess API itself should be usable by any front-end that can understand strings, floats, and arrays.
> 
> This is incremental, so at the moment I'm massive search/replacing all sys_vgui calls with gui_vmess.  That might sound difficult-- and it is-- but it's the only sane approach given how Pd's editing environment works.  To do otherwise would mean to understand _every_ idiosyncracy of garrays, subpatches, graph-on-parent, fonts, etc., meaning you'd either end up burned out or with a GUI that doesn't support all the features Pd users have gotten comfortable with.
> 
> Thus, I don't have to have a spec for Pd in my head and can pleasantly hit milestones.  It took me about two weeks to realize I hadn't done any work to implement the concept of subpatches, but nonetheless they were already fully implemented and working in the GUI. :)
> 
> The only problem I've hit is that modifying the HTML5 DOM is slow as     molasses.  When you change the value for a scalar field, Pd just erases and redraws the entire scalar.  It's not very noticeable for normal patch edition, but for a ds animation this can mean hundreds of calls to modify the document every second.  Anyway, that prompted me to reconfigure ds drawing so that it just changes the attributes of existing DOM elements.  Now I can get GPU-acclerated ds animation that looks as fast as any of the svg javascript frameworks I've tried.
> 
> Anyway, here are the increments I see:
> 1) Change sys_vgui to gui_vmess.  (In progress)
> 2) Refactor some functions on C side to do text edition on GUI side in HTML5 (that's what it's good at, after all), do box hit detection in the GUI, and simplify array/plot redrawing/resizing.
> 3) Think about ways to make Pd a single-window application.  For a simple example-- one could draw iemgui properties dialogs inside a div, instead of in its own window like it I'm currently doing.  I'm not sure you could ever do _everything_ inside a single page, but the point is that doing so makes porting to any other toolkit or form-factor much easier.
> 
> Of course you can port Pd to IOS or Android without doing #3, but I'd imagine it would either have much reduced functionality or be very difficult to use.
> 
> -Jonathan
> 
>> 
>>> ---------- Forwarded message ----------
>>> From: Jonathan Wilkes <jancsika at yahoo.com>
>>> To: pd-list at lists.iem.at
>>> Cc: 
>>> Date: Tue, 03 Mar 2015 17:15:10 -0500
>>> Subject: Re: [PD] Updating Pd-Extended
>>> On 03/03/2015 10:42 AM, João Pais wrote:
>>>> I can't do anything active (i.e. edit                     scripts, etc), but I could follow instructions - in case they're clear, and correct.
>>> 
>>> I'm making progress on the port of the GUI from Tk to Node-Webkit (or nw.js as its now called).  I've got the iemgui properties dialogs finished, plus some basic internationalization.
>>> 
>>> There is still a lot of development left to do, but already I can run patches, open/close subpatches, display data structures and interact with iemguis.  Once it has feature parity with Tk it will essentially be a                 replacement for Pd-Extended for Linux, OSX, and Windows (7 and beyond).
>>> 
>>> What version of Windows are you using these days?  It looks like going forward nw.js will only compile on 64-bit versions of Windows, but it currently has 32-bit binaries.
>>> 
>>> -Jonathan
>> 
>> 
>> -- 
>> Dan Wilcox
>> @danomatika
>> danomatika.com
>> robotcowboy.com
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20150306/66b76431/attachment.html>


More information about the Pd-list mailing list