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.
Best,
Phil Stone pkstonemusic.com
http://lists.puredata.info/pipermail/pd-list/2008-01/058382.html
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.
- 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?
- 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@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 :-)