[PD] saving state of a patch

Phil Stone pkstone at ucdavis.edu
Mon Jul 21 17:40:39 CEST 2008

Hi Atte,

I am currently using a mix of sssad and rradical/memento in my live 
performance setup.  sssad is a little easier to implement, and works 
great.  For a good working example, see Chris McCormick's 
"s-abstraction" library.  Also, my [polywavesynth] uses sssad for 
state-saving, and the help and example files show how to do this.  
(See:  http://www.pkstonemusic.com/polyWaveSynth.html ; look at the [pd 
sssadStuff] subpatch in particular, and see in [polywavesynth-example] 
how to load and save presets).

rradical/memento uses [pool] in its default configuration.  Despite some 
very slight inconveniences associated with getting [pool]*, it's well 
worth it, as it's a very powerful hierarchical storage object. What it 
brings to rradical/memento that sssad does not have is a "substate" 
capability, which allows banks of presets, switchable by merely sending 
a preset number.  This is very cool.

Frank Barknecht states in the documentation for rradical/memento that 
the underlying storage object for memento could be something besides 
[pool], but I must say that, personally speaking, modifying memento is 
daunting.  For instance, I would like to change the organization of the 
hierarchy so that it is possible to cut and paste presets, but the 
hierarchy is not organized that way.

Luke Iannini has done a variation on memento called "semento" which adds 
some very nice functionality, including auto-mapping to controllers.

All in all, state-saving on Pd is not really mature, and it would be 
nice if there were an overall solution so that some standardization and 
refinement could take place.   However, I think either sssad or 
rradical/memento would serve your purposes quite well.


Phil Stone

* see this thread:  

Atte André Jensen wrote:
> Michal Seta wrote:
>> Hi Atte
>> The best way to start using memento is to get a patch that works, copy
>> and paste the guts into your own and adapt.  That is, providing that
>> memento works at all on your system.  There is a guide on footils.org
>> that should get you started with the ideas behind the system.  It
>> works fine for me (I don't have pd handy right now so I cannot offer
>> any specific pointers).
>> An alternative is apparently part of the pdmtl abstractions
>> http://wiki.dataflow.ws/PdMtlAbstractions
>> I saw a presentation on if bu have not yet tried it.  It is, arguably,
>> simpler to adopt than memento.
> Both seems complex, and although I appreciate RRADical's (which it seems 
> memento is part of) "paradigm", I'm still quite new to PD and would like 
> to make a few mistakes and learn a few lessons before I "just" adopt 
> someone else's approach.
> However, http://footils.org/cms/show/1#persistence suggests that two, 
> more basic, options exist: state and pool.
> 1) State. I can instantiate it in my 0.40-3extended-20080628 (under 
> linux), but there's no state-help.pd anywhere. Where can I read about 
> it? The above link mentions it "only saves gui", I might want to save 
> content of table/arrays, is that not considered "gui"? If not, is there 
> an obvious and therefore elegant of saving guis + tables/arrays with state?
> 2) Pool. I have the pool-help.pd file, but I cannot instantiate pool, 
> isn't that part of pd-extended? I tried downloading it and compiling it 
> myself, but failed:
> atte at ajstrup:~/music/synth/pd/externals/pool$ bash 
> /usr/lib/pd/doc/manuals/flext/tutorial/build.sh linux pd gcc
> bash: ../build.sh: No such file or directory
> Obviously I have no clue about using flext, could someone help me 
> getting this working?
> At the end of the day, what would be the best bet, state, pool, memento 
> or pdmtl?
> I should note that what I'm trying to do is work out some abstractions 
> for live electronica, and now I need a way to save piece1.pd and 
> another_piece.pd which contains one or more instances of one or more of 
> my abstractions, complete with gui settings and all. If I could just 
> press "save all this, so everything I loaded in this patch is exactly 
> the same when I open it again" I'd be sooo happy :-)

More information about the Pd-list mailing list