Le 2011-11-10 à 08:46:00, Jonathan Wilkes a écrit :
----- Original Message -----
From: Mathieu Bouchard matju@artengine.ca
(this doesn't take ~-objects into account, who use a different execution model)
breadth-first?
No. Breadth-first (queueing) is the execution model of t_clock components, which are central to [delay], [pipe], [metro], and other such things.
I say that breadth-first is queueing, because if you replace every connection by a generic message pipe that does the same to messages as [pipe 0] does to floats, then a tree (of objects and connections) gets traversed breadth-first, as anything down gets delayed to after the current stack of things is done with, in the t_clock queue of things to do «now».
However, the DSP uses a model in which data is flowing more regularly, such that order of execution often does not matter, as for example, if I take data from [osc~] into both an [expr~] and a [cpole~], and from both of them into a [*~], then the [*~] will get the same data regardless of whether [expr~] or [cpole~] gets executed first. The only place where this breaks, is if a given DSP order causes a 1-block delay on certain send/receive or throw/catch tasks. And also dsp loops are forbidden.
| Mathieu BOUCHARD ----- téléphone : +1.514.383.3801 ----- Montréal, QC