diff --git a/doc/pddp/delread4~-help.pd b/doc/pddp/delread4~-help.pd
new file mode 100644
index 0000000000000000000000000000000000000000..30d7c9546e49075a5617035b8790e592e0a19d62
--- /dev/null
+++ b/doc/pddp/delread4~-help.pd
@@ -0,0 +1,94 @@
+#N canvas 48 126 555 619 10;
+#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
+14 -228856 -66577 0;
+#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header delread4~ 3 12 0
+18 -204280 -1 0;
+#X obj 0 369 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
+-228856 -1 0;
+#N canvas 486 282 494 344 META 0;
+#X text 12 115 LIBRARY internal;
+#X text 12 155 WEBSITE http://crca.ucsd.edu/~msp/;
+#X text 12 25 LICENSE SIBSD;
+#X text 12 135 AUTHOR Miller Puckette;
+#X text 12 195 HELP_PATCH_AUTHORS Updated for Pd version 0.33. Jonathan
+Wilkes revised the patch to conform to the PDDP template for Pd version
+0.42.;
+#X text 12 5 KEYWORDS signal nonlocal time;
+#X text 12 45 DESCRIPTION read a signal from a delay line at a variable
+delay time;
+#X text 12 75 INLET_0 signal;
+#X text 12 95 OUTLET_0 signal;
+#X text 12 175 RELEASE_DATE 1997;
+#X restore 500 597 pd META;
+#X obj 0 444 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
+13 -228856 -1 0;
+#X obj 0 497 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
+0 13 -228856 -1 0;
+#X obj 0 538 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
+0 13 -228856 -1 0;
+#N canvas 218 514 428 109 Related_objects 0;
+#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
+14 -204280 -1 0;
+#X obj 22 43 delwrite~;
+#X obj 92 43 delread~;
+#X text 8 2 [vd~] Related Objects;
+#X obj 159 44 delay;
+#X restore 102 597 pd Related_objects;
+#X obj 78 378 cnv 17 3 55 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
+-162280 0;
+#X obj 78 453 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
+-162280 0;
+#X obj 324 138 sig~;
+#X text 98 377 signal;
+#X text 98 397 float;
+#X text 98 416 list;
+#X text 11 23 reads a signal from a delay line at a variable delay
+time;
+#X text 98 452 signal;
+#X text 168 452 - the signal from the corresponding [delwrite~] object
+is interpolated and output after the delay specified by the incoming
+signal.;
+#X text 168 515 - the name of the corresponding [delwrite~] object
+;
+#X text 168 416 - a list is truncated to the first element.;
+#X text 168 377 - incoming signal (delay time in ms).;
+#X text 168 397 - delay time in ms.;
+#X text 80 515 1) symbol atom;
+#X obj 101 160 delwrite~ vd~help_example 1000;
+#X floatatom 324 115 5 0 0 0 - - -, f 5;
+#X obj 324 230 snapshot~;
+#X obj 333 204 metro 150;
+#X obj 333 182 loadbang;
+#X floatatom 324 252 5 0 0 0 - - -, f 5;
+#X floatatom 101 139 5 0 0 0 - - -, f 5;
+#X msg 369 115 1000;
+#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
+;
+#X obj 480 53 pddp/dsp;
+#X obj 98 543 pddp/pddplink ../3.audio.examples/G03.delay.variable.pd
+-text doc/3.audio.examples/G03.delay.variable.pd;
+#X obj 98 558 pddp/pddplink ../3.audio.examples/G04.control.blocksize.pd
+-text doc/3.audio.examples/G04.control.blocksize.pd;
+#X obj 98 573 pddp/pddplink ../3.audio.examples/G05.execution.order.pd
+-text doc/3.audio.examples/G05.execution.order.pd;
+#X obj 519 12 vd~;
+#X obj 324 160 delread4~ vd~help_example;
+#X obj 451 12 delread4~;
+#X text 98 67 [delread4~] implements a 4-point interpolating delay
+tap from a corresponding delwrite~ object. The delay in milliseconds
+of the tap is specified by the incoming signal.;
+#X text 98 274 The delay time is always at least one sample and at
+most the length of the delay line (specified by [delwrite~]). In addition
+\, in case the [delwrite~] runs later in the DSP loop than the [delread4~]
+\, the delay is constrained below by one vector length (64 samples.)
+;
+#X text 98 343 NOTE: [vd~] old \, slightly rude synonym for [delread4~]
+;
+#X connect 10 0 36 0;
+#X connect 23 0 10 0;
+#X connect 24 0 27 0;
+#X connect 25 0 24 0;
+#X connect 26 0 25 0;
+#X connect 28 0 22 0;
+#X connect 29 0 10 0;
+#X connect 36 0 24 0;
diff --git a/pd/doc/5.reference/help-intro.pd b/pd/doc/5.reference/help-intro.pd
index 094111c7a4fe87454978c7c9469e6d9ce2732358..58f412f7866fae9e9d655b21666a914e85315ba2 100644
--- a/pd/doc/5.reference/help-intro.pd
+++ b/pd/doc/5.reference/help-intro.pd
@@ -1,5 +1,5 @@
 #N struct ;
-#N canvas 355 59 579 812 12;
+#N canvas 355 65 579 812 12;
 #X declare;
 #X obj 24 150 bang;
 #X text 124 150 - output a bang message;
@@ -400,7 +400,7 @@ its "help window".;
 #X obj 157 1167 midirealtimein;
 #X obj 301 1169 midiclkin;
 #X text 124 3530 - read with a time-varying delay time;
-#X obj 24 3530 vd~;
+#X obj 97 3532 vd~;
 #X obj 26 2081 rsqrt~;
 #X text 115 2055 - approximate (16-bit) square root;
 #X text 125 2083 - reciprocal square root;
@@ -409,3 +409,4 @@ its "help window".;
 #X text 218 2106 - fast \, cheap 8 bits versions;
 #X obj 25 4056 sublist;
 #X text 125 4056 - get a pointer into a list within a scalar;
+#X obj 24 3532 delread4~;