[PD] d-median (a running median) + d-for (a for loop)

Roman Haefeli reduzierer at yahoo.de
Fri Oct 17 21:11:36 CEST 2008


On Fri, 2008-10-17 at 17:59 +0200, Damian Stewart wrote:
> Frank Barknecht wrote:
> 
> > Normally I like it if there are lots of verbosely named subpatches when
> > dealing with a complicated algorithm, i.e.:
> > 
> >  [pd initialize]
> >  |
> >  [pd increment-timetag]
> >  |
> >  [pd send-new-x-value]
> >  |
> >  [pd loop-backwards-through-arrays]
> >  |
> >  [pd check-for-old-value]
> >  |
> >  [pd insert-sorted]
> >  |
> >  [pd output-median]
> 
> yeah this is a smart move. i'd probably do it that way if i was 
> re-implementing things. while developing this i had a clearish 
> understanding of more-or-less how to make it work; but there was also a 
> considerable amount of making-it-up-as-i-went-along in there too.
> 
> then again, this approach brings you head to head with the problem of what 
> to do when each subpatch has to communicate multiple things to subpatches 
> further down the line... do you pack and unpack at the inlets/outlets? do 
> you have multiple inlets and outlets?
> 
> and debugging execution order problems when things are sub-patched, for 
> example: no thanks. if you calculate something in step 3 and don't need it 
> again until step 6, but it needs to be delivered to the step 6 objects 
> _before_ the thing you calculated in step 4 but _after_ the thing you 
> calculated in step 5 - what happens then? i find it's clearer to have those 
> scary fanning connections coming out of trigger objects, in this case.. 
> sometimes i really wish i could use DesireData's stepping functionality, 
> because reverse engineering using print objects is awkward at best; but as 
> it is there is no DesireData for OSX, and no-one seems interested in 
> helping me make it work at the moment.
> 
> 
> ... and then, of course, it's always a bit hairy trying to separate stuff 
> after the fact, because:

and it becomes a lot easier when grouping stuff together from the
beginning. this is at least what i believe and have experienced.
debugging execution order doesn't need to be hard, if you apply certain
paradigmes when patching. personally, i almost always use only one send
symbol MYPATCH. then i give all parameters in use meaningful labels:

[freq $1(
|
[s MYPATCH]

as i said in the previous post, the receiving side should only go into
cold inlets, if possible:

  [r MYPATCH]
  |
  [route freq]
  |
[X ]

when debugging execution order, you only need one single print to
monitor your patch:

[r MYPATCH]
|
[print DEBUG]

yo, after all, i still think, that everyone has and should have their
own personal patching style. however, i find it interesting to confront
different styles with each other.

roman




		
___________________________________________________________ 
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de





More information about the Pd-list mailing list