<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>hey Jonathan<br></div>
<div> </div>
<div>thx for the screencast!<br></div>
<div> </div>
<blockquote type="cite"><div>Here's a rudimentary screencast:<br></div>
<div><a href="http://pdblog.nfshost.com/fielddemo.webm">http://pdblog.nfshost.com/fielddemo.webm</a><br></div>
</blockquote><div>oh yeah! that looks indeed really handy and cute :). then i guess such a circle can have (animated) inlets/outlets and "modulate" other guis and so on... nice<br></div>
<div> </div>
<div>cheers</div>
<div> </div>
<div>On Sat, Sep 5, 2015, at 07:31 AM, Jonathan Wilkes wrote:<br></div>
<blockquote type="cite"><div>On 09/03/2015 08:11 AM, jamal crawford
      wrote:<br></div>
<blockquote type="cite" cite="mid:1441282276.3413904.373735769.070BCC82@webmail.messagingengine.com"><div>oh nice :) im looking forward to this<br></div>
</blockquote><div> </div>
<div>
    Here's a rudimentary screencast:<br></div>
<div> <a href="http://pdblog.nfshost.com/fielddemo.webm">http://pdblog.nfshost.com/fielddemo.webm</a><br></div>
<div> </div>
<div>
    I start with a little abstraction named "b.pd".  It just polls an
    [osc~] which is scaled and offset by some amount to compute<br></div>
<div>
    a value for the [field radius].  In a toplevel patch, setting the
    [field] does nothing.<br></div>
<div> </div>
<div>
    However, when I create the struct with the "canvas a b" definition,
    it tells Pd to load up the contents of "b.pd" into memory.  And when
    I create the scalar "foo", I also get a canvas "b.pd" associated
    with that scalar.<br></div>
<div> </div>
<div>
    Now when I set the [field radius] in that abstraction, it updates
    the "radius" field for that scalar.  The "radius" field also happens
    to be used as a parameter to [draw circle].  That means when the
    "radius" changes it animates the circle's radius.<br></div>
<div> </div>
<div>
    As I make copies of the scalar you can see why this interface is so
    powerful-- each scalar has its own [osc~] controlling the animation
    at a frequency independent of the others.  You can also get each one
    to [throw~] a signal to a bus for sound, but I didn't do audio with
    this screencast.<br></div>
<div> </div>
<div>
    None of this is particularly efficient.  But conceptually it's much
    easier to deal with than juggling gpointers.  Also, once you start
    sending a lot of animation data to the gui, sys_queugui filters out
    redundant messages.<br></div>
<div> </div>
<div>
    -Jonathan<br></div>
<div> </div>
</blockquote><div> </div>
</body>
</html>