[PD] Patch acting weird with Pd 0.46.6

Simon Wise simonzwise at gmail.com
Thu Jun 4 04:09:49 CEST 2015


On 04/06/15 08:03, Jonathan Wilkes via Pd-list wrote:
> On 06/03/2015 05:03 PM, IOhannes m zmölnig wrote:
>> On 06/03/2015 09:40 PM, Pierre Massat wrote:
>>> Thank you both very much for the explanations. So if I got it right, the
>>> loop in itself was behaving as expected, but what was being printed in the
>>> console was not reflecting that. Instead print behaved like a list prepend.
>>> That's good to know, I candidly thought that print objects were printing
>>> out stuff in real time irrespective of what was going on in the rest of the
>>> patch.
>> no.
>> everything was behaving as expected, and [print] was printing in "real
>> time" (whatever that means).
>>
>>
>> but time in Pd is a fickle thing, and while things can happen in
>> zero-time they also happen one after the other.
>> [print] immediately prints any data it receives, but your patch was made
>> in a way that would send the "last" message to [print] before it would
>> send the "first" message. hence the reversion.
>>
>> to re-iterate: [trigger] would have made this more obvious.
>
> But the author of the patch was under the impression that the firing order
> didn't matter. In cases like this [trigger] won't help-- the user would still
> have the same 50% chance of making the connections in the wrong order.

Surely that confusion, and it is a common one, is not understanding properly 
what is being drawn when writing a pd patch, it is very important to understand 
that it is a depth first tree and a single iterative process run once each dsp 
block. Fanouts are ambiguous and obfuscate this critical aspect of pd, they 
suggest a kind of parallel implementation of dataflow which is not correct.

Sure, after this is fully understood then fanouts are a convenient shortcut when 
you know that the ambiguity is not important, and when you consistently read 
them as ambiguous triggers ... but too often they are used without understanding 
this, hence they are dangerous, hence the very sound advice to replace them with 
triggers (and consider carefully the choice of order) when a patch is not doing 
what you think it should. Hence also any beginner should be taught not to use 
fanouts until they are well familiar with the language.


Simon




More information about the Pd-list mailing list