[PD-dev] [PD] recursion in Gem - a tutorial

patrice colet megalegoland at yahoo.fr
Thu Jul 19 19:22:51 CEST 2007


Yes, I've allready figured it out with testing your external on linux,
the dll is merely impossible to make with win32-mingw (so if someone has
succesfully made the dll, please share!) and with reading your last mail
to IOannes.


Le jeudi 19 juillet 2007 à 08:12 +0000, Claude Heiland-Allen a écrit :
> Patrice Colet wrote:
> > 
> >> IOhannes m zmoelnig a écrit :
> >  (i haen't seen [nnrepeat] on the website, so i
> >>> don't know what it does) with [repeat] or with the [s]/[r] idiom claude
> >>> has proposed.
> > 
> > Apparently it does something like the attached patch, and the 
> > functionning is explained into the tutorial patch 06_break_symmetry.pd,
> > I just need now to go on linux and compile to see how significantly 
> > faster is the external compared with the patch.
> 
> Again, I tried to create something similar in Pd, but ran into 
> re-entrancy bugs whenever I tried to use recursion.  I do not write 
> externals lightly, but in this case I think it was necessary.  If 
> someone knows how to solve this in pure Pd, I'd be delighted.
> 
> Your abstraction doesn't do what you think it does in the presence of 
> re-entrancy.  See attached test patch.
> 
> 
> With max-depth = 2 and repetitions = 2.
> 
> My [nnrepeat] external:
> ->: 2 0
> ->: 1 0
> <-: 1 0
> ->: 1 1
> <-: 1 1
> <-: 2 0
> ->: 2 1
> ->: 1 0
> <-: 1 0
> ->: 1 1
> <-: 1 1
> <-: 2 1
> 
> 
> Your [nnrepeat] abstraction:
> <-: 2 0
> <-: 1 1
> ->: 1 1
> <-: 1 2
> ->: 1 2
> ->: 2 2
> <-: 2 0
> <-: 1 1
> ->: 1 1
> <-: 1 2
> ->: 1 2
> ->: 2 2
> 
> 
> pièce jointe document plein texte (nnrepeat-test.pd)
> #N canvas 0 0 481 517 10;
> #X obj 71 95 r \$0-recurse;
> #X obj 71 380 s \$0-recurse;
> #X obj 140 270 t b a b;
> #X obj 224 290 v \$0-depth;
> #X obj 224 310 - 1;
> #X obj 224 330 max 0;
> #X obj 162 350 spigot;
> #X obj 224 350 v \$0-depth;
> #X obj 185 160 t b f;
> #X obj 185 183 v \$0-depth;
> #X obj 185 208 pack f f;
> #X obj 140 290 v \$0-depth;
> #X obj 140 330 v \$0-depth;
> #X obj 140 310 + 1;
> #X obj 108 50 t a b;
> #X msg 108 21 nrepeat test;
> #X obj 285 108 v \$0-depth;
> #X floatatom 262 77 5 0 0 2 max-depth - -;
> #X floatatom 261 38 5 0 0 2 repetitions - -;
> #X obj 246 108 f 3;
> #X obj 185 235 print ->;
> #X obj 98 160 t b f;
> #X obj 98 183 v \$0-depth;
> #X obj 98 208 pack f f;
> #X obj 98 235 print <-;
> #X obj 108 135 nnrepeat 2;
> #X connect 0 0 25 0;
> #X connect 2 0 11 0;
> #X connect 2 1 6 0;
> #X connect 2 2 3 0;
> #X connect 3 0 4 0;
> #X connect 4 0 5 0;
> #X connect 5 0 6 1;
> #X connect 5 0 7 0;
> #X connect 6 0 1 0;
> #X connect 8 0 9 0;
> #X connect 8 1 10 1;
> #X connect 9 0 10 0;
> #X connect 10 0 20 0;
> #X connect 11 0 13 0;
> #X connect 13 0 12 0;
> #X connect 14 0 25 0;
> #X connect 14 1 19 0;
> #X connect 15 0 14 0;
> #X connect 17 0 19 1;
> #X connect 18 0 25 1;
> #X connect 19 0 16 0;
> #X connect 21 0 22 0;
> #X connect 21 1 23 1;
> #X connect 22 0 23 0;
> #X connect 23 0 24 0;
> #X connect 25 0 21 0;
> #X connect 25 1 2 0;
> #X connect 25 2 8 0;





More information about the Pd-dev mailing list