[PD] Preset system in pd?

Jonathan Wilkes jancsika at yahoo.com
Mon Oct 1 05:42:57 CEST 2012


Hi Ivica,
     I don't understand how [line] could fill in for interpolation between states.

On the other hand, I don't think you would actually need all the interpolation
states that pattrstorage provides.  If you just did linear interpolation by allowing
to set the preset with a float (like 1.5) that is between two states, then the user
could easily build all the interpolation schemes that pattrstorage's interp message
provides simply by putting the necessary objects after [recall $1( .  For example,
if you want a quartic curve you'd just do [expr pow($f1-int($f1), 2)+int($f1)] and
then feed that into preset_hub.

That of course wouldn't work for more complex stuff like cubic interpolation,
but that is conspicuously absent in pattrstorage, too.

-Jonathan



>________________________________
> From: Ivica Ico Bukvic <ico at vt.edu>
>To: 'Jonathan Wilkes' <jancsika at yahoo.com>; 'flad chester' <flad.chester at gmail.com>; pd-list at iem.at 
>Sent: Sunday, September 30, 2012 9:42 PM
>Subject: RE: [PD] Preset system in pd?
> 
>
> 
> 
>From:pd-list-bounces at iem.at [mailto:pd-list-bounces at iem.at] On Behalf Of Jonathan Wilkes
>Sent: Sunday, September 30, 2012 8:46 PM
>To: flad chester; pd-list at iem.at
>Subject: Re: [PD] Preset system in pd?
> 
>Pd-l2ork now has [preset_hub]/[preset_node] for which I'm currently writing
>help files.  But I don't think it lets you interpolate between values.
>
>-Jonathan
> 
> 
> 
>To add to this, preset_node and hub are AFAIK the only preset system on pd that allow for use in conjunction with multiple instances of the same abstraction (e.g. you want to use two abstractions of same type and have presets in them that are controlled in the parent patch above them). For an example, see pd-l2ork K12 module (invoke pd-l2ork with –k12 flag). They also offer communication between nodes and hub allowing each of the nodes to send requests to the hub (e.g. any paired node can send a request to the hub to store and/or recall presets which can lead to some very cool possibilities). It is in many ways synonymous to pattrstorage in Max, so its contents are saved as part of the patch, rather than having to save them in a separate file. Finally, pairing nodes with a hub is simple and does not require any $0 workarounds. Simply have a [preset_hub foo], and as soon as you add [preset_node foo] it will automatically pair with the hub provided hub
 is positioned hierarchically higher than the node (e.g. in the same canvas or any of its parent canvases, it does not have to be before preset_node in the glist if it is located in the same canvas). Other features include, ability to compensate for infinite undo/redo (pd-l2ork) feature, cut/paste, to front/back (pd-l2ork feature), and other actions that tend to alter glist ordering. As a matter of fact, pd-l2ork always preserves glist structure wherever possible (including infinite undo/redo actions), and since preset_hub saves all presets as part of its creation arguments, undo/redo also recreate all saved presets. Preset_hub/node also support every data format except for pointers (for obvious reasons).
> 
>That said, Jonathan is right, the preset_hub and node do not interpolate, but with some [line] love, this can be easily added to the patch with arguably better granularity control.
> 
>Cheers!
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20120930/e410347e/attachment-0001.htm>


More information about the Pd-list mailing list