here is my feeble attempt at a stutter~ type abstraction using vd~ into a tabwrite~. there are a few problems with this though, mainly that streaming into the table via tabwrite~ takes time and so the table is not available as soon as you trigger the stutter~.
e
#N canvas 27 41 662 458 10; #X obj 138 362 dac~; #X msg 216 250 441; #X msg 256 250 4410; #X text 214 232 stutter in samples; #X msg 306 250 44100; #X text 235 348 PROBLEM: STREAMING!!; #X obj 44 300 *~; #X obj 50 251 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X obj 156 326 *~ 1; #X obj 92 294 == 0; #X text 25 234 bypass; #X text 353 250 <<< click one of these; #X text 239 375 the delay has to stream into the buffer via tabwrite~ ; #X text 240 393 is there a better solution?; #X floatatom 207 175 5 0 0 0 - - -; #X text 189 157 PROBLEM: samples at control rate , does not interpolate.... ; #N canvas 0 0 370 308 loop 0; #X obj 100 92 soundfiler; #X obj 100 48 openpanel; #X obj 100 23 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X msg 100 70 read -resize $1 loop; #X obj 59 21 inlet; #N canvas 0 0 450 300 graph7 0; #X array loop 87106 float 0; #X coords 0 1 87105 -1 100 20 1; #X restore 157 22 graph; #X obj 103 263 outlet~; #X obj 102 185 phasor~; #X obj 103 206 *~; #X text 188 205 ha ha; #X obj 104 240 tabread4~ loop; #X obj 102 163 expr (1 / ($f1 / 44100)); #X connect 0 0 8 1; #X connect 0 0 11 0; #X connect 1 0 3 0; #X connect 2 0 1 0; #X connect 3 0 0 0; #X connect 4 0 1 0; #X connect 7 0 8 0; #X connect 8 0 10 0; #X connect 10 0 6 0; #X connect 11 0 7 0; #X restore 154 93 pd loop; #X obj 154 72 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X text 202 93 load a loop; #X obj 153 235 +~; #X obj 154 301 stutter~; #X connect 1 0 20 1; #X connect 2 0 20 1; #X connect 4 0 20 1; #X connect 6 0 0 0; #X connect 6 0 0 1; #X connect 7 0 6 1; #X connect 7 0 9 0; #X connect 8 0 0 1; #X connect 8 0 0 0; #X connect 9 0 8 1; #X connect 14 0 20 1; #X connect 16 0 19 0; #X connect 17 0 16 0; #X connect 19 0 6 0; #X connect 19 0 20 0; #X connect 20 0 8 0;
#N canvas 211 108 653 516 10; #X obj 110 309 vd~ $0-d; #X obj 17 405 avg~; #X obj 48 405 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144 -1 -1 0 1; #X obj 17 388 avg~; #X obj 48 388 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144 -1 -1 0 1; #X obj 31 58 delwrite~ $0-d 441000; #X obj 123 219 samplerate~; #X obj 110 259 /; #X obj 123 199 loadbang; #X obj 123 239 / 1000; #X obj 206 376 tabwrite~ $0-s; #X obj 533 444 table $0-s; #X msg 408 433 ; $1 resize 441000; #X obj 408 414 symbol $0-s; #X obj 408 396 loadbang; #X obj 232 30 inlet; #X obj 18 12 inlet~; #X obj 18 31 +~; #X obj 232 74 route bang; #X obj 110 131 f; #X obj 388 235 tabread4~ $0-s; #X obj 387 202 *~; #X obj 400 182 phasor~ 0.5; #X obj 400 161 expr (1 / ($f1 / 1000)); #X msg 264 51 4410; #X obj 219 301 vline~; #X obj 206 335 *~; #X obj 110 163 t f b f f; #X msg 219 280 0 , 1 5 , 0 5 $1; #X obj 219 259 - 5; #X text 310 280 envelope; #X text 198 13 STUTTER IN SAMPLES; #X text 59 12 INPUT SIGNAL; #X obj 390 276 outlet~; #X connect 0 0 3 0; #X connect 0 0 26 0; #X connect 1 0 2 0; #X connect 3 0 4 0; #X connect 6 0 9 0; #X connect 7 0 0 0; #X connect 7 0 23 0; #X connect 8 0 6 0; #X connect 9 0 7 1; #X connect 13 0 12 0; #X connect 14 0 13 0; #X connect 15 0 18 0; #X connect 16 0 17 0; #X connect 17 0 1 0; #X connect 17 0 5 0; #X connect 18 0 19 0; #X connect 18 1 19 0; #X connect 19 0 27 0; #X connect 20 0 33 0; #X connect 21 0 20 0; #X connect 22 0 21 1; #X connect 23 0 22 0; #X connect 24 0 18 0; #X connect 25 0 26 1; #X connect 26 0 10 0; #X connect 27 0 7 0; #X connect 27 1 10 0; #X connect 27 2 29 0; #X connect 27 3 21 0; #X connect 28 0 25 0; #X connect 29 0 28 0;