I couldn't find a [state] object help not even in cvs. Is it there anywhere and i'm blind (or my locate is)?
the object is loading. but I miss the help (if there's one).
Could anyone could pass me a .pd abs using it(or the help file)?
thanx
Here is it. I advise not to use this object. I prefer to record the
parameters in a text file, an array, or somewhere else where you can know
exactly which parameters you have and their value. apparently Memento rom
rradical is also very good for that, but I don't know it yet.
João
Am 25.06.2006, 07:28 Uhr, schrieb glerm soares organismo@gmail.com:
I couldn't find a [state] object help not even in cvs. Is it there anywhere and i'm blind (or my locate is)?
the object is loading. but I miss the help (if there's one).
Could anyone could pass me a .pd abs using it(or the help file)?
thanx
Hallo, João Miguel Pais hat gesagt: // João Miguel Pais wrote:
Here is it. I advise not to use this object. I prefer to record the
parameters in a text file, an array, or somewhere else where you can know
exactly which parameters you have and their value. apparently Memento rom
rradical is also very good for that, but I don't know it yet.
[sssad] in CVS/abstractions/footils/sssad is another contender for this, which doesn't require any externals (but pd-0.39 or higher).
Frank Barknecht _ ______footils.org_ __goto10.org__
I can also recommend the [coll] object, which is fairly well-documented and which unlike [pool] (used by RRAD/Memento) does not require Flext to build BTW.
d.
João Miguel Pais wrote:
Here is it. I advise not to use this object. I prefer to record the parameters in a text file, an array, or somewhere else where you can know exactly which parameters you have and their value. apparently Memento rom rradical is also very good for that, but I don't know it yet.
João
Am 25.06.2006, 07:28 Uhr, schrieb glerm soares organismo@gmail.com:
I couldn't find a [state] object help not even in cvs.
2006/6/25, derek holzer derek@x-i.net:
I can also recommend the [coll] object, which is fairly well-documented and which unlike [pool] (used by RRAD/Memento) does not require Flext to build BTW.
d.
Thanks Derek, but the documentation says that coll have some problems. Is it still?
Seems to me that msgfile is the better candidate to replace it. Is it?
I recently compiled Memento, hope to study it next weeks... Cheers, Mr. Frank, it seems very nice.
Another related question: Is qlist the only txt saver that deal with time? I mean: Native parsed to time sequenced bangs...
Another suggestions?
Thanx all you guys for explanations,
glerm
Thanks Derek, but the documentation says that coll have some problems.
Is it still?
I noticed that coll didn't work very well on ubuntu (pd-ext, pre-latest
build). But on windows seems to work fine.
Another related question: Is qlist the only txt saver that deal with
time? I mean: Native parsed to time sequenced bangs...
I prefer to use txtfile (or similar) with a coppled [del]. you have access
to the floats, and you can scale them if necessary (make everything
faster/slower)
Joao
João Miguel Pais wrote:
I prefer to use txtfile (or similar) with a coppled [del]. you have access to the floats, and you can scale them if necessary (make everything faster/slower)
[tempo $1( message to [qlist] can also change the relative speed of the object.
mfg-adsr IOhannes
Joao
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hi Glerm,
glerm soares wrote:
Thanks Derek, but the documentation says that coll have some problems.
Is it still?
No problems with using [coll] on OSX or Linux PPC. I use it in a performance patch constantly to save locations of soundfiles to load into tables at the beginning of the session. See my "Samplemapper" system:
http://puredata.info/community/patches http://puredata.info/Members/derek/samplemapper.zip
best, d.
On Sun, 25 Jun 2006, glerm soares wrote:
I couldn't find a [state] object help not even in cvs. Is it there anywhere and i'm blind (or my locate is)?
the object is loading. but I miss the help (if there's one).
The state object is deprecated, as most of its functionality has been lost during time. There are other methods to do state saving like qlist and arrays which are builtin in pd, or others using externals.
Günter
Could anyone could pass me a .pd abs using it(or the help file)?
thanx
-- _________________gLeRM SoAreS.......: baixem o album do matema 17mp3 num pacote--> http://www.organismo.art.br/matema
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
The state object is deprecated, as most of its functionality has been lost during time. There are other methods to do state saving like qlist and arrays which are builtin in pd, or others using externals.
unless pd will have a standardized way of doing this, I prefer doing:
[loadbang] | [r slider001] | | | [set $1( |/ [0( | ## ## ## ## ## <- Vslider or whatever | [s slider001]
however this can't be packed into an abstraction (only a subpatch will do), and not even into a GOP abstraction, because Vslider it's too narrow.
so putting this inside a subpatch, excluding [vsl] and replacing [s] & [r] with iolets, becomes:
[vsl]X[pd statesave]
not so nifty, but a GOP subpatch makes things more tidy (and heavy)
Federico
Federico wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
The state object is deprecated, as most of its functionality has been lost during time. There are other methods to do state saving like qlist and arrays which are builtin in pd, or others using externals.
unless pd will have a standardized way of doing this, I prefer doing:
there is a "init" option in most iemgui objects (like the slider you are referring to) which will save the current state of the objects and initialize it the next time you load the patch.
[...]
however this can't be packed into an abstraction (only a subpatch will do), and not even into a GOP abstraction, because Vslider it's too narrow.
why does it not work with abstractions? i see zero reasons,
as for vslider being too narrow:
fits your need.
the logic to somewhere else where you don't mind the object's size.
not so nifty, but a GOP subpatch makes things more tidy (and heavy)
it is easy to save 1 state of your patch. it becomes really complex (and nifty) when you want to save multiple states. use memento or something for this.
mfg.asdr IOhannes
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
IOhannes m zmoelnig wrote:
Federico wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
The state object is deprecated, as most of its functionality has been lost during time. There are other methods to do state saving like qlist and arrays which are builtin in pd, or others using externals.
unless pd will have a standardized way of doing this, I prefer doing:
there is a "init" option in most iemgui objects (like the slider you are referring to) which will save the current state of the objects and initialize it the next time you load the patch.
[...]
however this can't be packed into an abstraction (only a subpatch will do), and not even into a GOP abstraction, because Vslider it's too narrow.
why does it not work with abstractions? i see zero reasons,
because:
[f] | [set $1( | [...( <- this is the "memory unit"
will only be saved in a (sub)patch. this can't live in an abstraction, as hitting "save" on the main patch in fact does nothing to this "memory"
as for vslider being too narrow:
- you can make them fatter by just setting the width to something that
fits your need.
I don't want to name by abstractions like a.pd, b.pd, etc... and nor I don't want to make 50px wide sliders.
if you don't get what I am talking about, please see http://lists.puredata.info/pipermail/pd-list/2006-05/038312.html and http://sourceforge.net/tracker/index.php?func=detail&aid=1491020&gro...
- you can use the iemgui's built-in send/receive-labels to "outsource"
the logic to somewhere else where you don't mind the object's size.
not so nifty, but a GOP subpatch makes things more tidy (and heavy)
it is easy to save 1 state of your patch. it becomes really complex (and nifty) when you want to save multiple states. use memento or something for this.
when I have more free time I'll make an external for doing this... I can't believe pd can't have it's internal preset system.... MAX has its (multiple)preset object, and almost all patcher dataflow software have one... :|
maybe the pure-data API lacks functions for saving/restoring state of *ANY* external (if the externals needs/wants this)?
mfg.asdr IOhannes
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
hi.
for the impatient, there is a short summary of this mail in the PS clause.
why does it not work with abstractions? i see zero reasons,
because:
[f] | [set $1( | [...( <- this is the "memory unit"
will only be saved in a (sub)patch. this can't live in an abstraction, as hitting "save" on the main patch in fact does nothing to this "memory"
now i see a reason.
as for vslider being too narrow:
- you can make them fatter by just setting the width to something that
fits your need.
I don't want to name by abstractions like a.pd, b.pd, etc... and nor I don't want to make 50px wide sliders.
if you don't get what I am talking about, please see http://lists.puredata.info/pipermail/pd-list/2006-05/038312.html and http://sourceforge.net/tracker/index.php?func=detail&aid=1491020&gro...
i still don't get it
- you can use the iemgui's built-in send/receive-labels to "outsource"
the logic to somewhere else where you don't mind the object's size.
not so nifty, but a GOP subpatch makes things more tidy (and heavy)
it is easy to save 1 state of your patch. it becomes really complex (and nifty) when you want to save multiple states. use memento or something for this.
when I have more free time I'll make an external for doing this...
hmm, but why would you want to do this? long, long ago, there was the [state] external that did this. nobody uses it nowadays. there are other options, like memento, or sssad, or tables, or qlist/textfile/msgfile; what is wrong with them?
I can't believe pd can't have it's internal preset system.... MAX has its (multiple)preset object, and almost all patcher dataflow software have one... :|
i didn't say it is a bad idea to have a preset system. that is why people have written such things; if i remember their names correctly, it might be "memento" and so on. (i should better turn off sarcasm mode)
maybe the pure-data API lacks functions for saving/restoring state of *ANY* external (if the externals needs/wants this)?
well, yes: afaik, Pd lacks an API for state-saving (btw: like any other programming language i know); thats is obviously the reason why there is no such object as you imagine it. the missing API was the biggest problem of [state]: gÃŒnther tried some hacks to make it work nevertheless.
otoh: the iemguis do have state saving (did i already mention this?): so there must be some way to do it (this is: each object would need manually enable this)
mfg,.asd.r IOhannes
PS: for the impatient:: "memento", "iemgui"
well, yes: afaik, Pd lacks an API for state-saving (btw: like any other programming language i know)
in the sense that persistence isnt tighly-coupled? almost every (decent modern scripting) language provides a way to get at the state of an object. and usually query it for all the types of messages it responds to, the names of its instance methods, attribute accessors, etc.
as an example. making Toxy objects, it became incredibly pedantic since there was no way to do this. one option was forward _every_ message that passed to an object, and attempt to infer its type from TCL, eg "ok, a list of 3 floats, lets try the vector editor". another was to read thru the help file, and source code (since the class-rowser is MIA). or merely implement a few features piecemeal. an automatic 'inspector' that works on any object, and prepopulates widgets based on metadata hints is pretty much impossible.
thats why i'm excited about LV2. finally useful metadata. not to mention 64bit compatibility, and GUI agnosticity :)
On Tue, 27 Jun 2006, IOhannes m zmoelnig wrote:
well, yes: afaik, Pd lacks an API for state-saving (btw: like any other programming language i know)
What do you mean by state-saving, so that it can be argued that other programming languages don't have it? You don't mean what is commonly known as serialization, marshalling or pickling?
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju | Freelance Digital Arts Engineer, Montréal QC Canada
On Jun 27, 2006, at 1:57 PM, IOhannes m zmoelnig wrote:
hi.
for the impatient, there is a short summary of this mail in the PS
clause.why does it not work with abstractions? i see zero reasons,
because: [f] | [set $1( | [...( <- this is the "memory unit" will only be saved in a (sub)patch. this can't live in an
abstraction, as hitting "save" on the main patch in fact does nothing to this
"memory"now i see a reason.
as for vslider being too narrow:
- you can make them fatter by just setting the width to something
that fits your need.
I don't want to name by abstractions like a.pd, b.pd, etc... and nor I don't want to make 50px wide sliders. if you don't get what I am talking about, please see http://lists.puredata.info/pipermail/pd-list/2006-05/038312.html and http://sourceforge.net/tracker/index.php? func=detail&aid=1491020&group_id=55736&atid=478073
i still don't get it
- you can use the iemgui's built-in send/receive-labels to
"outsource" the logic to somewhere else where you don't mind the object's size.
not so nifty, but a GOP subpatch makes things more tidy (and heavy)
it is easy to save 1 state of your patch. it becomes really
complex (and nifty) when you want to save multiple states. use memento or
something for this.when I have more free time I'll make an external for doing this...
hmm, but why would you want to do this? long, long ago, there was the [state] external that did this. nobody uses it nowadays. there are other options, like memento, or sssad, or tables, or
qlist/textfile/msgfile; what is wrong with them?I can't believe pd can't have it's internal preset system.... MAX has its (multiple)preset object, and almost all patcher dataflow software have one... :|
i didn't say it is a bad idea to have a preset system. that is why
people have written such things; if i remember their names
correctly, it might be "memento" and so on. (i should better turn
off sarcasm mode)maybe the pure-data API lacks functions for saving/restoring state of *ANY* external (if the externals needs/wants this)?
well, yes: afaik, Pd lacks an API for state-saving (btw: like any
other programming language i know); thats is obviously the reason
why there is no such object as you imagine it. the missing API was the biggest problem of [state]: günther tried
some hacks to make it work nevertheless.
Pd does not lack a state-saving API, its called memento and its part
of rradical. Just because its not written in C doesn't mean it
doesn't exist. I would like to see a library of basic GUI objects
with built-in state saving for ease of use. They could be just GOP
patches with memento in them.
.hc
otoh: the iemguis do have state saving (did i already mention
this?): so there must be some way to do it (this is: each object
would need manually enable this)mfg,.asd.r IOhannes
PS: for the impatient:: "memento", "iemgui"
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/ listinfo/pd-list
I spent 33 years and four months in active military service and
during that period I spent most of my time as a high class muscle man
for Big Business, for Wall Street and the bankers. - General
Smedley Butler
maybe the pure-data API lacks functions for saving/restoring state of *ANY* external (if the externals needs/wants this)?
you can 'fudge' it by recording the last incoming message per-selector, or the last message coming out of an outlet, with a figure-8 looped abstraction and [pool,pdcontainer,coll]. or wrap an object directly a GOP with store/load state buttons..
i do think a proper addition to the API for reflection on the current state, and subscription to update notifications, is essential however. not only for real state-saving, but for those who want to (easily) make non-Tk GUIs for only a single object, or an entire or several patches...
carmen wrote:
maybe the pure-data API lacks functions for saving/restoring state of *ANY* external (if the externals needs/wants this)?
you can 'fudge' it by recording the last incoming message per-selector, or the last message coming out of an outlet, with a figure-8 looped abstraction and [pool,pdcontainer,coll]. or wrap an object directly a GOP with store/load state buttons..
i do think a proper addition to the API for reflection on the current state, and subscription to update notifications, is essential however. not only for real state-saving, but for those who want to (easily) make non-Tk GUIs for only a single object, or an entire or several patches...
http://pure-data.iem.at/docs/developer/ has this link http://student-kmt.hku.nl/%7Etjeerd/pd/pd_fileformat.html to the pd file format but it's broken... What I was thinking is that it should be possible to add the current state of an object to the end of its line in the pd patch without breaking anything, but I'm not sure.
Martin
On Tue, Jun 27, 2006 at 02:41:54PM -0400, Martin Peach wrote:
http://pure-data.iem.at/docs/developer/ has this link http://student-kmt.hku.nl/%7Etjeerd/pd/pd_fileformat.html to the pd file format but it's broken... What I was thinking is that it should be possible to add the current state of an object to the end of its line in the pd patch without breaking anything, but I'm not sure.
well, the end of the "object's line" is most likely its argument list; which _could_ reflect the object's state (but not necessarily). did you mean this or something else?
mfg.asd.r IOhannes
Martin
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Johannes M Zmoelnig wrote:
On Tue, Jun 27, 2006 at 02:41:54PM -0400, Martin Peach wrote:
http://pure-data.iem.at/docs/developer/ has this link http://student-kmt.hku.nl/%7Etjeerd/pd/pd_fileformat.html to the pd file format but it's broken... What I was thinking is that it should be possible to add the current state of an object to the end of its line in the pd patch without breaking anything, but I'm not sure.
well, the end of the "object's line" is most likely its argument list; which _could_ reflect the object's state (but not necessarily). did you mean this or something else?
Yes. Here is a metro inside a patch: #X obj 353 129 metro 100; If it were written #X obj 353 129 metro 100 #S 99; ...the metro should run at 99ms instead of 100. In current pd 0.39-2 this appears as a [metro 100 #S 99] object that otherwise works as a 100ms metro. A future version might be able to take that information and actually use it. Probably, to prevent trouble, dummy arguments would need to be inserted where the full complement of arguments was not specified. Martin
Hallo, Martin Peach hat gesagt: // Martin Peach wrote:
Johannes M Zmoelnig wrote:
well, the end of the "object's line" is most likely its argument list; which _could_ reflect the object's state (but not necessarily). did you mean this or something else?
Yes. Here is a metro inside a patch: #X obj 353 129 metro 100; If it were written #X obj 353 129 metro 100 #S 99; ...the metro should run at 99ms instead of 100. In current pd 0.39-2 this appears as a [metro 100 #S 99] object that otherwise works as a 100ms metro.
Most objects change their state shortly after a patch was loaded. If we automatically save the current state to the .pd-file, we can stop putting abstractions into CVS: Every save action will create a different file depending on the current state.
Frank Barknecht _ ______footils.org_ __goto10.org__
On Wed, 28 Jun 2006, Frank Barknecht wrote:
...the metro should run at 99ms instead of 100. In current pd 0.39-2 this appears as a [metro 100 #S 99] object that otherwise works as a 100ms metro.
Most objects change their state shortly after a patch was loaded. If we automatically save the current state to the .pd-file, we can stop putting abstractions into CVS: Every save action will create a different file depending on the current state.
There are other concerns, normally you want to save more than one state, in order to have different presets. I think state saving has to be done within an additional file(s).
With the state object this was very easy, you could name states arbitrarily and every patch was saveable by just using the state object. I have used state a lot and in very complex ways, the only real drawback was that if you removed part of the patch, all the states that you have saved before were lost. There are ways to avoid this, but it would make the whole business more complicated, and it has never been implemented.
Günter
Federico wrote:
however this can't be packed into an abstraction (only a subpatch will do), and not even into a GOP abstraction, because Vslider it's too narrow.
why does it not work with abstractions? i see zero reasons,
because:
[f] | [set $1( | [...( <- this is the "memory unit"
will only be saved in a (sub)patch. this can't live in an abstraction, as hitting "save" on the main patch in fact does nothing to this "memory"
well, not entirely true. you can make your abstraction save things when you save the main patch.
attached is a little example which might give you the idea. the patch to open is MAIN.pd. it has only been tested on linux, and it might as well not work on win32 and os-x, but the idea should be portable nevertheless.
mfg-.cas.dr IOhannes
PS: somehow i think this is a nice tipp or trick or tick.
#N canvas 0 0 412 298 10; #X obj 119 169 QuitOnSave; #X text 58 74 save this patch using Ctrl-S; #X text 41 96 (you might need to try several times);
#N canvas 531 169 450 346 10; #X obj 219 75 loadbang; #X msg 219 96 19; #X obj 219 117 makefilename %c; #X obj 128 144 select symol; #X obj 77 80 keyname; #X obj 128 167 b; #X msg 128 191 ; pd quit; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 2 0 3 1; #X connect 3 0 5 0; #X connect 4 1 3 0; #X connect 5 0 6 0;
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
IOhannes m zmoelnig wrote:
Federico wrote:
however this can't be packed into an abstraction (only a subpatch will do), and not even into a GOP abstraction, because Vslider it's too narrow.
why does it not work with abstractions? i see zero reasons,
because:
[f] | [set $1( | [...( <- this is the "memory unit"
will only be saved in a (sub)patch. this can't live in an abstraction, as hitting "save" on the main patch in fact does nothing to this "memory"
well, not entirely true. you can make your abstraction save things when you save the main patch.
attached is a little example which might give you the idea. the patch to open is MAIN.pd. it has only been tested on linux, and it might as well not work on win32 and os-x, but the idea should be portable nevertheless.
mfg-.cas.dr IOhannes
PS: somehow i think this is a nice tipp or trick or tick.
yes it is a nice trick ;) you can put it on the pd wiki [1] it would be a nice contrib.
though I think would be better that pd report GUI commands, like menusave (...menusaveas, copy, paste, texteditor, and even obj and connect) to the pd-PatchName.pd msg receiver..
so, patches would know what's happening, or also *record* what's happening, or *broadcast* it over the network.
btw, I wonder how an abstraction would know about its parent (and what?).
ciao Federico
[1] http://puredata.info/docs/tutorials/TipsAndTricks
Hallo, Federico hat gesagt: // Federico wrote:
unless pd will have a standardized way of doing this, I prefer doing:
[loadbang] | [r slider001] | | | [set $1( |/ [0( | ## ## ## ## ## <- Vslider or whatever | [s slider001]
What if I already have a receiver called "slider001" somewhere else which does something different? ;)
however this can't be packed into an abstraction (only a subpatch will do), and not even into a GOP abstraction, because Vslider it's too narrow.
With [sssad] this looks like this:
[r slider]
|
[sssad TAG]
|
[vsl]
|
[s slider]
Instead of [r/s slider] you use direct connections in a real patch, but this is hard to draw in ASCII. Then it would look somehow like this:
[vsl]X[sssad TAG]
So to retrofit a slider for state saving, you just "cross-connect" a [ssaad TAG] object to it. One additional object, two additional connections. In an abstraction to be reused, one normally uses something like [sssad $1/tag] and then you create this abstraction with a unique argument. [sssad] only uses two global receivers, there's no further receiver-namespace-pollution besides this. It saves symbols, floats and lists (or actually just lists, including lists with one element).
State-saving to a [textfile] then is easily done using the idiom described in the help patch or use Chris McCormick's [ssad/panel] abstraction. All this is only using builtin objects, however you can also extend it with [pool], [coll] or whatever.
Known bug: If you create two or more [sssad] objects with the same tag and then delete the first one, state saving is broken until you reload the patch.
Frank Barknecht _ ______footils.org_ __goto10.org__