Hello,
I have three part question regarding -batch processing and (non-DSP) event execution.
Say I have a [t b b b] with time-consuming events such as [text], [array], [soundfiler] reading, array normalizing, analyzing, etc. Since each stage of the [trigger] depends on the last, is it a fact that every stage would be executed until completion? I have been using Pd for a while now, and I know this should be true (I have no evidence against it), so I guess what I am asking is How can I really be sure that it is indeed a fact? Is there another flag I can use?
This question extends to those objects that write to disk using [write( messages like [text], [array], or even [writesf~]... and also when saving stuff with Gem's [pix_write], [pix_buffer]... When you send a write message of this sort, am I correct in assuming that Pd will stop doing anything else but writing-to-disk until the writing-to-disk is done, and then resume its next task once the file is completely written?
Finally, when doing batch processing, does Pd create a "list" of all the events that will take place before doing them? Is there anything of that sort?
Thanks!
Fede
Hi Federico,
On 29/01/2019 10:45, Federico Camara Halac wrote:
does Pd create a "list" of all the events that will take place before doing them?
No.
Pd has some objects that deal with logical time and scheduling events ([delay], [metro], [qlist], [pipe]). But mostly they enqueue only 1 future event at a time into Pd's event list, e.g. [metro] adds the next event only when the previous event fires (which only happens when Pd's scheduler has advanced logical time far enough, computing other message chains and maybe dsp in between).
If you need to make a list of "all" events, you have to do that yourself, perhaps with [timer] and [textfile].
If you need to make a list of "all" events, you have to do that yourself, perhaps with [timer] and [textfile].
or have a look at [text sequence]
Gesendet: Dienstag, 29. Januar 2019 um 12:23 Uhr Von: "Claude Heiland-Allen" claude@mathr.co.uk An: pd-list@lists.iem.at Betreff: Re: [PD] batch processing and event execution
Hi Federico,
On 29/01/2019 10:45, Federico Camara Halac wrote:
does Pd create a "list" of all the events that will take place before doing them?
No.
Pd has some objects that deal with logical time and scheduling events ([delay], [metro], [qlist], [pipe]). But mostly they enqueue only 1 future event at a time into Pd's event list, e.g. [metro] adds the next event only when the previous event fires (which only happens when Pd's scheduler has advanced logical time far enough, computing other message chains and maybe dsp in between).
If you need to make a list of "all" events, you have to do that yourself, perhaps with [timer] and [textfile].
Claude
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Thanks Christof and Claude for your replies.
My question need some clarification, namely that I am not using any object calling clocks (delay, metro, pipe, etc) or dsp objects. I am only interested in 0-time ordering, for example:
[loadbang] | [t b b b ] I I I I I (load many large arrays/soundfiles) | (analize arrrays/sounds and write them to disk) | [; pd quit(
On Jan 29, 2019, at 12:26 PM, Christof Ressi christof.ressi@gmx.at wrote:
If you need to make a list of "all" events, you have to do that yourself, perhaps with [timer] and [textfile].
or have a look at [text sequence]
Gesendet: Dienstag, 29. Januar 2019 um 12:23 Uhr Von: "Claude Heiland-Allen" claude@mathr.co.uk An: pd-list@lists.iem.at Betreff: Re: [PD] batch processing and event execution
Hi Federico,
On 29/01/2019 10:45, Federico Camara Halac wrote: does Pd create a "list" of all the events that will take place before doing them?
No.
Pd has some objects that deal with logical time and scheduling events ([delay], [metro], [qlist], [pipe]). But mostly they enqueue only 1 future event at a time into Pd's event list, e.g. [metro] adds the next event only when the previous event fires (which only happens when Pd's scheduler has advanced logical time far enough, computing other message chains and maybe dsp in between).
If you need to make a list of "all" events, you have to do that yourself, perhaps with [timer] and [textfile].
Claude
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
On Tue, 2019-01-29 at 13:55 +0100, Fede Camara Halac wrote:
Thanks Christof and Claude for your replies.
My question need some clarification, namely that I am not using any object calling clocks (delay, metro, pipe, etc) or dsp objects. I am only interested in 0-time ordering, for example:
[loadbang]
[t b b b ] I I I I I (load many large arrays/soundfiles)
(analize arrrays/sounds and write them to disk)
[; pd quit(
That should work as (I believe) you expect it. It loads files, analyzes them, writes results to disk and quits Pd. Pd _is_ deterministic, as Claude already pointed out.
BTW: I guess the common convention is that ASCII art works for monospaced fonts.
Roman
Thanks!
So, 'deterministic' here would mean that, no matter what, it does what it is asked for in the given order, waiting every time until each step is done?
I guess that if I ask for a 'list' of all events, I mean the fully determined sequence of commands that happen throughout the execution of a patch. This would look like an overloaded and fully verbose log file that shows every step of the patch. I think a log like this might be useful for debugging or for increasing efficiency.
I have used [text sequence] to record performances, for example, in order
to replicate a performance. However, a log like the one above might serve
different purposes, but I have no idea where or how it could be implemented
(perhaps something like pd -log -open main.pd
would just output the log
instead of running the patch)
On Tue, Jan 29, 2019 at 2:20 PM Roman Haefeli reduzent@gmail.com wrote:
On Tue, 2019-01-29 at 13:55 +0100, Fede Camara Halac wrote:
Thanks Christof and Claude for your replies.
My question need some clarification, namely that I am not using any object calling clocks (delay, metro, pipe, etc) or dsp objects. I am only interested in 0-time ordering, for example:
[loadbang]
[t b b b ] I I I I I (load many large arrays/soundfiles)
(analize arrrays/sounds and write them to disk)
[; pd quit(
That should work as (I believe) you expect it. It loads files, analyzes them, writes results to disk and quits Pd. Pd _is_ deterministic, as Claude already pointed out.
BTW: I guess the common convention is that ASCII art works for monospaced fonts.
Roman _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
On Tue, 2019-01-29 at 14:50 +0100, Federico Camara Halac wrote:
So, 'deterministic' here would mean that, no matter what, it does what it is asked for in the given order, waiting every time until each step is done?
Exactly.
I guess that if I ask for a 'list' of all events, I mean the fully determined sequence of commands that happen throughout the execution of a patch. This would look like an overloaded and fully verbose log file that shows every step of the patch. I think a log like this might be useful for debugging or for increasing efficiency.
I don't think any of implementation of what you ask can be at the same time generally useful and not be several orders of magnitude too verbose to not fill your disk in short time.
While Pd is deterministic, you can adapt your patch to write a log that is specifically useful to your case.
[loadbang] | [t b b b b b b b ] | | | | | | | | | | | | | [print load soundfiles] | | | | | [pd loading_stuff] | | | | [print analyze tables] | | | [pd analyzing_stuff] | | [print write sounds to files] | [pd writing_stuff] [; pd gui(
Roman
This is, certainly, very helpful! Thanks a lot, Roman
On Tue, Jan 29, 2019 at 3:27 PM Roman Haefeli reduzent@gmail.com wrote:
On Tue, 2019-01-29 at 14:50 +0100, Federico Camara Halac wrote:
So, 'deterministic' here would mean that, no matter what, it does what it is asked for in the given order, waiting every time until each step is done?
Exactly.
I guess that if I ask for a 'list' of all events, I mean the fully determined sequence of commands that happen throughout the execution of a patch. This would look like an overloaded and fully verbose log file that shows every step of the patch. I think a log like this might be useful for debugging or for increasing efficiency.
I don't think any of implementation of what you ask can be at the same time generally useful and not be several orders of magnitude too verbose to not fill your disk in short time.
While Pd is deterministic, you can adapt your patch to write a log that is specifically useful to your case.
[loadbang] | [t b b b b b b b ] | | | | | | | | | | | | | [print load soundfiles] | | | | | [pd loading_stuff] | | | | [print analyze tables] | | | [pd analyzing_stuff] | | [print write sounds to files] | [pd writing_stuff] [; pd gui(
Roman _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Finally, when doing batch processing, does Pd create a "list" of all the events that will take place before doing them?
there's nothing special with batch mode. Pd will just tick the scheduler as fast as possible (instead of waiting for the soundcard), so every rule of realtime mode also applies to batch mode. blocking operations are totally fine, Pd will just wait for it to complete, it is fully deterministic. one should be careful with [realtime], though. the difference to [timer] will become very apparent :-)
Christof
Gesendet: Dienstag, 29. Januar 2019 um 11:45 Uhr Von: "Federico Camara Halac" camarafede@gmail.com An: "pd list" pd-list@iem.at Betreff: [PD] batch processing and event execution
Hello, I have three part question regarding -batch processing and (non-DSP) event execution. Say I have a [t b b b] with time-consuming events such as [text], [array], [soundfiler] reading, array normalizing, analyzing, etc. Since each stage of the [trigger] depends on the last, is it a fact that every stage would be executed until completion? I have been using Pd for a while now, and I know this should be true (I have no evidence against it), so I guess what I am asking is How can I really be sure that it is indeed a fact? Is there another flag I can use? This question extends to those objects that write to disk using [write( messages like [text], [array], or even [writesf~]... and also when saving stuff with Gem's [pix_write], [pix_buffer]... When you send a write message of this sort, am I correct in assuming that Pd will stop doing anything else but writing-to-disk until the writing-to-disk is done, and then resume its next task once the file is completely written? Finally, when doing batch processing, does Pd create a "list" of all the events that will take place before doing them? Is there anything of that sort? Thanks! Fede _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list