#N canvas 374 444 453 411 10;
#X obj 41 86 inlet;
#X obj 41 343 outlet;
#X obj 151 344 outlet;
#X text 95 362 sub-block delay (samples);
#X obj 41 189 f \$1;
#X text 38 362 bang;
#X text 40 17 delay with DSP block boundary correction;
#X obj 268 345 outlet;
#X text 41 33 grrrr.org \, 2012-2016;
#X text 265 364 sub-sample loss (samples);
#X text 40 68 bang / delay (samples);
#N canvas 220 232 248 255 delay_blocks 0;
#X obj 40 36 inlet;
#X obj 41 215 outlet;
#X obj 171 36 inlet;
#X msg 171 144 stop;
#X obj 40 59 sel 0;
#X obj 103 36 inlet;
#X text 171 18 stop;
#X text 93 19 blocksize;
#X obj 67 183 delay;
#X obj 67 97 * 64;
#X obj 67 150 upp.s2ms;
#N canvas 151 291 376 479 corr 0;
#X obj 53 34 inlet;
#X obj 119 232 t a a, f 7;
#X obj 119 285 -;
#X msg 176 369 0;
#X obj 119 255 int;
#X obj 119 341 + 1;
#X obj 119 105 upp.s2ms;
#X obj 119 185 upp.ms2s;
#X text 176 185 this happens inside [delay];
#X obj 53 73 t a a;
#X obj 53 403 +;
#X obj 53 432 outlet;
#X obj 119 367 * 2;
#X text 108 140 round-off error occurs here;
#X obj 119 313 moses -0.5;
#X connect 0 0 9 0;
#X connect 1 0 4 0;
#X connect 1 1 2 1;
#X connect 2 0 14 0;
#X connect 3 0 10 1;
#X connect 4 0 2 0;
#X connect 5 0 12 0;
#X connect 6 0 7 0;
#X connect 7 0 1 0;
#X connect 9 0 10 0;
#X connect 9 1 6 0;
#X connect 10 0 11 0;
#X connect 12 0 10 1;
#X connect 14 0 5 0;
#X connect 14 1 3 0;
#X restore 120 105 pd corr;
#X text 36 18 blocks;
#X obj 67 125 + 0.0001;
#X connect 0 0 4 0;
#X connect 2 0 3 0;
#X connect 3 0 8 0;
#X connect 4 0 1 0;
#X connect 4 1 9 0;
#X connect 5 0 9 1;
#X connect 8 0 1 0;
#X connect 9 0 13 0;
#X connect 10 0 8 0;
#X connect 11 0 10 0;
#X connect 13 0 10 0;
#X restore 41 257 pd delay_blocks;
#N canvas 96 92 332 300 whole_blocks 0;
#X obj 53 44 inlet;
#X obj 52 239 outlet;
#X obj 176 237 outlet;
#X obj 53 107 / 64;
#X obj 53 134 int;
#X obj 53 80 t a a;
#X obj 53 163 t a a;
#X obj 177 176 -;
#X obj 176 199 * -1;
#X text 77 136 whole blocks;
#X obj 80 189 * 64;
#X text 54 25 samples;
#X text 51 262 whole blocks;
#X text 175 259 remaining samples;
#X obj 171 46 inlet;
#X text 171 28 blocksize;
#X connect 0 0 5 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 3 0;
#X connect 5 1 7 1;
#X connect 6 0 1 0;
#X connect 6 1 10 0;
#X connect 7 0 8 0;
#X connect 8 0 2 0;
#X connect 10 0 7 0;
#X connect 14 0 3 1;
#X connect 14 0 10 1;
#X restore 41 219 pd whole_blocks;
#N canvas 0 22 341 256 whole_samples 0;
#X obj 53 179 outlet;
#X obj 54 109 int;
#X obj 168 114 -;
#X obj 168 176 outlet;
#X obj 54 134 t a a;
#X obj 168 136 * -1;
#X obj 54 80 t a a;
#X obj 56 48 inlet;
#X text 57 21 samples;
#X text 52 206 whole samples;
#X text 171 201 fractional samples;
#X connect 1 0 4 0;
#X connect 2 0 5 0;
#X connect 4 0 0 0;
#X connect 4 1 2 0;
#X connect 5 0 3 0;
#X connect 6 0 1 0;
#X connect 6 1 2 1;
#X connect 7 0 6 0;
#X restore 166 257 pd whole_samples;
#X obj 41 285 t b b b;
#X obj 151 319 f;
#X obj 268 321 f;
#X obj 126 87 inlet;
#X obj 41 114 route bang float stop;
#X text 211 70 blocksize (should be adaptive);
#X obj 216 88 loadbang;
#X obj 216 136 select 0;
#X msg 216 158 64;
#X obj 278 89 inlet;
#X obj 270 185 t a;
#X obj 216 115 f \$2;
#X connect 0 0 18 0;
#X connect 4 0 12 0;
#X connect 11 0 14 0;
#X connect 12 0 11 0;
#X connect 12 1 13 0;
#X connect 13 0 15 1;
#X connect 13 1 16 1;
#X connect 14 0 1 0;
#X connect 14 1 15 0;
#X connect 14 2 16 0;
#X connect 15 0 2 0;
#X connect 16 0 7 0;
#X connect 17 0 4 1;
#X connect 18 0 4 0;
#X connect 18 1 4 0;
#X connect 18 2 11 2;
#X connect 20 0 25 0;
#X connect 21 0 22 0;
#X connect 21 1 24 0;
#X connect 22 0 24 0;
#X connect 23 0 24 0;
#X connect 24 0 12 1;
#X connect 24 0 11 1;
#X connect 25 0 21 0;
