#N canvas 581 25 578 771 12;
#X declare -path else;
#X obj 373 322 hsl 128 15 0 1000 0 0 empty empty empty -2 -8 0 10 -228856
-1 -1 0 1;
#X floatatom 370 353 0 0 0 0 - - -;
#X text 80 660 BUG:;
#X obj 98 453 out~;
#X obj 370 485 out~;
#X msg 370 386 500 \$1;
#X obj 370 416 envgen~;
#X obj 370 448 delread4~ \$0-delay;
#X obj 121 419 delwrite~ \$0-delay 1000;
#X text 79 540 Interpolation:;
#X text 79 564 Since it uses the same interpolation as [tabread4~]
\, the [delread4~] object also ignores the first recorded sample \,
as it is supposed to be a guard point. In practical terms \, the object's
minimum delay is 1 sample (whereas [delread~] can have a minimum delay
of 0).;
#X obj 373 15 declare -path else;
#X obj 98 370 play.file~ bubul.wav 1 1, f 25;
#X text 77 52 The [delread~] object only has control input and does
not interpolate \, so it can only read back in a buffer at a specific
sample behind. On the other hand \, the native [delread4~] object can
read in between samples (with the same kind of interpolation used in
[tabread4~]) and accepts signal inputs.;
#X text 77 148 A signal input allows a smooth and continuous change
in the read position. Note however that such changes promote a speed
change. Thinking again of a magnetic tape \, for the read head to move
from one point to another \, its moving speed is sumed to the normal
reading speed of the tape \, hence \, pitch changes!;
#X text 77 247 But when the read head reaches its destination and rests
there \, only the reading speed of the tape is acting \, so the original
speed is restored. Fool around with the slider below and see how that
happens.;
#X text 81 685 Up to Pd 0.50-4 \, [delread~] and [delread4~] cannot
read up to the maximum delay line if they have different block sizes.
A workaround is to specify a buffer size a block longer than you actually
need.;
#X connect 0 0 1 0;
#X connect 1 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 4 0;
#X connect 12 0 3 0;
#X connect 12 0 8 0;
