aboutsummaryrefslogtreecommitdiff
path: root/externals/vanilla
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2010-12-13 02:20:47 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2010-12-13 02:20:47 +0000
commit67c5a402fd1d2c9b7ce70b98c4fca2fd972312c5 (patch)
tree3dd968ecdff0767718cc6cbaa41ea95cb5c03036 /externals/vanilla
parent60a6ee6cf6b7c626067769e35d88f13853414d18 (diff)
replaced with vanilla help files
svn path=/trunk/; revision=14607
Diffstat (limited to 'externals/vanilla')
-rw-r--r--externals/vanilla/bng-help.pd681
-rw-r--r--externals/vanilla/clip~-help.pd119
-rw-r--r--externals/vanilla/cputime-help.pd182
-rw-r--r--externals/vanilla/delay-help.pd216
-rw-r--r--externals/vanilla/hslider-help.pd701
-rw-r--r--externals/vanilla/key-help.pd153
-rw-r--r--externals/vanilla/line-help.pd298
-rw-r--r--externals/vanilla/list-help.pd768
-rw-r--r--externals/vanilla/my_canvas-help.pd955
-rw-r--r--externals/vanilla/namecanvas-help.pd62
-rw-r--r--externals/vanilla/netreceive-help.pd116
-rw-r--r--externals/vanilla/netsend-help.pd160
-rw-r--r--externals/vanilla/openpanel-help.pd92
-rw-r--r--externals/vanilla/pipe-help.pd265
-rw-r--r--externals/vanilla/print-help.pd174
-rw-r--r--externals/vanilla/qlist-help.pd202
-rw-r--r--externals/vanilla/random-help.pd592
-rw-r--r--externals/vanilla/realtime-help.pd175
-rw-r--r--externals/vanilla/rsqrt~-help.pd105
-rw-r--r--externals/vanilla/savepanel-help.pd82
-rw-r--r--externals/vanilla/sqrt~-help.pd107
-rw-r--r--externals/vanilla/textfile-help.pd165
-rw-r--r--externals/vanilla/timer-help.pd176
-rw-r--r--externals/vanilla/toggle-help.pd651
-rw-r--r--externals/vanilla/vslider-help.pd726
-rw-r--r--externals/vanilla/vu-help.pd571
-rw-r--r--externals/vanilla/wrap~-help.pd92
-rw-r--r--externals/vanilla/x_all_guis.pd20
28 files changed, 2411 insertions, 6195 deletions
diff --git a/externals/vanilla/bng-help.pd b/externals/vanilla/bng-help.pd
index d4602e9e..d48d560a 100644
--- a/externals/vanilla/bng-help.pd
+++ b/externals/vanilla/bng-help.pd
@@ -1,444 +1,265 @@
-#N canvas 0 0 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 bng 3 12 0 18 -204280
--1 0;
-#X obj 0 300 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 42 244 494 344 META 0;
-#X text 12 115 LIBRARY internal;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 135 AUTHOR Thomas Musil;
-#X text 12 155 WEBSITE;
-#X text 12 195 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
-to conform to the PDDP template for Pd version 0.42.;
-#X text 12 45 DESCRIPTION gui-bang;
-#X text 12 65 INLET_0 anything size flashtime init send receive label
-label_pos label_font color pos delta;
-#X text 12 95 OUTLET_0 bang;
-#X text 12 5 KEYWORDS control nonlocal GUI bang_op;
-#X text 12 175 RELEASE_DATE 2009;
-#X restore 500 597 pd META;
-#X obj 0 408 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 445 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 547 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X obj 78 309 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#N canvas 28 461 428 129 Related_objects 0;
-#X obj 22 43 bang;
-#X obj 69 43 trigger;
-#X obj 145 43 until;
-#X obj 201 43 bang~;
-#X msg 257 43;
-#X obj 20 93 x_all_guis bng tgl vsl hsl hradio vradio vu cnv nbx;
-#X text 18 69 All iem-gui objects:;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 2 [bng] Related Objects;
-#X restore 101 597 pd Related_objects;
-#X text 98 417 bang;
-#X obj 78 417 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 98 308 anything;
-#X obj 495 3 bng 15 250 50 0 foo5_rcv empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 465 20 pddp/pddplink http://wiki.puredata.info/en/bng -text
-pdpedia: bng;
-#X obj 144 227 print;
-#N canvas 598 330 187 198 once 0;
-#X msg 38 77 1;
-#X obj 38 51 t b b;
-#X obj 68 133 sel 0;
-#X obj 68 107 f 0;
+#N canvas 11 201 538 357 10;
+#X obj 1 1 cnv 8 100 60 empty empty bng 20 20 1 18 -262144 -1109 0
+;
+#X text 10 288 (c) musil@iem.kug.ac.at;
+#X text 52 301 IEM KUG;
+#X text 118 61 click properties to;
+#X text 106 72 modify geometry \, colors \, etc.;
+#X obj 64 257 print;
+#N canvas 598 330 290 225 once 0;
+#X msg 38 73 1;
+#X obj 38 47 t b b;
+#X obj 68 124 sel 0;
+#X obj 68 103 f 0;
#X obj 38 24 inlet;
-#X obj 68 163 outlet;
+#X obj 68 154 outlet;
#X connect 0 0 3 1;
#X connect 1 0 0 0;
#X connect 1 1 3 0;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X connect 4 0 1 0;
-#X restore 144 203 pd once;
-#X obj 116 228 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
--1 -1;
-#X obj 75 110 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+#X restore 64 234 pd once;
+#X obj 36 258 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
-1;
-#X obj 116 148 bng 50 950 50 1 foo5_snd foo5_rcv big-bang 57 25 0 12
--262131 -260818 -143491;
-#X msg 116 49 33;
-#X msg 157 49 -3.14;
-#X msg 180 97 11 22 33.33;
-#X msg 170 73 open xxx;
-#X msg 187 121 funny;
-#X obj 292 72 s foo5_rcv;
-#X obj 292 102 r foo5_snd;
-#X obj 292 53 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+#X obj 3 130 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
-1;
-#X obj 292 126 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
+#X obj 36 173 bng 50 950 50 1 foo5_snd foo5_rcv big-bang 63 2 192 12
+-262131 -260818 -143491;
+#X msg 36 53 33;
+#X msg 50 75 -3.14;
+#X msg 73 117 11 22 33.33;
+#X msg 63 95 open xxx;
+#X msg 96 142 funny;
+#X text 101 11 gui-bang:;
+#X obj 202 135 s foo5_rcv;
+#X obj 202 155 r foo5_snd;
+#X obj 202 115 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
-1 -1;
-#X msg 75 49 0;
-#X text 321 142 and receive names. Right-;
-#X text 321 157 click and choose;
-#N canvas 85 201 428 309 bng_creation_arguments 0;
-#X text 12 28 "bng" can be called with 14 creation arguments. These
-are not "optional" - all parameters must be filled or the gui-bng will
-not instantiate correctly.;
-#X text 12 132 For example \, click the msg-box to dynamically create
-a bng:;
-#X text 12 80 bng creation arguments: Size Hold Interrupt Init sendName
-receiveName Label labelXOff labelYOff Font# fontSize bgColor foregroundColor
-lblColor;
-#X obj 13 196 s pd-bng_creation_arguments;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 2 [bng] Creation Arguments and Dynamic Patching;
-#X msg 13 154 obj 180 240 bng 30 500 50 0 send receive Atlas -2 40
-0 12 9 2 18;
-#X connect 6 0 3 0;
-#X restore 100 519 pd bng_creation_arguments;
-#X text 320 173 "Properties" to set them \,;
-#X text 320 126 [bng] has settable send;
-#X text 110 250 Use the UP- \, DOWN- \, LEFT- or RIGHT-key to move
-a selected gui-object. Right-click and choose "Properties" to modify
-its appearance.;
-#X text 321 187 or change them with messages;
-#X text 321 201 (see the subpatch below);
-#N canvas 48 5 428 610 Changing_GUI_Properties 0;
-#X text 239 33 no init;
-#X text 270 159 label position;
-#X text 167 451 delta;
-#X text 11 294 font properties;
-#X text 151 159 label;
-#X text 15 451 position;
-#X msg 13 103 size \$1;
-#X msg 104 104 flashtime \$1 \$2;
-#X msg 239 54 init 0;
-#X msg 249 104 init 1;
-#X msg 321 54 send foo5a_snd;
-#X msg 151 180 label new-label;
-#X msg 272 231 label_pos \$1 \$2;
-#X msg 13 366 label_font \$1 \$2;
-#X msg 16 558 pos \$1 \$2;
-#X msg 168 558 delta \$1 \$2;
-#X text 171 294 preset-colors;
-#X text 297 294 RGB-colors;
-#X msg 171 401 color \$1 \$2 \$3;
-#X msg 329 104 send bng-snd;
-#X obj 13 127 s bng_rcv;
-#X obj 104 128 s bng_rcv;
-#X obj 239 129 s bng_rcv;
-#X obj 321 129 s bng_rcv;
-#X obj 13 255 s bng_rcv;
-#X obj 23 230 s bng1a_rcv;
-#X obj 151 256 s bng_rcv;
-#X obj 272 256 s bng_rcv;
-#X obj 13 391 s bng_rcv;
-#X obj 171 426 s bng_rcv;
-#X obj 168 583 s bng_rcv;
-#X obj 16 583 s bng_rcv;
-#X msg 23 206 receive bng_rcv;
-#X msg 13 180 receive bng1a_rcv;
-#X msg 163 231 label myBang;
-#N canvas 375 166 160 287 init 0;
-#X obj 16 11 loadbang;
-#X obj 16 42 f \$0;
-#X msg 16 72 \; \$1-interrupt 50 \; \$1-hold 250 \; \$1-xpos 340 \;
-\$1-ypos 500 \; \$1-xlabel 17 \; \$1-ylabel 7 \; \$1-dim 15 \; \$1-font
-0 \; \$1-font-size 10 \; \$1-bg 0 \; \$1-front 12 \; \$1-label 12;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X restore 320 583 pd init;
-#X text 320 33 change send name;
-#X text 13 159 change receive name;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-interrupt empty
-0 -8 0 12 -262144 -1 -1 50 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-hold empty 0
--8 0 12 -262144 -1 -1 250 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 104 54 pd flash-time;
-#X text 101 33 flash-time;
-#X text 12 32 dimensions;
-#N canvas 364 205 306 317 flash-time 0;
-#X obj 69 196 t b a;
-#X obj 33 262 outlet;
-#X obj 33 237 pack 0 0 0;
-#X obj 120 197 t b a;
-#X obj 103 104 nbx 3 14 0 29 0 0 \$0-dummy \$0-bg empty 0 -8 0 12 -262144
--1 -1 0 256;
-#X obj 103 124 nbx 3 14 0 29 0 0 \$0-dummy \$0-front empty 0 -8 0 12
--262144 -1 -1 12 256;
-#X obj 103 144 nbx 3 14 0 29 0 0 \$0-dummy \$0-label empty 0 -8 0 12
--262144 -1 -1 12 256;
-#X connect 0 0 2 0;
-#X connect 0 1 2 1;
-#X connect 2 0 1 0;
-#X connect 3 0 2 0;
-#X connect 3 1 2 2;
-#X connect 4 0 2 0;
-#X connect 5 0 0 0;
-#X connect 6 0 3 0;
-#X coords 0 -1 1 1 48 62 2 100 100;
-#X restore 171 316 pd flash-time;
-#N canvas 0 0 306 317 flash-time 0;
-#X obj 96 521 outlet;
-#X obj 162 230 t b f;
-#X obj 96 268 +;
-#X obj 96 293 t b f;
-#X obj 96 324 +;
-#X obj 19 208 * -65536;
-#X obj 96 208 * -256;
-#X obj 162 208 * -1;
-#X obj 96 355 - 1;
-#X obj 96 385 list prepend 0;
-#X obj 96 410 route 0 1 2;
-#X obj 96 497 pack 0 0 0;
-#X obj 115 456 t b a;
-#X obj 168 455 t b a;
-#X obj 104 124 vradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144
--1 -1 0;
-#X text 120 120 1.bg;
-#X text 120 137 2.front;
-#X text 120 153 3.label;
-#X obj 103 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-r empty 0 -8 0 10 -262144
--258113 -1 0 256;
-#X obj 133 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-g empty 0 -8 0 10 -262144
--13381 -1 0 256;
-#X obj 163 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-b empty 0 -8 0 10 -262144
--4160 -1 0 256;
-#X connect 1 0 2 0;
-#X connect 1 1 2 1;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 3 1 4 1;
-#X connect 4 0 8 0;
-#X connect 5 0 4 0;
-#X connect 6 0 2 0;
-#X connect 7 0 1 0;
-#X connect 8 0 9 0;
-#X connect 9 0 10 0;
-#X connect 10 0 11 0;
-#X connect 10 1 12 0;
-#X connect 10 2 13 0;
-#X connect 11 0 0 0;
-#X connect 12 0 11 0;
-#X connect 12 1 11 1;
-#X connect 13 0 11 0;
-#X connect 13 1 11 2;
-#X connect 14 0 9 1;
-#X connect 18 0 5 0;
-#X connect 19 0 6 0;
-#X connect 20 0 7 0;
-#X coords 0 -1 1 1 102 74 2 100 100;
-#X restore 298 316 pd flash-time;
-#X text 248 72 init on;
-#X text 248 85 loadbang;
-#X obj 168 534 list;
-#X obj 168 473 bng 20 250 50 0 empty empty empty 17 7 0 10 -262144
+#X obj 202 175 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
-1 -1;
-#X obj 310 466 cnv 15 102 102 empty empty empty 20 12 0 14 -1 -66577
-0;
-#X obj 311 467 cnv 15 100 100 empty empty empty 20 12 0 14 -261682
--66577 0;
-#X obj 340 500 bng 15 250 50 1 bng-snd bng_rcv myBang 17 7 0 10 -262144
--33289 -33289;
-#X text 62 318 1.font(0-2);
-#X text 62 339 2.height;
-#X text 220 318 1.bg;
-#X text 220 338 2.front;
-#X text 220 359 3.label;
-#X text 64 472 1.x-position;
-#X text 64 494 2.y-position;
-#X text 247 472 1.x-delta;
-#X text 247 494 2.y-delta;
-#X obj 13 53 nbx 3 14 8 200 0 0 empty \$0-dim empty 0 -8 0 12 -262144
--1 -1 15 256;
-#X text 58 51 size;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-xlabel empty
-0 -8 0 12 -262144 -1 -1 17 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-ylabel empty
-0 -8 0 12 -262144 -1 -1 7 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 272 181 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 0 2 0 0 \$0-dummy \$0-font empty 0 -8 0 12
--262144 -1 -1 0 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-font-size empty
-0 -8 0 12 -262144 -1 -1 10 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 13 316 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-xpos empty 0
--8 0 12 -262144 -1 -1 340 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-ypos empty 0
--8 0 12 -262144 -1 -1 500 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 16 473 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -20 20 0 0 \$0-dummy \$0-xdelta empty 0 -8
-0 12 -262144 -1 -1 0 256;
-#X obj 103 124 nbx 3 14 -20 20 0 0 \$0-dummy \$0-ydelta empty 0 -8
-0 12 -262144 -1 -1 0 256;
-#X connect 0 0 2 0;
+#X msg 4 53 0;
+#X text 125 205 UP- \, DOWN- \, LEFT- or RIGHT-key;
+#X text 124 216 for moving selected gui-objects;
+#N canvas 425 170 699 530 edit 0;
+#X obj 39 197 f;
+#X msg 17 176 bang;
+#X floatatom 55 175 3 63 88;
+#X floatatom 90 197 3 0 37;
+#X obj 39 220 pack 0 0;
+#X text 117 197 y-label;
+#X text 83 175 x-label;
+#X floatatom 259 143 3 8 75;
+#X text 286 143 size;
+#X obj 279 236 f;
+#X msg 257 215 bang;
+#X floatatom 295 214 3 -10 10;
+#X floatatom 330 236 3 -10 10;
+#X obj 279 259 pack 0 0;
+#X obj 304 348 f;
+#X msg 282 327 bang;
+#X floatatom 320 326 3 20 90;
+#X floatatom 355 348 3 150 200;
+#X obj 304 371 pack 0 0;
+#X text 323 214 x-delta;
+#X text 357 236 y-delta;
+#X text 348 326 x-position;
+#X text 382 348 y-position;
+#X obj 59 312 f;
+#X msg 37 291 bang;
+#X floatatom 75 290 3 0 2;
+#X floatatom 110 312 3 4 36;
+#X obj 59 335 pack 0 0;
+#X text 103 290 font;
+#X text 139 312 height;
+#X msg 36 399 \; foo5_rcv label blabla;
+#X msg 59 360 \; foo5_rcv label_font \$1 \$2;
+#X msg 39 245 \; foo5_rcv label_pos \$1 \$2;
+#X msg 47 135 \; foo5_rcv color \$1 \$2 \$3;
+#X msg 259 172 \; foo5_rcv size \$1;
+#X msg 279 284 \; foo5_rcv delta \$1 \$2;
+#X msg 304 396 \; foo5_rcv pos \$1 \$2;
+#X msg 483 133 \; foo5_rcv receive foo5a_rcv;
+#X msg 482 171 \; foo5a_rcv receive foo5_rcv;
+#X msg 483 50 \; foo5_rcv send foo5a_snd;
+#X msg 483 88 \; foo5_rcv send foo5_snd;
+#X text 526 349 no init;
+#X msg 505 368 \; foo5_rcv init 0;
+#X msg 512 435 \; foo5_rcv init 1;
+#X obj 493 260 f;
+#X msg 471 239 bang;
+#X floatatom 509 238 4 10 100;
+#X floatatom 544 261 5 100 3000;
+#X obj 493 283 pack 0 0;
+#X msg 493 308 \; foo5_rcv flashtime \$1 \$2;
+#X text 548 237 interrupt-time;
+#X text 585 262 hold-time;
+#X msg 36 435 \; foo5_rcv label big-bang;
+#X text 502 417 init bang on loadbang;
+#X text 519 221 flash-time:;
+#X obj 47 114 pack 0 0 0;
+#X obj 47 86 f;
+#X msg 24 38 bang;
+#X floatatom 63 36 3 0 29;
+#X floatatom 79 56 3 0 29;
+#X floatatom 112 72 3 0 29;
+#X text 91 36 background;
+#X text 106 56 front-color;
+#X text 140 73 label-color;
+#X msg 285 35 back;
+#X msg 285 55 front;
+#X msg 285 75 label;
+#X msg 247 35 bang;
+#N canvas 15 207 606 448 RGB_____________ 0;
+#X obj 97 56 inlet;
+#X obj 262 53 inlet;
+#X obj 339 55 inlet;
+#X obj 405 56 inlet;
+#X obj 97 270 bang;
+#X msg 77 295 0;
+#X msg 104 295 1;
+#X obj 146 268 bang;
+#X msg 132 295 0;
+#X msg 160 295 1;
+#X obj 196 269 bang;
+#X msg 187 295 0;
+#X msg 214 295 1;
+#X obj 265 313 spigot;
+#X obj 312 313 spigot;
+#X obj 359 313 spigot;
+#X obj 249 385 outlet;
+#X text 93 33 select;
+#X text 267 28 red;
+#X text 337 30 green;
+#X text 409 30 blue;
+#X obj 405 102 t b f;
+#X obj 339 160 +;
+#X obj 339 185 t b f;
+#X obj 339 216 +;
+#X obj 296 385 outlet;
+#X obj 343 385 outlet;
+#X obj 28 180 loadbang;
+#X obj 97 135 route back front label bang;
+#X obj 343 362 f;
+#X obj 296 361 f;
+#X obj 249 361 f;
+#X obj 262 79 * -65536;
+#X obj 339 80 * -256;
+#X obj 405 80 * -1;
+#X obj 339 247 - 1;
+#X obj 235 168 t b b b b;
+#X connect 0 0 28 0;
+#X connect 1 0 32 0;
+#X connect 2 0 33 0;
+#X connect 3 0 34 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 14 1;
+#X connect 5 0 15 1;
+#X connect 6 0 13 1;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 13 1;
+#X connect 8 0 15 1;
+#X connect 9 0 14 1;
+#X connect 10 0 11 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 1;
+#X connect 11 0 14 1;
+#X connect 12 0 15 1;
+#X connect 13 0 31 1;
+#X connect 14 0 30 1;
+#X connect 15 0 29 1;
+#X connect 21 0 22 0;
+#X connect 21 1 22 1;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 23 1 24 1;
+#X connect 24 0 35 0;
+#X connect 27 0 6 0;
+#X connect 28 0 4 0;
+#X connect 28 1 7 0;
+#X connect 28 2 10 0;
+#X connect 28 3 36 0;
+#X connect 29 0 26 0;
+#X connect 30 0 25 0;
+#X connect 31 0 16 0;
+#X connect 32 0 24 0;
+#X connect 33 0 22 0;
+#X connect 34 0 21 0;
+#X connect 35 0 15 0;
+#X connect 35 0 14 0;
+#X connect 35 0 13 0;
+#X connect 36 0 31 0;
+#X connect 36 1 30 0;
+#X connect 36 2 29 0;
+#X connect 36 3 35 0;
+#X restore 285 96 pd RGB_____________;
+#X floatatom 327 65 3 0 255;
+#X floatatom 370 65 3 0 255;
+#X floatatom 413 66 3 0 255;
+#X text 34 10 preset-colors;
+#X text 296 7 RGB-colors;
+#X text 327 47 red;
+#X text 363 46 green;
+#X text 411 46 blue;
+#X connect 0 0 4 0;
#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 197 473 pd flash-time;
-#X text 321 203 2.y-offset;
-#X text 321 182 1.x-offset;
-#X text 153 56 1.interrupt;
-#X text 153 76 2.hold;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 6 2 [bng] Changing Properties through Messages;
-#X connect 6 0 20 0;
-#X connect 7 0 21 0;
-#X connect 8 0 22 0;
-#X connect 9 0 22 0;
-#X connect 10 0 23 0;
-#X connect 11 0 26 0;
-#X connect 12 0 27 0;
-#X connect 13 0 28 0;
-#X connect 14 0 31 0;
-#X connect 15 0 30 0;
-#X connect 18 0 29 0;
-#X connect 19 0 23 0;
-#X connect 32 0 25 0;
-#X connect 33 0 24 0;
-#X connect 34 0 26 0;
-#X connect 38 0 7 0;
-#X connect 41 0 18 0;
-#X connect 42 0 18 0;
-#X connect 45 0 15 0;
-#X connect 46 0 45 0;
-#X connect 59 0 6 0;
-#X connect 61 0 12 0;
-#X connect 62 0 13 0;
-#X connect 63 0 14 0;
-#X connect 64 0 45 1;
-#X restore 101 380 pd Changing_GUI_Properties;
-#X text 168 463 - creating a [bng] without any arguments will set default
-values for all gui-properties. See the subpatch below to learn how
-to dynamically instantiate a [bng] object with custom properties:;
-#X text 11 23 gui-bang;
-#N canvas 43 24 428 573 bng_properties 0;
-#X text 22 53 1 Size;
-#X obj 104 60 bng 8 250 50 0 empty empty 8 10 4 0 8 -262144 -1 -1;
-#X obj 129 53 bng 15 250 50 0 empty empty 15 17 9 0 8 -262144 -1 -1
-;
-#X obj 164 43 bng 25 250 50 0 empty empty 25 27 20 0 8 -262144 -1 -1
-;
-#X text 51 75 Default size is 15 pixels. The minimum size is 8 and
-it does not have a maximum size.;
-#X text 23 258 3 Hold;
-#X obj 93 258 bng 15 50 10 0 empty empty 50 17 8 0 8 -262144 -1 -1
-;
-#X obj 128 258 bng 15 750 50 0 empty empty 750 17 8 0 8 -262144 -1
--1;
-#X text 23 341 4 Receive Symbol/Send Symbol;
-#X text 49 356 This object can act as its own send or receive object.
-;
-#X obj 41 391 bng 15 250 50 0 link_this_bang empty This_one_sends_a_bang
-17 8 0 10 -262144 -1 -1;
-#X obj 41 412 bng 15 250 50 0 empty link_this_bang This_one_receives_it.
-17 8 0 10 -262144 -1 -1;
-#X text 232 370 Here is the alternative method.;
-#X text 26 447 5 GUI Options;
-#X text 49 469 The other properties are 'name' \, 'x/y offset' \, 'font
-size' \, and colours (for the background \, front \, and labels [name])
-;
-#X text 48 275 The default hold is 250 milliseconds. The hold value
-controls the length of time that the bng object stays "lit". Note that
-bng sends its message immediately regardless of the hold value.;
-#X obj 233 436 s linked_bngs;
-#X obj 338 389 r linked_bngs;
-#X text 22 105 2 Interrupt (milliseconds);
-#X text 48 119 If the bng object is "lit" and holding (see "hold" below)
-\, then receives another message before the hold time has passed \,
-the bng will quickly flash again for the duration you set in this interrupt
-property.;
-#X obj 24 203 bng 15 1000 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 47 187 This bng will hold for 1000 milliseconds \, but interrupt
-for 50 milliseconds if it gets a second message during its "hold".
-Click it once...wait. Then click it multiple times rather quickly to
-see the effect.;
-#X obj 233 413 bang;
-#X obj 338 413 bang;
-#X msg 233 389 send a message;
-#X text 18 510 This document was updated for Pd version 0.35 test 24
-by Dave Sabine as part of a project called pddp proposed by Krzysztof
-Czaja to build comprehensive documentation for Pd.;
-#X obj 338 439 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 2 [bng] Properties;
-#X connect 17 0 23 0;
-#X connect 22 0 16 0;
-#X connect 23 0 26 0;
-#X connect 24 0 22 0;
-#X restore 101 556 pd bng_properties;
-#X text 80 463 14;
-#X text 215 551 (c) musil@iem.kug.ac.at;
-#X text 257 564 IEM KUG;
-#X text 232 576 graz \, austria 2002;
-#X text 168 418 - [bng] only outputs a bang message.;
-#X text 168 308 - [bng] outputs a bang message in response to any message
-that has not been defined to affect gui-properties (see below).;
-#X text 98 346 See the following subpatch for messages that change
-the gui-properties of [bng]:;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
+#X connect 2 0 0 1;
+#X connect 3 0 4 1;
+#X connect 4 0 32 0;
+#X connect 7 0 34 0;
+#X connect 9 0 13 0;
+#X connect 10 0 9 0;
+#X connect 11 0 9 1;
+#X connect 12 0 13 1;
+#X connect 13 0 35 0;
+#X connect 14 0 18 0;
#X connect 15 0 14 0;
-#X connect 17 0 18 0;
+#X connect 16 0 14 1;
+#X connect 17 0 18 1;
+#X connect 18 0 36 0;
+#X connect 23 0 27 0;
+#X connect 24 0 23 0;
+#X connect 25 0 23 1;
+#X connect 26 0 27 1;
+#X connect 27 0 31 0;
+#X connect 44 0 48 0;
+#X connect 45 0 44 0;
+#X connect 46 0 44 1;
+#X connect 47 0 48 1;
+#X connect 48 0 49 0;
+#X connect 55 0 33 0;
+#X connect 56 0 55 0;
+#X connect 57 0 56 0;
+#X connect 58 0 56 1;
+#X connect 59 0 55 1;
+#X connect 60 0 55 2;
+#X connect 64 0 68 0;
+#X connect 65 0 68 0;
+#X connect 66 0 68 0;
+#X connect 67 0 68 0;
+#X connect 68 0 55 0;
+#X connect 68 1 55 1;
+#X connect 68 2 55 2;
+#X connect 69 0 68 1;
+#X connect 70 0 68 2;
+#X connect 71 0 68 3;
+#X restore 297 144 pd edit;
+#X obj 248 34 bng 15 250 50 0 aaa aaa empty 20 8 192 8 -262144 -1 -1
+;
+#X text 185 312 updated for Pd version 0.35;
+#X text 27 313 graz \, austria 2002;
+#X obj 180 11 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 7 0;
+#X connect 9 0 6 0;
+#X connect 10 0 9 0;
+#X connect 11 0 9 0;
+#X connect 12 0 9 0;
+#X connect 13 0 9 0;
+#X connect 14 0 9 0;
+#X connect 17 0 19 0;
#X connect 18 0 16 0;
-#X connect 18 0 15 0;
-#X connect 19 0 18 0;
-#X connect 20 0 18 0;
-#X connect 21 0 18 0;
-#X connect 22 0 18 0;
-#X connect 23 0 18 0;
-#X connect 25 0 27 0;
-#X connect 26 0 24 0;
-#X connect 28 0 18 0;
+#X connect 20 0 9 0;
diff --git a/externals/vanilla/clip~-help.pd b/externals/vanilla/clip~-help.pd
index d1b01d45..61c222fa 100644
--- a/externals/vanilla/clip~-help.pd
+++ b/externals/vanilla/clip~-help.pd
@@ -1,91 +1,30 @@
-#N canvas 0 0 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 clip~ 3 12 0 18
--204280 -1 0;
-#X obj 0 357 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 53 245 494 344 META 0;
-#X text 12 145 LIBRARY internal;
-#X text 12 185 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 165 AUTHOR Miller Puckette;
-#X text 12 225 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 filter;
-#X text 12 45 DESCRIPTION restrict a signal to lie between two limits
-;
-#X text 12 125 OUTLET_0 signal;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 INLET_1 float;
-#X text 12 105 INLET_2 float;
-#X text 12 205 RELEASE_DATE 2009;
-#X restore 500 597 pd META;
-#X obj 0 449 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 486 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 566 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X obj 78 366 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#N canvas 69 480 428 108 Related_objects 0;
-#X obj 23 36 min~;
-#X obj 70 36 max~;
-#X obj 118 36 clip;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 1 [clip~] Related Objects;
-#X restore 101 597 pd Related_objects;
-#X text 98 365 signal;
-#X obj 78 458 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 98 458 signal;
-#X obj 486 3 clip~;
-#X obj 460 20 pddp/pddplink http://wiki.puredata.info/en/clip~ -text
-pdpedia: clip~;
-#X obj 41 177 clip~ -0.5 0.5;
-#X obj 41 117 osc~ 1000;
-#X obj 57 226 metro 500;
-#X text 209 149 inlets to reset clip range;
-#X floatatom 101 149 4 0 0 0 - - -;
-#X floatatom 162 150 4 0 0 0 - - -;
-#X text 176 177 creation arguments initialize clip range;
-#X text 183 250 <- graph the output;
-#X obj 78 396 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
--162280 0;
-#X text 98 395 float;
-#X obj 78 421 cnv 17 3 17 empty \$0-pddp.cnv.let.2 2 5 9 0 16 -228856
--162280 0;
-#X text 98 420 float;
-#X obj 57 203 loadbang;
-#N canvas 0 0 450 300 (subpatch) 0;
-#X array \$0-array 100 float 0;
-#X coords 0 1 100 -1 200 100 1 0 0;
-#X restore 343 238 graph;
-#X text 11 23 restrict a signal to lie between two limits;
-#X text 168 365 - an incoming signal at the left inlet will be clipped
-to lie between the two limits.;
-#X text 168 458 - outputs the clipped signal.;
-#X text 168 505 - (optional) initial minimum value beyond which to
-clip the signal.;
-#X text 168 535 - (optional) initial maximum value beyond which to
-clip the signal.;
-#X text 80 505 1) float;
-#X text 80 535 2) float;
-#X text 81 67 The [clip~] object passes its signal input to its output
+#N canvas 182 132 778 399 12;
+#X obj 75 164 clip~ -0.5 0.5;
+#X obj 75 104 osc~ 1000;
+#X graph graph1 0 1 100 -1 78 280 278 380;
+#X array array99 100 float 0;
+#X pop;
+#X obj 91 213 metro 500;
+#X obj 91 188 r metro;
+#X text 239 235 <-- graph the output;
+#X obj 75 237 tabwrite~ array99;
+#X msg 519 69 \; metro 0;
+#X msg 515 12 \; pd dsp 1 \; metro 1;
+#X text 604 26 <-- Click to start;
+#X text 589 73 <-- Click to stop;
+#X obj 42 19 clip~;
+#X text 88 18 - restrict a signal to lie between two limits;
+#X text 243 136 inlets to reset clip range;
+#X floatatom 135 136 4 0 0;
+#X floatatom 196 137 4 0 0;
+#X text 210 164 creation arguments initialize clip range;
+#X text 4 55 The clip~ object passes its signal input to its output
\, clipping it to lie between two limits.;
-#X text 168 395 - minimum value below which the incoming signal is
-clipped.;
-#X text 168 420 - maximum value above which the incoming signal is
-clipped.;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X obj 455 51 pddp/dsp-reminder;
-#X obj 41 250 tabwrite~ \$0-array;
-#X connect 14 0 40 0;
-#X connect 15 0 14 0;
-#X connect 16 0 40 0;
-#X connect 18 0 14 1;
-#X connect 19 0 14 2;
-#X connect 26 0 16 0;
+#X text 470 371 updated for Pd version 0.33;
+#X connect 0 0 6 0;
+#X connect 1 0 0 0;
+#X connect 3 0 6 0;
+#X connect 4 0 3 0;
+#X connect 4 0 3 0;
+#X connect 14 0 0 1;
+#X connect 15 0 0 2;
diff --git a/externals/vanilla/cputime-help.pd b/externals/vanilla/cputime-help.pd
index c1395fca..c0a0f43a 100644
--- a/externals/vanilla/cputime-help.pd
+++ b/externals/vanilla/cputime-help.pd
@@ -1,167 +1,15 @@
-#N canvas 0 0 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 cputime 3 12 0 18
--204280 -1 0;
-#X obj 0 359 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 52 242 494 360 META 0;
-#X text 12 125 LIBRARY internal;
-#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 145 AUTHOR Miller Puckette;
-#X text 12 205 HELP_PATCH_AUTHORS This help patch was updated for Pd
-version 0.35 test 28 by Dave Sabine as part of a project called pddp
-proposed by Krzysztof Czaja to build comprehensive documentation for
-Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
-for Pd version 0.42.;
-#X text 12 5 KEYWORDS control time;
-#X text 12 45 DESCRIPTION measure CPU time;
-#X text 12 65 INLET_0 bang;
-#X text 12 85 INLET_1 bang;
-#X text 12 105 OUTLET_0 float;
-#X text 12 185 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 433 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 476 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 504 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X obj 78 368 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 98 480 (none);
-#X text 98 442 float;
-#N canvas 48 338 428 252 Related_objects 0;
-#X obj 125 35 metro;
-#X obj 62 35 realtime;
-#X obj 14 36 timer;
-#X obj 173 35 delay;
-#X text 11 170 The best places to find information about Pd's libraries
-is:;
-#X text 8 192 www.puredata.org and click on "Downloads" then "Software"
-;
-#X text 10 207 or;
-#X text 10 222 iem.kug.ac.at/pdb/;
-#X text 12 121 This object is only offered in Pd only if you have downloaded
-and properly installed the appropriate library. These objects may or
-may not exist in a single library.;
-#X text 11 71 Externals;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 1 [cputime] Related Objects;
-#X obj 11 91 pddp/helplink iemlib/t3_timer;
-#X restore 102 597 pd Related_objects;
-#X obj 471 3 cputime;
-#X obj 445 20 pddp/pddplink http://wiki.puredata.info/en/cputime -text
-pdpedia: cputime;
-#X msg 122 156 bang;
-#X msg 83 134 bang;
-#X floatatom 83 200 0 0 0 0 - - -;
-#X text 155 202 Output is in milliseconds;
-#X text 118 134 Click here to start or reset;
-#X text 78 57 The [cputime] object measures elapsed CPU time. CPU time
-is the amount of time your computer's CPU requires to perform a task
--- that's a short definition.;
-#X obj 83 178 cputime;
-#X text 160 157 Click here to get elapsed CPU time. Click again...and
-again...to see periodic measurements from the start or reset time.
-Be patient.;
-#X obj 78 400 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
--162280 0;
-#X text 98 399 bang;
-#X text 168 442 - the elapsed time in milliseconds arrives at the outlet
-when the right inlet receives a bang.;
-#X text 80 264 NOTE: Unlike most other objects in Pd \, the right inlet
-of [cputime] is the hot one (i.e. \, a bang to it triggers the output).
-;
-#N canvas 70 46 428 538 Time_Measurements 0;
-#X obj 30 395 time_measurements;
-#X obj 30 291 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 30 437 0 0 0 0 - - -;
-#X floatatom 116 436 0 0 0 0 - - -;
-#X floatatom 183 436 0 0 0 0 - - -;
-#X text 27 208 In the example below \, I've created an abstraction
-which will force each of Pd's stop-watches \, [timer] [cputime] and
-[realtime] to measure various processes and report the elapsed time.
-Click on each [bng] to begin the process and wait for the results.
-Notice the discrepancies in the results.;
-#X text 28 455 Logical Time;
-#X text 181 455 Real Time;
-#X text 115 455 CPU Time;
-#X obj 45 327 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 50 285 1 Measures elapsed time between two "bangs" from a [trigger]
-object.;
-#X text 65 319 2 Measures the amount of time Pd requires to turn on
-DSP and start an oscillator.;
-#X obj 89 359 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 27 487 This document was updated for Pd version 0.35 test 28
-by Dave Sabine as part of a project called pddp proposed by Krzysztof
-Czaja to build comprehensive documentation for Pd.;
-#X text 110 351 3 Measures the amount of time Pd requires count to
-three...please wait for approximately 3 seconds.;
-#X text 27 35 [cputime] works like essentially like a stop-watch. Once
-it starts \, you can continue to "poll" [cputime] to view the elapsed
-time.;
-#X text 27 82 The odd aspect about comparing [cputime] to a stop-watch
-is that a stop-watch can be stopped! [cputime] can only be started
-or reset. It cannot be stopped.;
-#X text 26 132 As stated above \, [cputime] measures "CPU" time. This
-value may be slightly different than "logical" time or "real" time.
-PD offers two objects which measure "logical" time and "real" time.
-See the reference documents for those objects for more information.
-;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 1 [cputime] Time Measurements;
-#X connect 0 0 2 0;
-#X connect 0 1 3 0;
-#X connect 0 2 4 0;
-#X connect 1 0 0 0;
-#X connect 9 0 0 1;
-#X connect 12 0 0 2;
-#X restore 102 537 pd Time_Measurements;
-#N canvas 70 77 428 430 Time_Objects 0;
-#X text 21 37 In a fantasy world \, computers could exist somehow beyond
-the restrictions of time and digital computation could be performed
-in ZERO time. However \, that is not the case. Instead \, every process
-within Pd and within your operating system requires at least a few
-nanoseconds of your CPU's time.;
-#X text 22 122 The [timer] object is like a clock that is not constrained
-to the regular laws of physics and the universal space-time continuum.
-It reports "time" measurements as only Pd can see them!;
-#X text 23 181 The [cputime] object is like a clock that measures how
-much time your CPU actually required to carry out your request. Keep
-in mind however that your CPU is busy doing many things simoultaneously
-\, so even though a process might take 5 minutes to complete \, your
-CPU does not pay full attention to that process for the entire 5 minutes.
-Instead \, it simply begins the process \, then refers back to that
-process from time to time until the it is complete. In other cases
-\, your CPU might require a full 5 minutes while Pd might report that
-merely a few milliseconds have passed. This type of discrepancy depends
-heavily on your computer's hardware and the type of processing it is
-performing.;
-#X text 24 350 The [realtime] object is as much like your own wrist
-watch as Pd can possibly manage. It measures time according to your
-operating system's internal clock.;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 1 [cputime] Why the Discrepencies Between Clocks?;
-#X restore 102 512 pd Time_Objects;
-#X text 101 561 A patch using [cputime] can be found in the Pure Documentation
-reference folder 7.stuff/tools/load-meter.pd;
-#X obj 78 442 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 11 23 measure CPU time;
-#X text 98 367 bang;
-#X text 168 367 - an initial bang to the left inlet starts the timer.
-Subsequent bangs reset the timer.;
-#X text 168 399 - a bang to the right inlet causes the elapsed time
-to be output (in milliseconds).;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X connect 13 0 19 1;
-#X connect 14 0 19 0;
-#X connect 19 0 15 0;
+#N canvas 302 232 550 286 12;
+#X msg 74 144 bang;
+#X msg 30 115 bang;
+#X floatatom 30 206 0 0 0;
+#X text 71 113 Click here to reset;
+#X text 27 232 Output is in milliseconds;
+#X obj 30 175 cputime;
+#X text 124 144 Click here to get elapsed CPU time;
+#X text 6 51 The cputime object measures elapsed CPU time \, as measured by your operating system. This appears to work on NT \, IRIX \, and Linux \, but not on W98.;
+#X obj 66 15 cputime;
+#X text 123 16 - measure CPU usage;
+#X text 297 261 updated for Pd version 0.33;
+#X connect 0 0 5 1;
+#X connect 1 0 5 0;
+#X connect 5 0 2 0;
diff --git a/externals/vanilla/delay-help.pd b/externals/vanilla/delay-help.pd
index 30588dc5..5f90cd4b 100644
--- a/externals/vanilla/delay-help.pd
+++ b/externals/vanilla/delay-help.pd
@@ -1,186 +1,30 @@
-#N canvas 0 0 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 delay 3 12 0 18
--204280 -1 0;
-#X obj 0 200 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 39 180 494 386 META 0;
-#X text 12 145 LIBRARY internal;
-#X text 12 185 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 45 LICENSE SIBSD;
-#X text 12 165 AUTHOR Miller Puckette;
-#X text 12 225 HELP_PATCH_AUTHORS This help patch was updated for Pd
-version 0.35 test 28 by Dave Sabine as part of a project called pddp
-proposed by Krzysztof Czaja to build comprehensive documentation for
-Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
-for Pd version 0.42.;
-#X text 12 65 DESCRIPTION bang after time delay;
-#X text 12 5 ALIAS del;
-#X text 12 85 INLET_0 float bang stop;
-#X text 12 105 INLET_1 float;
-#X text 12 125 OUTLET_0 bang;
-#X text 12 25 KEYWORDS control time bang_op;
-#X text 12 205 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 393 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 446 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 488 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#N canvas 97 299 428 291 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 42 37 timer;
-#X obj 8 37 pipe;
-#X obj 80 37 metro;
-#X obj 119 37 makenote;
-#X obj 179 87 delwrite~;
-#X text 4 208 The best places to find information about Pd's libraries
-is:;
-#X text 4 230 www.puredata.org and click on "Downloads" then "Software"
-;
-#X text 4 251 iem.kug.ac.at/pdb/;
-#X text 5 112 Externals;
-#X text 5 159 Externals are offered in Pd only if you have downloaded
-and properly installed the appropriate library. These objects may or
-may not exist in a single library.;
-#X text 7 62 Audio Objects;
-#X obj 10 87 vd~;
-#X obj 47 87 delread~;
-#X obj 113 87 delwrite~;
-#X text 7 1 [delay] Related Objects;
-#X text 5 133 [nop~];
-#X text 46 133 [z~];
-#X text 73 133 [t3_delay];
-#X text 137 133 [idelay~];
-#X text 194 133 [delay~];
-#X restore 101 597 pd Related_objects;
-#X obj 78 209 cnv 17 3 145 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 402 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 360 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
--162280 0;
-#X text 98 359 float;
-#X obj 451 3 delay;
-#X text 491 3 or;
-#X obj 517 2 del;
-#X obj 455 20 pddp/pddplink http://wiki.puredata.info/en/delay -text
-pdpedia: delay;
-#X obj 100 102 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 100 150 delay 2000;
-#X obj 100 173 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 98 253 bang;
-#X text 98 313 stop;
-#X text 168 359 - a float to the right inlet sets the delay time (in
-milliseconds).;
-#X text 98 336 list;
-#X text 98 401 bang;
-#X msg 168 101 stop;
-#X msg 122 101 500;
-#X floatatom 157 128 0 0 0 0 - - -;
-#X text 188 129 <- scroll to change delay time in milliseconds;
-#X text 168 401 - [delay] only outputs a bang. It cannot be used like
-an "echo" or to delay messages other than bang. For that purpose \,
-you should explore [pipe].;
-#N canvas 106 287 428 250 A_delay_based_metronome 0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 19 55 Let's assume for a moment that Miller had forgotten to
-build the [metro] object. (I know that sounds absurd \, but for the
-sake of example...);
-#X text 19 104 [delay] could be used to create a metronome as follows.
-;
-#X obj 58 197 bng 15 50 10 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 58 175 delay 1000;
-#X msg 22 135 bang;
-#X msg 58 135 stop;
-#X obj 260 176 metro 1000;
-#X obj 260 197 bng 15 50 10 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 260 157 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X floatatom 317 155 5 0 0 0 - - -;
-#X floatatom 115 154 5 0 0 0 - - -;
-#X text 152 175 is the same as;
-#X text 19 36 A makeshift [metro];
-#X text 7 1 [delay] A Metronome Built with [delay];
-#X connect 3 0 5 0;
-#X connect 4 0 3 0;
-#X connect 5 0 4 0;
-#X connect 6 0 4 0;
-#X connect 7 0 8 0;
-#X connect 9 0 7 0;
-#X connect 10 0 7 1;
-#X connect 11 0 4 1;
-#X restore 101 550 pd A_delay_based_metronome;
-#N canvas 103 173 428 389 Random_Impulse_Generator 0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 21 35 Some users might be familiar with SC (SuperCollider)
-by James McCartney. For more info about SC \, visit www.audiosynth.com.
-Anyways...SC has a unit generator called "DUST". Dust will produce
-random impulses at a specified "density". I believe that Dust was given
-its name because it creates a sound that is similar to actual dust
-on old vinyl LP's -- you know that old crackling sound like Rice Krispies.
-;
-#X text 20 143 The idea is quite simple. If you want a "very dusty"
-sound \, you make the density quite high...if you want a "slightly
-dusty" sound \, you make the density quite low.;
-#X obj 22 299 delay;
-#X obj 22 321 bng 15 50 10 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 22 235 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X text 20 188 Dust.ar(2) in SC will produce 2 dusty impulses randomly
-per second. In the example below \, you'll see a version of this process
-created using Pd's delay object.;
-#X obj 22 278 random 500;
-#X obj 22 257 metro 500;
-#X floatatom 92 236 5 0 0 0 - - -;
-#X text 20 343 Also note that this example merely approximates the
-output of SC's "Dust" object.;
-#X text 130 236 low numbers produce a very "dusty" output.;
-#X text 130 248 high numbers produce a slightly "dusty" output.;
-#X text 7 1 [delay] A Random Impulse Generator using [delay];
-#X connect 3 0 4 0;
-#X connect 5 0 8 0;
-#X connect 7 0 3 0;
-#X connect 8 0 7 0;
-#X connect 9 0 8 1;
-#X connect 9 0 7 1;
-#X restore 101 572 pd Random_Impulse_Generator;
-#X text 168 313 - causes [delay] to cancel its scheduled output.;
-#X text 168 336 - a list of floats will be truncated to the first element.
-;
-#X text 80 465 1) float;
-#X text 97 54 The [delay] object sends a bang to its outlet after a
-delay (in milliseconds) \, specified by its right inlet or its creation
-argument.;
-#X text 168 253 - a bang to the left inlet will output a bang after
-the prescribed time (set either at the right inlet creation argument).
-In the above example \, you should notice a delay of 2 seconds \, then
-a bang at the outlet.;
-#X text 168 208 - if a float is sent to the left inlet \, [delay] will
-set the delay time equal to that number (milliseconds) and schedule
-the outgoing bang.;
-#X text 98 492 [delay] accepts only ONE bang at a time. It cannot process
-multiple delays. In other words \, sending a "bang" to a [delay] which
-is already set will reschedule its output \, cancelling the old one.
-;
-#X text 168 465 - (optional) initial delay time (in milliseconds).
-;
-#X text 98 208 float;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X obj 298 550 pddp/pddplink ../2.control.examples/07.time.pd;
-#X text 11 23 bang after time delay;
-#X connect 16 0 17 0;
-#X connect 17 0 18 0;
-#X connect 24 0 17 0;
-#X connect 25 0 17 0;
-#X connect 26 0 17 1;
+#N canvas 3 0 513 348 12;
+#X obj 66 15 delay;
+#X obj 13 229 50;
+#X msg 13 98 bang;
+#X floatatom 13 255;
+#X floatatom 116 182;
+#X obj 51 230 0;
+#X text 111 16 - CALLBACK AFTER TIME DELAY;
+#X text 130 205 <-- creation argument initializes delay time;
+#X text 6 41 The delay object sends a bang to its outlet after a delay in milliseconds specified by its right inlet or its creation argument.;
+#X obj 51 204 delay 1000;
+#X text 58 86 Click here to test the delay object by initializing the number box below to 50 and then clearing it after the specified delay.;
+#X text 94 132 Click here to CANCEL delay's action;
+#X msg 51 133 stop;
+#X text 43 324 see also:;
+#X obj 155 323 timer;
+#X obj 111 323 metro;
+#X msg 62 155 2000;
+#X text 102 154 Number in right inlet sets time and schedules the action.;
+#X text 316 320 updated for Pd version 0.3;
+#X text 145 183 <-- scroll to change delay time in milliseconds;
+#X text 14 280 Note: sending a bang to a delay which is already set will reschedule its output \, cancelling the old one.;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X connect 2 0 9 0;
+#X connect 4 0 9 1;
+#X connect 5 0 3 0;
+#X connect 9 0 5 0;
+#X connect 12 0 9 0;
+#X connect 16 0 9 0;
diff --git a/externals/vanilla/hslider-help.pd b/externals/vanilla/hslider-help.pd
index 2ed25f53..80bd83a5 100644
--- a/externals/vanilla/hslider-help.pd
+++ b/externals/vanilla/hslider-help.pd
@@ -1,67 +1,25 @@
-#N canvas 0 0 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 hslider 3 12 0 18
--204280 -1 0;
-#X obj 0 291 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 51 246 494 344 META 0;
-#X text 12 135 LIBRARY internal;
-#X text 12 45 LICENSE SIBSD;
-#X text 12 155 AUTHOR Thomas Musil;
-#X text 12 175 WEBSITE;
-#X text 12 215 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
-to conform to the PDDP template for Pd version 0.42.;
-#X text 12 25 KEYWORDS control storage GUI nonlocal;
-#X text 12 65 DESCRIPTION horizontal gui-slider;
-#X text 12 5 ALIAS hsl;
-#X text 12 85 INLET_0 float bang size range log init steady receive
-send label label_pos label_font color pos delta;
-#X text 12 115 OUTLET_0 float;
-#X text 12 195 RELEASE_DATE 2002;
-#X restore 500 597 pd META;
-#X obj 0 410 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 461 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 546 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X obj 78 300 cnv 17 3 105 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#N canvas 90 479 428 112 Related_objects 0;
-#X obj 19 52 x_all_guis bng tgl vsl hsl hradio vradio vu cnv nbx;
-#X text 17 28 All iem-gui objects:;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 1 [hslider] Related Objects;
-#X restore 100 597 pd Related_objects;
-#X obj 78 419 cnv 17 3 35 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 291 175 and receive names. Right-;
-#X text 291 190 click and choose;
-#X text 290 206 "Properties" to set them \,;
-#X text 98 299 float;
-#X text 98 340 list;
-#X text 98 419 float;
-#X text 291 220 or change them with messages (see below);
-#X text 430 3 abbreviation: [hsl];
-#X obj 414 45 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
--1 -1 0 1;
-#X obj 465 20 pddp/pddplink http://wiki.puredata.info/en/hsl -text
-pdpedia: hsl;
-#X floatatom 135 116 4 0 0 0 - - -;
-#X msg 199 69 set \$1;
-#X floatatom 155 48 4 0 0 0 - - -;
-#X obj 135 138 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
--1 -1;
-#X obj 135 49 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+#N canvas 243 228 551 413 10;
+#X obj 1 1 cnv 8 100 60 empty empty hslider=hsl 20 20 1 18 -262144
+-1109 0;
+#X floatatom 38 127 9 0 0;
+#X msg 47 84 set \$1;
+#X floatatom 38 41 7 0 0;
+#X text 13 355 (c) musil@iem.kug.ac.at;
+#X text 55 368 IEM KUG;
+#X obj 38 149 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
-1;
-#X obj 138 94 hsl 101 15 25 75 0 1 foo1_snd foo1_rcv empty 8 -8 0 10
--225280 -1109 -1 3900 1;
-#X floatatom 199 48 4 0 0 0 - - -;
-#X floatatom 292 141 4 0 0 0 - - -;
-#X floatatom 292 48 4 0 0 0 - - -;
-#X obj 179 140 print;
+#X obj 18 41 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X obj 41 107 hsl 101 15 25 75 0 1 foo1_snd foo1_rcv empty 8 -8 192
+10 -225280 -1109 -1 6200 1;
+#X text 174 11 gui-horicontal-slider:;
+#X floatatom 47 62 7 0 0;
+#X floatatom 116 150 9 0 0;
+#X obj 110 308 r goo2_snd;
+#X obj 145 248 s goo2_rcv;
+#X floatatom 105 40 7 0 0;
+#X floatatom 145 206 7 0 0;
+#X obj 60 170 print;
#N canvas 276 200 290 224 once 0;
#X obj 38 47 t b b f;
#X msg 56 85 1;
@@ -78,363 +36,268 @@ pdpedia: hsl;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 0 0;
-#X restore 179 116 pd once;
-#X obj 59 177 hsl 73 15 55 3520 1 1 goo2_snd goo2_rcv log.freq. 8 7
-0 10 -204800 -260818 -90133 1618 1;
-#X obj 56 203 ftom;
-#X floatatom 56 227 4 0 0 0 - - -;
-#X floatatom 143 215 9 0 0 0 - - -;
-#X floatatom 56 132 4 0 0 0 - - -;
-#X obj 56 153 mtof;
-#X obj 292 92 s foo1_rcv;
-#X obj 292 117 r foo1_snd;
-#X msg 292 68 set \$1;
-#X text 139 193 (0.01 pixels);
-#X text 142 163 shift-click & drag;
-#X text 142 178 for fine-tuning;
-#X text 54 248 Use the UP- \, DOWN- \, LEFT- or RIGHT-key to move a
-selected gui-object. Right-click and choose "Properties" to modify
-its appearance.;
-#X text 290 159 hslider has settable send;
-#X text 98 356 Special messages can be sent to [hslider] to change
-its properties:;
-#X text 168 419 - when the slider value is changed by clicking \, dragging
-\, or sending a float to the inlet \, the new slider value is sent
-to the outlet.;
-#N canvas 94 219 428 370 hsl-creation-arguments 0;
-#X obj 22 289 s pd-hsl-creation-arguments;
-#X text 20 37 "hsl" can be called with 18 creation arguments. These
-are not "optional" - all parameters must be filled or the gui-bng will
-not instantiate correctly.;
-#X text 21 225 For example \, click the msg-box to dynamically create
-a hsl:;
-#X text 20 84 hsl creation arguments: xSize ySize rangeBtm rangeTop
-Logarithmic Init sendName receiveName Label labelXOff labelYOff Font#
-fontSize bgColor foregroundColor lblColor sliderPosition steadyOnClick
-;
-#X text 21 142 note: sliderPosition is not the same as the initialization
-value. To dynamically instantiate an hsl that initializes with a desired
-value \, save an hsl in a patch and view it in a text editor to get
-the right value for sliderPosition. Or \, refer to hslider_set in g_hslider.c
-for conversion between sliderPosition and slider value.;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 1 [hslider] Creation Arguments and Dynamic Patching;
-#X msg 22 247 obj 150 335 hsl 75 20 -1 1 0 1 send receive Celaeno 12
--9 0 12 7 13 21 4400 0;
-#X connect 7 0 0 0;
-#X restore 170 521 pd hsl-creation-arguments;
-#N canvas 66 11 463 602 Setting_slider_properties_through_messages
-0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X floatatom 11 188 1 0 1 0 - #0-soc -;
-#X text 323 34 no init;
-#X text 8 169 steady-on-click;
-#X text 339 169 label;
-#X msg 339 191 label blabla;
-#X msg 323 53 init 0;
-#X msg 11 221 steady \$1;
-#X msg 234 73 lin;
-#X msg 244 105 log;
-#X text 230 34 linear/;
-#X text 230 49 logarithmical;
-#X text 332 73 init value;
-#X text 333 88 on loadbang;
-#X text 231 169 change send name;
-#X text 106 169 change receive name;
-#X obj 120 244 s z_rcv;
-#X msg 108 191 receive z_rcv;
-#X msg 347 243 label mySlider;
-#X obj 234 134 s hsl_rcv;
-#X obj 323 134 s hsl_rcv;
-#X obj 11 269 s hsl_rcv;
-#X obj 233 269 s hsl_rcv;
-#X obj 108 269 s hsl_rcv;
-#X msg 120 221 receive hsl_rcv;
-#X msg 233 192 send hsl1_snd;
-#X msg 242 221 send hsl_snd;
-#X obj 339 271 s hsl_rcv;
-#N canvas 382 136 161 310 init 0;
-#X obj 16 11 loadbang;
-#X obj 16 42 f \$0;
-#X msg 16 73 \; \$1-xpos 300 \; \$1-ypos 350 \; \$1-xlabel -2 \; \$1-ylabel
--8 \; \$1-soc 1 \; \$1-font-size 10 \; \$1-width 128 \; \$1-height
-15 \; \$1-bottom 0 \; \$1-top 127 \; \$1-bg 0 \; \$1-front 12 \; \$1-label
-12;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X restore 384 415 pd init;
-#X msg 333 109 init 1;
-#X msg 11 105 size \$1 \$2;
-#X text 60 56 1.width;
-#X text 60 77 2.height;
-#X obj 11 134 s hsl_rcv;
-#X obj 123 134 s hsl_rcv;
-#X text 172 56 1.bottom;
-#X text 172 77 2.top;
-#X text 120 34 output-range;
-#X msg 123 105 range \$1 \$2;
-#X text 136 307 font properties;
-#X msg 138 379 label_font \$1 \$2;
-#X text 187 329 1.font(0-2);
-#X text 187 350 2.height;
-#X text 9 308 label position;
-#X msg 11 380 label_pos \$1 \$2;
-#X text 60 330 1.x-offset;
-#X text 60 351 2.y-offset;
-#X obj 11 405 s hsl_rcv;
-#X obj 138 404 s hsl_rcv;
-#X obj 273 325 cnv 15 157 82 empty empty empty 20 12 0 14 -1 -66577
-0;
-#X obj 274 326 cnv 15 155 80 empty empty empty 20 12 0 14 -261682 -66577
-0;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-width empty
-0 -8 0 12 -262144 -1 -1 128 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-height empty
-0 -8 0 12 -262144 -1 -1 15 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 11 55 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-bottom empty
-0 -8 0 12 -262144 -1 -1 0 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-top empty 0
--8 0 12 -262144 -1 -1 127 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 123 55 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-xlabel empty
-0 -8 0 12 -262144 -1 -1 -2 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-ylabel empty
-0 -8 0 12 -262144 -1 -1 -8 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 11 329 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 0 2 0 0 \$0-dummy \$0-font empty 0 -8 0 12
--262144 -1 -1 0 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-font-size empty
-0 -8 0 12 -262144 -1 -1 10 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 138 328 pd flash-time;
-#X text 8 448 preset-colors;
-#X text 104 448 RGB-colors;
-#X msg 11 554 color \$1 \$2 \$3;
-#N canvas 364 205 306 317 flash-time 0;
-#X obj 69 196 t b a;
-#X obj 33 262 outlet;
-#X obj 33 237 pack 0 0 0;
-#X obj 120 197 t b a;
-#X obj 103 104 nbx 3 14 0 29 0 0 \$0-dummy \$0-bg empty 0 -8 0 12 -262144
--1 -1 0 256;
-#X obj 103 124 nbx 3 14 0 29 0 0 \$0-dummy \$0-front empty 0 -8 0 12
--262144 -1 -1 12 256;
-#X obj 103 144 nbx 3 14 0 29 0 0 \$0-dummy \$0-label empty 0 -8 0 12
--262144 -1 -1 12 256;
-#X connect 0 0 2 0;
-#X connect 0 1 2 1;
-#X connect 2 0 1 0;
-#X connect 3 0 2 0;
-#X connect 3 1 2 2;
-#X connect 4 0 2 0;
-#X connect 5 0 0 0;
-#X connect 6 0 3 0;
-#X coords 0 -1 1 1 48 62 2 100 100;
-#X restore 11 469 pd flash-time;
-#N canvas 0 0 306 317 flash-time 0;
-#X obj 96 521 outlet;
-#X obj 162 230 t b f;
-#X obj 96 268 +;
-#X obj 96 293 t b f;
-#X obj 96 324 +;
-#X obj 19 208 * -65536;
-#X obj 96 208 * -256;
-#X obj 162 208 * -1;
-#X obj 96 355 - 1;
-#X obj 96 385 list prepend 0;
-#X obj 96 410 route 0 1 2;
-#X obj 96 497 pack 0 0 0;
-#X obj 115 456 t b a;
-#X obj 168 455 t b a;
-#X obj 104 124 vradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144
--1 -1 0;
-#X text 120 120 1.bg;
-#X text 120 137 2.front;
-#X text 120 153 3.label;
-#X obj 103 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-r empty 0 -8 0 10 -262144
--258113 -1 0 256;
-#X obj 133 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-g empty 0 -8 0 10 -262144
--13381 -1 0 256;
-#X obj 163 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-b empty 0 -8 0 10 -262144
--4160 -1 0 256;
-#X connect 1 0 2 0;
-#X connect 1 1 2 1;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 3 1 4 1;
-#X connect 4 0 8 0;
-#X connect 5 0 4 0;
-#X connect 6 0 2 0;
-#X connect 7 0 1 0;
-#X connect 8 0 9 0;
-#X connect 9 0 10 0;
+#X restore 60 147 pd once;
+#X obj 40 265 hsl 73 15 55 3520 1 1 goo2_snd goo2_rcv log.freq. 8 -8
+192 10 -42246 -260818 -90133 1600 1;
+#X obj 37 308 ftom;
+#X floatatom 37 330 9 0 0;
+#X floatatom 64 287 9 0 0;
+#X floatatom 110 329 9 0 0;
+#X text 175 176 click properties to;
+#X floatatom 37 203 8 0 0;
+#X obj 37 226 mtof;
+#X text 12 184 --------------------;
+#X text 163 187 modify geometry \, colors \, etc.;
+#X obj 105 82 s foo1_rcv;
+#X obj 116 130 r foo1_snd;
+#X msg 105 61 set \$1;
+#X msg 145 227 set \$1;
+#X text 197 120 (0.01 pixels);
+#X text 183 99 shift-click & drag;
+#X text 189 109 for fine-tuning;
+#X text 148 270 UP- \, DOWN- \, LEFT- or RIGHT-key;
+#X text 147 281 for moving selected gui-objects;
+#N canvas 207 113 716 530 edit 0;
+#X obj 32 220 f;
+#X msg 10 199 bang;
+#X floatatom 48 198 3 63 88;
+#X floatatom 83 220 3 0 37;
+#X obj 32 243 pack 0 0;
+#X text 110 220 y-label;
+#X text 76 198 x-label;
+#X obj 279 246 f;
+#X msg 257 225 bang;
+#X floatatom 295 224 3 -10 10;
+#X floatatom 330 246 3 -10 10;
+#X obj 279 269 pack 0 0;
+#X obj 292 358 f;
+#X msg 270 337 bang;
+#X floatatom 308 336 3 20 60;
+#X floatatom 343 358 3 150 200;
+#X obj 292 381 pack 0 0;
+#X text 323 224 x-delta;
+#X text 357 246 y-delta;
+#X text 336 336 x-position;
+#X text 370 358 y-position;
+#X obj 52 335 f;
+#X msg 30 314 bang;
+#X floatatom 68 313 3 0 2;
+#X floatatom 103 335 3 4 36;
+#X obj 52 358 pack 0 0;
+#X text 96 313 font;
+#X text 132 335 height;
+#X floatatom 476 188 1 0 1;
+#X text 523 401 no init;
+#X text 493 453 init value on loadbang;
+#X msg 47 154 \; goo2_rcv color \$1 \$2 \$3;
+#X msg 32 268 \; goo2_rcv label_pos \$1 \$2;
+#X msg 52 383 \; goo2_rcv label_font \$1 \$2;
+#X msg 34 427 \; goo2_rcv label blabla;
+#X msg 292 406 \; goo2_rcv pos \$1 \$2;
+#X msg 279 294 \; goo2_rcv delta \$1 \$2;
+#X msg 475 21 \; goo2_rcv send goo2a_snd;
+#X msg 475 59 \; goo2_rcv send goo2_snd;
+#X msg 476 105 \; goo2_rcv receive goo2a_rcv;
+#X msg 476 143 \; goo2a_rcv receive goo2_rcv;
+#X msg 502 420 \; goo2_rcv init 0;
+#X msg 503 471 \; goo2_rcv init 1;
+#X text 520 188 steady;
+#X obj 486 291 f;
+#X msg 464 270 bang;
+#X floatatom 502 269 3 55 440;
+#X floatatom 537 291 6 440 3520;
+#X obj 486 314 pack 0 0;
+#X text 530 269 left-range-bound;
+#X text 586 291 right-range-bound;
+#X msg 486 339 \; goo2_rcv range \$1 \$2;
+#X msg 363 465 \; goo2_rcv log;
+#X msg 269 466 \; goo2_rcv lin;
+#X text 269 448 linear / logarithmical;
+#X obj 275 133 f;
+#X msg 250 112 bang;
+#X floatatom 291 111 3 15 73;
+#X floatatom 326 133 3 8 50;
+#X obj 275 156 pack 0 0;
+#X text 319 111 width;
+#X text 357 134 height;
+#X msg 275 181 \; goo2_rcv size \$1 \$2;
+#X msg 34 463 \; goo2_rcv label log.freq.;
+#X msg 476 212 \; goo2_rcv steady \$1;
+#X obj 47 100 pack 0 0 0;
+#X obj 47 72 f;
+#X msg 24 24 bang;
+#X floatatom 63 22 3 0 29;
+#X floatatom 79 42 3 0 29;
+#X floatatom 112 58 3 0 29;
+#X text 91 22 background;
+#X text 106 42 front-color;
+#X text 140 59 label-color;
+#X msg 277 22 back;
+#X msg 277 42 front;
+#X msg 277 62 label;
+#X msg 239 22 bang;
+#N canvas 15 207 606 448 RGB_____________ 0;
+#X obj 97 56 inlet;
+#X obj 262 53 inlet;
+#X obj 339 55 inlet;
+#X obj 405 56 inlet;
+#X obj 97 270 bang;
+#X msg 77 295 0;
+#X msg 104 295 1;
+#X obj 146 268 bang;
+#X msg 132 295 0;
+#X msg 160 295 1;
+#X obj 196 269 bang;
+#X msg 187 295 0;
+#X msg 214 295 1;
+#X obj 265 313 spigot;
+#X obj 312 313 spigot;
+#X obj 359 313 spigot;
+#X obj 249 385 outlet;
+#X text 93 33 select;
+#X text 267 28 red;
+#X text 337 30 green;
+#X text 409 30 blue;
+#X obj 405 102 t b f;
+#X obj 339 160 +;
+#X obj 339 185 t b f;
+#X obj 339 216 +;
+#X obj 296 385 outlet;
+#X obj 343 385 outlet;
+#X obj 28 180 loadbang;
+#X obj 97 135 route back front label bang;
+#X obj 343 362 f;
+#X obj 296 361 f;
+#X obj 249 361 f;
+#X obj 262 79 * -65536;
+#X obj 339 80 * -256;
+#X obj 405 80 * -1;
+#X obj 339 247 - 1;
+#X obj 235 168 t b b b b;
+#X connect 0 0 28 0;
+#X connect 1 0 32 0;
+#X connect 2 0 33 0;
+#X connect 3 0 34 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 14 1;
+#X connect 5 0 15 1;
+#X connect 6 0 13 1;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 13 1;
+#X connect 8 0 15 1;
+#X connect 9 0 14 1;
#X connect 10 0 11 0;
-#X connect 10 1 12 0;
-#X connect 10 2 13 0;
-#X connect 11 0 0 0;
-#X connect 12 0 11 0;
-#X connect 12 1 11 1;
-#X connect 13 0 11 0;
-#X connect 13 1 11 2;
-#X connect 14 0 9 1;
-#X connect 18 0 5 0;
-#X connect 19 0 6 0;
-#X connect 20 0 7 0;
-#X coords 0 -1 1 1 102 74 2 100 100;
-#X restore 108 469 pd flash-time;
-#X text 60 471 1.bg;
-#X text 60 491 2.front;
-#X text 60 512 3.label;
-#X text 317 448 delta;
-#X text 217 448 position;
-#X msg 218 540 pos \$1 \$2;
-#X msg 318 540 delta \$1 \$2;
-#X obj 318 517 list;
-#X obj 318 470 bng 20 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X text 397 469 1.x-delta;
-#X text 397 491 2.y-delta;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-xpos empty 0
--8 0 12 -262144 -1 -1 300 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-ypos empty 0
--8 0 12 -262144 -1 -1 350 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 218 470 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -20 20 0 0 \$0-dummy \$0-xdelta empty 0 -8
-0 12 -262144 -1 -1 0 256;
-#X obj 103 124 nbx 3 14 -20 20 0 0 \$0-dummy \$0-ydelta empty 0 -8
-0 12 -262144 -1 -1 0 256;
-#X connect 0 0 2 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 1;
+#X connect 11 0 14 1;
+#X connect 12 0 15 1;
+#X connect 13 0 31 1;
+#X connect 14 0 30 1;
+#X connect 15 0 29 1;
+#X connect 21 0 22 0;
+#X connect 21 1 22 1;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 23 1 24 1;
+#X connect 24 0 35 0;
+#X connect 27 0 6 0;
+#X connect 28 0 4 0;
+#X connect 28 1 7 0;
+#X connect 28 2 10 0;
+#X connect 28 3 36 0;
+#X connect 29 0 26 0;
+#X connect 30 0 25 0;
+#X connect 31 0 16 0;
+#X connect 32 0 24 0;
+#X connect 33 0 22 0;
+#X connect 34 0 21 0;
+#X connect 35 0 15 0;
+#X connect 35 0 14 0;
+#X connect 35 0 13 0;
+#X connect 36 0 31 0;
+#X connect 36 1 30 0;
+#X connect 36 2 29 0;
+#X connect 36 3 35 0;
+#X restore 277 82 pd RGB_____________;
+#X floatatom 319 52 3 0 255;
+#X floatatom 362 52 3 0 255;
+#X floatatom 405 53 3 0 255;
+#X text 34 -1 preset-colors;
+#X text 290 1 RGB-colors;
+#X text 319 34 red;
+#X text 355 33 green;
+#X text 403 33 blue;
+#X connect 0 0 4 0;
#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 347 470 pd flash-time;
-#X floatatom 329 384 5 0 0 0 - - -;
-#X obj 11 579 s hsl_rcv;
-#X obj 318 565 s hsl_rcv;
-#X obj 218 565 s hsl_rcv;
-#X text 10 35 dimensions;
-#X text 7 1 [hslider] Set Properties through Messages;
-#X text 266 469 1.x-pos;
-#X text 266 491 2.y-pos;
-#X obj 289 356 hsl 128 15 0 127 0 0 hsl-snd hsl-rcv mySlider -2 -8
-0 10 -262144 -1 -1 0 1;
-#X connect 1 0 7 0;
-#X connect 5 0 27 0;
-#X connect 6 0 20 0;
-#X connect 7 0 21 0;
-#X connect 8 0 19 0;
-#X connect 9 0 19 0;
-#X connect 17 0 23 0;
-#X connect 18 0 27 0;
-#X connect 24 0 16 0;
-#X connect 25 0 22 0;
-#X connect 26 0 22 0;
-#X connect 29 0 20 0;
-#X connect 30 0 33 0;
-#X connect 38 0 34 0;
-#X connect 40 0 48 0;
-#X connect 44 0 47 0;
-#X connect 51 0 30 0;
-#X connect 52 0 38 0;
-#X connect 53 0 44 0;
-#X connect 54 0 40 0;
-#X connect 57 0 74 0;
-#X connect 58 0 57 0;
-#X connect 59 0 57 0;
-#X connect 65 0 76 0;
-#X connect 66 0 75 0;
-#X connect 67 0 66 0;
-#X connect 68 0 67 0;
-#X connect 71 0 65 0;
-#X connect 72 0 67 1;
-#X connect 81 0 73 0;
-#X restore 101 388 pd Setting_slider_properties_through_messages;
-#X text 11 21 horizontal gui-slider;
-#X text 98 466 18;
-#X text 168 466 - creating an [hslider] object without arguments sets
-default values for its gui-properties. See the subpatch below to learn
-how to dynamically instantiate a [bng] object with custom properties:
-;
-#X text 215 551 (c) musil@iem.kug.ac.at;
-#X text 257 564 IEM KUG;
-#X text 232 576 graz \, austria 2002;
-#X text 168 299 - a float updates the slider value and is sent to the
-outlet.;
-#X text 168 340 - a list is truncated to the first element.;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X text 98 323 bang;
-#X text 168 323 - output the current slider value.;
-#X connect 20 0 23 0;
+#X connect 2 0 0 1;
+#X connect 3 0 4 1;
+#X connect 4 0 32 0;
+#X connect 7 0 11 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 1;
+#X connect 10 0 11 1;
+#X connect 11 0 36 0;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 1;
+#X connect 15 0 16 1;
+#X connect 16 0 35 0;
#X connect 21 0 25 0;
-#X connect 22 0 25 0;
+#X connect 22 0 21 0;
+#X connect 23 0 21 1;
+#X connect 24 0 25 1;
+#X connect 25 0 33 0;
+#X connect 28 0 64 0;
+#X connect 44 0 48 0;
+#X connect 45 0 44 0;
+#X connect 46 0 44 1;
+#X connect 47 0 48 1;
+#X connect 48 0 51 0;
+#X connect 55 0 59 0;
+#X connect 56 0 55 0;
+#X connect 57 0 55 1;
+#X connect 58 0 59 1;
+#X connect 59 0 62 0;
+#X connect 65 0 31 0;
+#X connect 66 0 65 0;
+#X connect 67 0 66 0;
+#X connect 68 0 66 1;
+#X connect 69 0 65 1;
+#X connect 70 0 65 2;
+#X connect 74 0 78 0;
+#X connect 75 0 78 0;
+#X connect 76 0 78 0;
+#X connect 77 0 78 0;
+#X connect 78 0 65 0;
+#X connect 78 1 65 1;
+#X connect 78 2 65 2;
+#X connect 79 0 78 1;
+#X connect 80 0 78 2;
+#X connect 81 0 78 3;
+#X restore 314 245 pd edit;
+#X obj 221 61 hsl 128 15 0 127 0 0 ddd ddd empty 20 8 192 8 -262144
+-1 -1 10600 1;
+#X text 187 379 updated for Pd version 0.35;
+#X text 30 380 graz \, austria 2002;
+#X obj 168 34 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X connect 1 0 6 0;
+#X connect 2 0 8 0;
+#X connect 3 0 8 0;
+#X connect 7 0 8 0;
+#X connect 8 0 1 0;
+#X connect 8 0 17 0;
+#X connect 10 0 2 0;
+#X connect 12 0 22 0;
+#X connect 14 0 30 0;
+#X connect 15 0 31 0;
+#X connect 17 0 16 0;
+#X connect 18 0 21 0;
+#X connect 18 0 19 0;
+#X connect 19 0 20 0;
#X connect 24 0 25 0;
-#X connect 25 0 20 0;
-#X connect 25 0 30 0;
-#X connect 26 0 21 0;
-#X connect 28 0 39 0;
-#X connect 30 0 29 0;
-#X connect 31 0 34 0;
-#X connect 31 0 32 0;
-#X connect 32 0 33 0;
-#X connect 35 0 36 0;
-#X connect 36 0 31 0;
-#X connect 38 0 27 0;
-#X connect 39 0 37 0;
+#X connect 25 0 18 0;
+#X connect 29 0 11 0;
+#X connect 30 0 28 0;
+#X connect 31 0 13 0;
diff --git a/externals/vanilla/key-help.pd b/externals/vanilla/key-help.pd
index af3e67d5..1ab0337c 100644
--- a/externals/vanilla/key-help.pd
+++ b/externals/vanilla/key-help.pd
@@ -1,131 +1,24 @@
-#N canvas 0 0 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 key 3 12 0 18 -204280
--1 0;
-#X obj 0 257 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 51 242 494 344 META 0;
-#X text 12 85 LIBRARY internal;
-#X text 12 125 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 105 AUTHOR Miller Puckette;
-#X text 12 165 HELP_PATCH_AUTHORS Dave Sabine \, July 11 \, 2003 Jonathan
-Wilkes revised the patch to conform to the PDDP template for Pd version
-0.42.;
-#X text 12 45 DESCRIPTION get input from the keyboard;
-#X text 12 65 OUTLET_0 float;
-#X text 12 5 KEYWORDS control user_input;
-#X text 12 145 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 285 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 445 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 473 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X text 98 449 (none);
-#N canvas 92 446 428 145 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 21 42 keyup;
-#X obj 61 42 keyname;
-#X text 19 72 Externals and other object libraries;
-#X text 7 1 [key] Related Objects;
-#X obj 18 94 pddp/helplink Gem/gemkeyboard;
-#X obj 18 114 pddp/helplink Gem/gemkeyname;
-#X restore 102 598 pd Related_objects;
-#X text 98 293 float;
-#X obj 78 294 cnv 17 3 140 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 489 3 key;
-#X obj 465 20 pddp/pddplink http://wiki.puredata.info/en/key -text
-pdpedia: key;
-#X text 98 261 (none);
-#X text 98 411 Also note that key combinations \, such as SHIFT+7 produce
-a different result than SHIFT or 7 alone.;
-#X text 168 346 Some keys \, such as SHIFT or the F1-F12 series all
-produce a zero \, but we can see by the [bng] that the event is not
-ignored completely...but the numeric "ID" of the key is not captured
-successfully. (This may produce different results on different systems.)
-;
-#X text 168 293 - the number received at the outlet represents the
-numeric "ID" of a key on the computer's keyboard. This event occurs
-when the key is pressed down. Only one event is captured at a time.
-;
-#X obj 103 137 key;
-#X obj 83 174 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 103 174 5 0 0 0 - - -;
-#X text 132 137 Type something on the keyboard to send input to Pd
-;
-#X text 100 95 [key] reports the (system dependent) numbers of "printing"
-keys of the keyboard.;
-#X text 99 477 Caveat - this only works if Pd actually gets the key
+#N canvas 146 45 546 288 12;
+#X obj 21 10 key;
+#X obj 54 9 keyup;
+#X obj 105 9 keyname;
+#X text 173 8 -- grab keyboard;
+#X obj 38 67 key;
+#X floatatom 38 95 3 0 0 0 - - -;
+#X floatatom 77 93 3 0 0 0 - - -;
+#X obj 77 67 keyup;
+#X floatatom 128 93 3 0 0 0 - - -;
+#X obj 128 67 keyname;
+#X symbolatom 172 94 10 0 0 0 - - -;
+#X text 280 262 updated for Pd version 0.32.;
+#X text 26 133 Key and keyup report the (system dependent) numbers
+of "printing" keys of the keyboard. Keyname gives the symbolic name
+of the key \, with a 1 or 0 if it's up or down \, and works with non-printing
+keys like shift or "F1".;
+#X text 18 200 Caveat -- this only works if Pd actually gets the key
events which can depend on the stacking order of windows and/or the
-pointer location. This is dependent on the system.;
-#N canvas 105 161 428 356 reacting_to_user_input 0;
-#X text 19 37 Most \, if not all \, programming environments provide
-us with tools to capture 'user initiated' events from the operating
-system. Keyboard input \, mouse clicks \, and mouse movements are the
-most common events in this 'user event' category.;
-#X text 19 103 Pd's [key] \, [keyup] \, and [keyname] are complimented
-by the externals such as [gemmouse] and [nimouse] to provide us with
-a full range of tools to gleen a user's activities at the computer.
-;
-#X text 33 240 onKeyUp;
-#X text 33 221 onKeyDown;
-#X text 33 259 onKeyPress;
-#X text 20 290 hmmm...wouldn't it be great if Pd also gave us onChange
-\, onBlur \, onFocus \, onClick \, onDblClick \, onDragDrop \, onLoad
-\, onMouseDown \, onMouseOver \, onMouseOut \, onMouseMove \, onUnload...?
-;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 1 [key] Reacing to User Input;
-#X text 20 169 It's interesting to note that with these tools \, PD
-can mimic some of the functions in other languages - Javascript for
-example has:;
-#X restore 102 524 pd reacting_to_user_input;
-#N canvas 105 31 345 511 some_keyboard_fun 0;
-#X obj 52 75 loadbang;
-#X msg 23 16 bang;
-#X obj 33 158 qlist;
-#X floatatom 33 185 5 0 0 0 - - -;
-#X obj 228 30 r keyboard_fun;
-#X msg 52 105 read keyboard_fun.txt;
-#X msg 45 51 rewind;
-#X obj 228 112 symbol add2;
-#X obj 228 83 t b s;
-#X obj 228 138 pack s s;
-#X obj 228 164 route list;
-#X msg 47 245 set;
-#X msg 47 278;
-#X obj 228 57 symbol;
-#X text 71 17 Click here to start...;
-#X msg 62 131 tempo 0.8;
-#X obj 47 217 loadbang;
-#X connect 0 0 5 0;
-#X connect 0 0 15 0;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 4 0 13 0;
-#X connect 5 0 2 0;
-#X connect 6 0 2 0;
-#X connect 7 0 9 0;
-#X connect 8 0 7 0;
-#X connect 8 1 9 1;
-#X connect 9 0 10 0;
-#X connect 10 0 12 0;
-#X connect 11 0 12 0;
-#X connect 13 0 8 0;
-#X connect 15 0 2 0;
-#X connect 16 0 11 0;
-#X restore 102 548 pd some_keyboard_fun;
-#X obj 245 571 pddp/pddplink all_about_hid.pd -text all_about_hid;
-#X text 100 572 for more on HIDs:;
-#X text 11 23 get input from the keyboard;
-#X text 168 261 - [key] gets input directly from the keyboard.;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X connect 17 0 18 0;
-#X connect 17 0 19 0;
+pointer location \, depending on the system.;
+#X connect 4 0 5 0;
+#X connect 7 0 6 0;
+#X connect 9 0 8 0;
+#X connect 9 1 10 0;
diff --git a/externals/vanilla/line-help.pd b/externals/vanilla/line-help.pd
index f90cd194..f5d5ad38 100644
--- a/externals/vanilla/line-help.pd
+++ b/externals/vanilla/line-help.pd
@@ -1,263 +1,35 @@
-#N canvas 0 0 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 line 3 12 0 18 -204280
--1 0;
-#X obj 0 267 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 51 246 494 364 META 0;
-#X text 12 125 LIBRARY internal;
-#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 145 AUTHOR Miller Puckette;
-#X text 12 205 HELP_PATCH_AUTHORS This help patch was updated for Pd
-version 0.35 test 28 by Dave Sabine as part of a project called pddp
-proposed by Krzysztof Czaja to build comprehensive documentation for
-Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
-for Pd version 0.42.;
-#X text 12 45 DESCRIPTION ramp generator;
-#X text 12 65 INLET_0 float list stop;
-#X text 12 85 INLET_1 float;
-#X text 12 105 OUTLET_0 float;
-#X text 12 185 RELEASE_DATE 1997;
-#X text 12 5 KEYWORDS control time;
-#X restore 500 598 pd META;
-#X obj 0 375 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 439 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 498 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#N canvas 104 484 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 line~;
-#X obj 62 43 vline~;
-#N canvas 0 22 456 306 related_objects_from_other_libraries 0;
-#X obj 23 21 tripleLine;
-#X obj 105 20 t3_line~;
-#X obj 171 20 fade~;
-#X obj 219 21 step;
-#X text 17 54 These objects are offered in Pd only if you have downloaded
-and properly installed the appropriate library. These objects may or
-may not exist in a single library.;
-#X text 16 103 The best places to find information about Pd's libraries
-is:;
-#X text 13 125 www.puredata.org and click on "Downloads" then "Software"
-;
-#X text 14 141 or;
-#X text 15 155 iem.kug.ac.at/pdb/;
-#X restore 21 70 pd related_objects_from_other_libraries;
-#X text 8 2 [line] Related Objects;
-#X restore 101 598 pd Related_objects;
-#X obj 78 276 cnv 17 3 63 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 98 275 float;
-#X text 98 301 list;
-#X text 98 383 float;
-#X obj 78 384 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 347 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
--162280 0;
-#X text 98 346 float;
-#X obj 493 3 line;
-#X obj 465 20 pddp/pddplink http://wiki.puredata.info/en/line -text
-pdpedia: line;
-#X obj 137 180 line;
-#X msg 137 87 1000 1000;
-#X floatatom 137 201 5 0 0 0 - - -;
-#X text 203 86 ramp up.;
-#X msg 146 110 0 1000;
-#X text 193 110 ramp down.;
-#X msg 158 154 stop;
-#X msg 154 133 42;
-#X text 180 134 jumps to this value immediately.;
-#X text 195 154 stops the current ramp.;
-#N canvas 106 115 428 446 continuous_ramps 0;
-#X text 19 98 In other words \, if [line] receives a message specifying
-some new target and time before reaching the previous target \, it
-takes off from its current value.;
-#X obj 26 247 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X msg 56 205 stop;
-#X msg 49 185 42;
-#X obj 23 226 line;
-#X msg 23 144 127 5000;
-#X msg 41 165 0 5000;
-#X text 16 271 Due to this unique behavior \, a common construct found
-in Pd patches includes the [pack] object as follows:;
-#X obj 30 392 line;
-#X floatatom 30 413 10 0 0 0 - - -;
-#X floatatom 30 306 5 0 0 0 - - -;
-#X obj 30 372 pack f 500;
-#X msg 41 325 50;
-#X msg 49 346 2000;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [line] Continuous Ramps;
-#X text 21 37 [line] does not schedule its incoming messages. What
-this means is that if you send [line] a new target value mid-way through
-a ramp \, a new ramp is immediately created to the new target value
-starting from the "current" value.;
-#X connect 2 0 4 0;
-#X connect 3 0 4 0;
-#X connect 4 0 1 0;
-#X connect 5 0 4 0;
-#X connect 6 0 4 0;
-#X connect 8 0 9 0;
-#X connect 10 0 11 0;
-#X connect 11 0 8 0;
-#X connect 12 0 11 0;
-#X connect 13 0 11 0;
-#X restore 101 551 pd continuous_ramps;
-#N canvas 107 25 428 516 grain_rate_and_creation_arguments 0;
-#X text 21 39 The "grain rate" of [line] is the rate at which it will
-output its values. The faster the grain is \, the smoother the ramp
-will appear. While slower grain rates will produce a more disjunct
-ramp. Of course this setting will alter the amount of CPU that the
-[line] object will require. Higher rates require more computation.
-;
-#X text 22 145 This means simply that [line] will output a new value
-between its current value and your new value once every 20 milliseconds.
-;
-#X text 22 126 The default grain rate is 20 milliseconds.;
-#X text 19 193 [line]'s optional creation arguments can be used to
-reset the grain rate. However \, the grain rate cannot be reset dynamically.
-;
-#X text 21 248 First creation argument is the initial value: the starting
-point of the first ramp.;
-#X text 20 287 The second creation argument sets the grain rate. Observe
-the following two examples to see how the grain rate effects the output.
-;
-#X obj 33 403 line 0 5;
-#X obj 36 436 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X msg 136 332 127;
-#X msg 168 340 0;
-#X obj 135 368 pack f 5000;
-#X obj 203 436 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X obj 200 403 line 0 500;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [line] Grain Rate;
-#X text 31 469 You can check the default grain rate in the subpatch
-below:;
-#N canvas 398 136 429 326 default_grain_rate 0;
-#X obj 22 87 line;
-#X obj 22 226 timer;
-#X obj 22 111 t b b;
-#X obj 49 137 spigot;
-#X obj 101 169 0;
-#X obj 22 193 spigot;
-#X obj 22 64 t a b;
-#X obj 65 87 1;
-#X obj 71 226 1;
-#X obj 22 251 print Pd's_default_grain_rate;
-#X msg 22 42 0 200;
-#X text 19 274 Here we assume the grain rate is less than 200 ms. For
-a more comprehensive test we could start with a time value of 1 ms
-and step up until the output ceases to increase.;
-#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
--204280 -1 0;
-#X text 7 1 [line] Pd's Default Grain Rate;
-#X text 60 42 Click here to output pd's default grain rate to the console
-;
-#X connect 0 0 2 0;
-#X connect 1 0 9 0;
-#X connect 2 0 5 0;
-#X connect 2 1 3 0;
-#X connect 3 0 4 0;
-#X connect 3 0 1 1;
-#X connect 4 0 3 1;
-#X connect 4 0 5 1;
-#X connect 5 0 1 0;
-#X connect 5 0 8 0;
-#X connect 6 0 0 0;
-#X connect 6 1 7 0;
-#X connect 7 0 5 1;
-#X connect 8 0 3 1;
-#X connect 10 0 6 0;
-#X restore 34 491 pd default_grain_rate;
-#X connect 6 0 7 0;
-#X connect 8 0 10 0;
-#X connect 9 0 10 0;
-#X connect 10 0 6 0;
-#X connect 10 0 12 0;
-#X connect 12 0 11 0;
-#X restore 101 529 pd grain_rate_and_creation_arguments;
-#X text 11 23 ramp generator;
-#X text 98 325 stop;
-#X text 168 325 - stop the current ramp.;
-#X text 167 346 - time to reach the target value (in milliseconds).
-;
-#X text 168 275 - target value. This value is stored and used as the
-starting value for the next ramp.;
-#X text 168 301 - a (target \, time) pair is distributed between the
-two inlets.;
-#X text 168 474 - grain rate in milliseconds (default: 20 ms).;
-#X text 168 383 - [line] outputs a linear ramp \, reaching the target
-value within the time value specified by the right inlet and at a grain
-rate specified by the second creation argument (default 20 ms).;
-#N canvas 106 32 428 493 tips_on_using_line 0;
-#X text 20 39 [line]'s left inlet defines the "target" value. The right
-inlet defines the "time" value. The "target \, time" pair of numbers
-inform [line] to produce a numeric "ramp" from its current value (whatever
-that might be at any given moment) to the new value within the alloted
-time which is defined at the right inlet.;
-#X obj 25 242 line;
-#X msg 59 218 1000;
-#X msg 25 218 1000;
-#X obj 25 175 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 25 195 t b b;
-#X floatatom 25 264 5 0 0 0 - - -;
-#X obj 150 260 line;
-#X msg 150 236 1000;
-#X obj 150 216 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 150 282 5 0 0 0 - - -;
-#X text 20 309 If [line] receives a new target value without an accompanying
-"time" \, it simply jumps to the new value...as in the example above
-on the right. In the example above on the left \, you'll see that [line]
-will create a numeric ramp from 0 to 1000 over 1000 milliseconds. You
-should also note that if you click that [bng] again a second time \,
-nothing happens. This is because [line] is already at 1000 \, so sending
-it new instructions to ramp to 1000 is meaningless and has no effect.
-;
-#X text 20 425 Having said all of that \, let's just reiterate that
-it's important to send a "time" value to [line] before sending it a
-new "target" value...unless of course you WANT it to jump immediately
-to the new target.;
-#X text 149 182 While this does NOT work unless;
-#X text 149 196 you click "500" first.;
-#X msg 184 236 500;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [line] Tips;
-#X text 20 118 It is important to realize that [line] stores only the
-current value...it does not remember the defined "time" (duration of
-the ramp). Hence \, the example to the left works:;
-#X connect 1 0 6 0;
-#X connect 2 0 1 1;
-#X connect 3 0 1 0;
-#X connect 4 0 5 0;
-#X connect 5 0 3 0;
-#X connect 5 1 2 0;
-#X connect 7 0 10 0;
-#X connect 8 0 7 0;
-#X connect 9 0 8 0;
-#X connect 15 0 7 1;
-#X restore 101 507 pd tips_on_using_line;
-#X text 80 459 1) float;
-#X text 80 474 2) float;
-#X text 168 459 - initial value \, i.e. \, the starting point of the
-first ramp.;
-#X obj 3 598 pddp/pddplink pddp/help.pd -text help;
-#X obj 98 571 pddp/pddplink ../3.audio.examples/C03.zipper.noise.pd
--text doc/3.audio.examples/C03.zipper.noise.pd;
-#X connect 17 0 19 0;
-#X connect 18 0 17 0;
-#X connect 21 0 17 0;
-#X connect 23 0 17 0;
-#X connect 24 0 17 0;
+#N canvas 31 15 669 403 12;
+#X floatatom 22 339 0 0 0 0 - - -;
+#X msg 31 205 0 1000;
+#X msg 46 227 39;
+#X obj 66 15 line;
+#X text 106 14 - ramp generator;
+#X msg 22 182 1 1000;
+#X text 18 36 The line object takes (target \, time) pairs and slews
+to the specified target over the time given \, updating its output
+at a "grain rate" given by the creation argument. If you dont' specify
+a time \, line jumps immediately to the target. Note that the inlet
+does not remember old values (unlike every other inlet in Pd) -- sending
+a float causes a jump in the output regardless of whatever time value
+was specified in some previous message. If the line object receives
+a message specifying some new target before reaching the previous one
+\, it takes off from its current value.;
+#X text 93 194 send a pair to ramp to a new value;
+#X text 105 224 send a single number to jump;
+#X text 46 363 see also:;
+#X obj 132 361 line~;
+#X msg 57 252 stop;
+#X text 98 251 "stop" message to stop output;
+#X obj 22 313 line 0 100;
+#X text 383 369 updated for Pd version 0.37;
+#X text 125 310 creation arguments:;
+#X text 316 310 1 initial value;
+#X text 318 330 2 time grain in milliseconds;
+#X msg 51 282 set 5;
+#X text 99 282 "set" to change value (and stop) without output;
+#X connect 1 0 13 0;
+#X connect 2 0 13 0;
+#X connect 5 0 13 0;
+#X connect 11 0 13 0;
+#X connect 13 0 0 0;
+#X connect 18 0 13 0;
diff --git a/externals/vanilla/list-help.pd b/externals/vanilla/list-help.pd
index 2a872d0e..8ab27888 100644
--- a/externals/vanilla/list-help.pd
+++ b/externals/vanilla/list-help.pd
@@ -1,130 +1,18 @@
-#N canvas 0 0 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 list 3 12 0 18 -204280
--1 0;
-#X obj 0 161 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 50 244 494 344 META 0;
-#X text 12 90 LIBRARY internal;
-#X text 12 130 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 50 LICENSE SIBSD;
-#X text 12 110 AUTHOR Miller Puckette;
-#X text 12 170 HELP_PATCH_AUTHORS Updated for Pd version 0.40. Jonathan
-Wilkes revised the patch to conform to the PDDP template for Pd version
-0.42.;
-#X text 12 70 DESCRIPTION building and using variable-length messages
-;
-#X text 12 5 NAME list append list prepend list trim list split list
-length;
-#X text 12 30 KEYWORDS control storage needs_work list_op symbol_op
-;
-#X text 12 150 RELEASE_DATE 2005;
-#X restore 500 598 pd META;
-#X obj 0 244 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 295 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 506 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#N canvas 99 484 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 text 7 1 [list] Related Objects;
-#X obj 21 42 float;
-#X obj 61 42 symbol;
-#X obj 112 42 pack;
-#X obj 152 42 unpack;
-#X restore 102 599 pd Related_objects;
-#X obj 78 253 cnv 17 3 17 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
--162280 0;
-#X obj 78 170 cnv 17 3 17 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
--162280 0;
-#X obj 493 3 list;
-#X obj 465 20 pddp/pddplink http://wiki.puredata.info/en/list -text
-pdpedia: list;
-#N canvas 0 83 555 502 append 0;
-#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
--204280 -1 0;
-#X obj 13 3 list append;
-#X text 18 24 append (concatenate) the second list to the first;
-#X obj 0 294 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#X obj 0 377 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 78 386 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 303 cnv 17 3 40 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 353 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
--162280 0;
-#X text 98 304 anything;
-#X text 98 354 anything;
-#X obj 0 421 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X text 80 456 n);
-#X text 98 471 float;
-#X text 80 440 1);
-#X text 170 440 - the symbol "append".;
-#X text 170 456 - an arbitrary number of additional floats or symbols
-may be specified to initialize the list stored at the right inlet.
-;
-#X obj 158 219 list append 1 2;
-#X floatatom 168 165 5 0 0 0 - - -;
-#X msg 158 140 1 2 3;
-#X msg 178 190 bang;
-#X msg 285 189 bang;
-#X obj 158 241 print append;
-#X msg 285 163 4 5 6 and 7;
-#X msg 285 80 4 5 6;
-#X msg 285 139 four 5 6;
-#X msg 285 110 list four 5 6;
-#X text 178 354 - all input is converted to a list and stored.;
-#X text 178 304 - all input is converted to a list. The list stored
-at the right inlet is appended to it \, and the resulting list is sent
-to the outlet.;
-#X text 98 387 list;
-#X text 168 387 - the output is always a message with the selector
-"list" (see subpatch "list_conversion" for more info).;
-#X text 98 440 symbol atom;
-#X text 98 456 symbol atom;
-#X connect 16 0 21 0;
-#X connect 17 0 16 0;
-#X connect 18 0 16 0;
-#X connect 19 0 16 0;
-#X connect 20 0 16 1;
-#X connect 22 0 16 1;
-#X connect 23 0 16 1;
-#X connect 24 0 16 1;
-#X connect 25 0 16 1;
-#X restore 102 365 pd append;
-#N canvas 87 25 428 592 about-lists 0;
-#X obj 22 567 print message;
-#X msg 22 380 list x.wav 44100;
-#X msg 22 538 read \$1 \$2;
-#X msg 22 409 set x.wav 44100;
-#X msg 39 509 set \, add2 read \, adddollar 1 \, adddollar 2;
-#X msg 22 439 x.wav 44100;
-#X obj 39 483 loadbang;
-#X text 127 486 reset message as it was;
-#X text 139 380 good;
-#X text 128 411 bad;
-#X text 94 439 ugly;
-#X msg 223 403 list 44100 x.wav;
-#X msg 236 428 44100 x.wav;
-#X obj 223 454 print number-first;
-#X text 217 375 these two are equivalent:;
-#X text 19 266 In the example below \, the top message sets \$1 to
-"x.wav" and \$2 to 44100 in the "read" message. The lower message box
-outputs the message "read x.wav 44100". The "set" message changes the
-content of the message box itself (click on the longer message box
-below to repair the damage.) The "ugly" message \, since it is neither
-"list" nor "set" \, gets interpreted in an arbitrary (and probably
-inappropriate!) way.;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 1 [list] About lists in Pd;
-#X text 19 37 Messages in Pd are somewhat artificially divided into
+#N canvas 256 20 629 492 12;
+#X obj 29 11 list;
+#X text 76 12 - building and using variable-length messages;
+#N canvas 92 130 654 658 about-lists 0;
+#X obj 50 625 print message;
+#X msg 50 438 list x.wav 44100;
+#X msg 50 596 read \$1 \$2;
+#X msg 50 467 set x.wav 44100;
+#X msg 67 567 set \, add2 read \, adddollar 1 \, adddollar 2;
+#X msg 50 497 x.wav 44100;
+#X obj 67 541 loadbang;
+#X text 155 544 reset message as it was;
+#X text 207 438 good;
+#X text 196 469 bad;
+#X text 46 25 Messages in Pd are simewhat artificially divided into
two classes. First are data-holding messages (bang \, float \, symbol
\, list) which are the primary way of communicating between objects.
Second is "everything else" (you could call them out-of-band messages
@@ -133,81 +21,238 @@ write files \, quit Pd \, etc. These are provided so that complex objects
don't need to have 100 separate inlets for every possible functionality.
It's not clear whether this was a good design choice \, but it's entrenched.
;
-#X text 19 170 The distinction becomes visible \, and ugly \, when
+#X text 162 497 ugly;
+#X text 48 183 The distinction becomes visible \, and ugly \, when
the leading item in a data-holding message is a symbol. In this case
\, to disambiguate it from the other sort \, the printed form of the
message has a selector \, "list" or "symbol" prepended to it. Underneath
-\, there is always a selector in front of data messages \, but it is
+\, there is always a selector in fromt of data messages \, but it is
implied if the first data item is a number.;
+#X msg 411 461 list 44100 x.wav;
+#X msg 424 486 44100 x.wav;
+#X obj 411 512 print number-first;
+#X text 405 433 these two are equivalent:;
+#X text 50 294 In the example below \, the top message sets \$1 to
+"x.wav" and \$2 to 44100 in the "read" message. The lower message box
+outputs the message "read x.wav 44100". The "set" message changes the
+content of the message box itself (click on the longer message box
+below to repair the damage.) The "ugly" message \, since it is neither
+"list" nor "set" \, gets interpreted in an arbitrary (and probably
+inappropriate!) way.;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 2 0;
#X connect 4 0 2 0;
#X connect 5 0 2 0;
#X connect 6 0 4 0;
-#X connect 11 0 13 0;
-#X connect 12 0 13 0;
-#X restore 101 546 pd about-lists;
-#X text 11 23 building and using variable-length messages;
-#X text 80 314 1);
-#X text 80 474 n);
-#X text 180 365 append - append the second list to the first;
-#X text 180 409 split - split a list in two;
-#X text 180 387 prepend - prepend the second list to the first;
-#X text 180 453 length - output the number of items in a list;
-#X text 180 431 trim - trim the "list" selector off;
-#X obj 212 113 list;
-#X msg 233 68 rice;
-#X msg 212 46 beans;
-#X obj 212 135 print groceries;
-#X msg 246 90 cornbread;
-#X text 98 510 Here are some examples showing how to use these objects
-to compose and/or use variable length messages:;
-#N canvas 19 21 525 646 simple_sequencer 0;
-#X obj 23 173 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X connect 13 0 15 0;
+#X connect 14 0 15 0;
+#X restore 43 324 pd about-lists;
+#X text 33 52 There are four list classes:;
+#X obj 22 82 list append;
+#X obj 22 107 list prepend;
+#X obj 22 157 list trim;
+#X obj 22 132 list split;
+#X text 140 81 - append the second list to the first;
+#X text 141 108 - prepend the second list to the first;
+#X text 141 133 - split a list in two;
+#X text 141 160 - trim the "list" selector off;
+#N canvas 186 284 602 409 trim 0;
+#X msg 159 239 1 2 3;
+#X msg 159 190 list cis boom bah;
+#X msg 160 265 bang;
+#X msg 159 163 walk the dog;
+#X obj 134 341 list trim;
+#X obj 134 363 print trim;
+#X msg 160 287 1 x y;
+#X msg 159 313 x 1 y;
+#X text 29 19 trim - convert list to message \, using first item as
+selector;
+#X msg 159 213 55;
+#X text 27 55 The "list trim" object inputs lists (or makes lists out
+of incoming non-list messages) and outputs a message whose selector
+is the first item of the list \, and whose arguments \, if any \, are
+the remainder of the list. If the list has no items \, or if its first
+item is numeric \, the selector is "list" (which might print out as
+list \, float \, or bang.);
+#X connect 0 0 4 0;
+#X connect 1 0 4 0;
+#X connect 2 0 4 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 6 0 4 0;
+#X connect 7 0 4 0;
+#X connect 9 0 4 0;
+#X restore 506 160 pd trim;
+#X text 501 53 details:;
+#X text 499 36 click for;
+#N canvas 100 190 608 420 append 0;
+#X obj 17 324 list append 1 2;
+#X floatatom 17 154 5 0 0 0 - - -;
+#X msg 17 129 1 2 3;
+#X msg 17 82 list cis boom bah;
+#X msg 17 179 bang;
+#X msg 176 294 bang;
+#X obj 17 353 print append;
+#X msg 17 39 walk the dog;
+#X msg 176 244 list x y z;
+#X msg 175 218 go dog go;
+#X msg 174 268 4 5 6 and 7;
+#X text 138 37 non-list message converted to list;
+#X text 182 77 list starting with symbol;
+#X text 181 96 (needs explicit "list" selector);
+#X text 69 152 number is one-element list;
+#X text 72 129 numeric list;
+#X text 67 181 bang is zero-element list;
+#X text 270 215 same for right inlet...;
+#X text 286 267 (note: only the first item;
+#X text 289 286 need be a number to make this;
+#X text 289 304 a list.);
+#X text 170 325 <- creation args initialize the list to append;
+#X text 20 6 Append - append (concatenate) the second list to the first
+;
+#X connect 0 0 6 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 0 1;
+#X connect 7 0 0 0;
+#X connect 8 0 0 1;
+#X connect 9 0 0 1;
+#X connect 10 0 0 1;
+#X restore 506 84 pd append;
+#N canvas 391 326 667 561 split 0;
+#X msg 103 328 1 2 3;
+#X msg 79 231 list cis boom bah;
+#X msg 99 263 bang;
+#X obj 79 421 list split 2;
+#X floatatom 182 396 3 0 5 0 - - -;
+#X obj 79 469 print split1;
+#X obj 198 470 print split2;
+#X msg 79 204 walk the dog;
+#X msg 102 306 1 2;
+#X msg 100 285 1;
+#X msg 103 349 1 2 3 4;
+#X msg 103 372 1 2 so are you;
+#X obj 320 470 print split3;
+#X text 76 488 first n;
+#X text 195 489 rest of list;
+#X text 317 489 shorter than n;
+#X text 218 394 new split point;
+#X text 49 25 Split - cut a list into smaller ones;
+#X text 210 419 <-- creation arg inits split point;
+#X text 201 202 non-list message converted to list;
+#X text 245 231 list with three symbols;
+#X text 139 288 list with one number;
+#X text 177 310 ... etc;
+#X text 241 370 <- if the first item is a number \, it's a list.;
+#X text 142 262 list with no items;
+#X text 48 61 The "list split" object takes lists and outputs the first
+"n" items (left outlet) and the remaining ones (middle outlet). The
+two outputs appear in the usual right-to-left order. In case there
+are fewer than "n" items in the list \, it is output (in its entirety)
+from the third outlet instead. The creation argument or the inlet sets
+the split point.;
+#X connect 0 0 3 0;
+#X connect 1 0 3 0;
+#X connect 2 0 3 0;
+#X connect 3 0 5 0;
+#X connect 3 1 6 0;
+#X connect 3 2 12 0;
+#X connect 4 0 3 1;
+#X connect 7 0 3 0;
+#X connect 8 0 3 0;
+#X connect 9 0 3 0;
+#X connect 10 0 3 0;
+#X connect 11 0 3 0;
+#X restore 506 134 pd split;
+#N canvas 0 0 640 478 prepend 0;
+#X floatatom 17 154 5 0 0 0 - - -;
+#X msg 17 129 1 2 3;
+#X msg 17 82 list cis boom bah;
+#X msg 17 179 bang;
+#X msg 176 294 bang;
+#X obj 17 353 print append;
+#X msg 17 39 walk the dog;
+#X msg 176 244 list x y z;
+#X msg 175 218 go dog go;
+#X msg 174 268 4 5 6 and 7;
+#X text 138 37 non-list message converted to list;
+#X text 182 77 list starting with symbol;
+#X text 181 96 (needs explicit "list" selector);
+#X text 69 152 number is one-element list;
+#X text 72 129 numeric list;
+#X text 67 181 bang is zero-element list;
+#X text 270 215 same for right inlet...;
+#X text 286 267 (note: only the first item;
+#X text 289 286 need be a number to make this;
+#X text 289 304 a list.);
+#X text 20 6 Prepend - prepend the second list to the first;
+#X text 171 326 <- creation args initialize the list to prepend;
+#X obj 17 324 list prepend 1 2;
+#X connect 0 0 22 0;
+#X connect 1 0 22 0;
+#X connect 2 0 22 0;
+#X connect 3 0 22 0;
+#X connect 4 0 22 1;
+#X connect 6 0 22 0;
+#X connect 7 0 22 1;
+#X connect 8 0 22 1;
+#X connect 9 0 22 1;
+#X connect 22 0 5 0;
+#X restore 506 109 pd prepend;
+#X text 30 241 In general \, inlets that take lists (two each for append/prepend
+\, and one each for split and trim) will convert non-list messages
+(such as "set 5") to lists (such as "list set 5" automatically. Here's
+more about lists in Pd:;
+#X text 31 357 And here are some examples showing how to use these
+objects to compose and/or use variable length messages:;
+#N canvas 381 50 719 646 example1 0;
+#X obj 43 173 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 232 176 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X obj 252 176 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X text 227 154 clear;
-#X text 20 153 send;
-#X msg 71 175 250;
-#X msg 103 175 500;
-#X msg 136 175 750;
-#X msg 169 175 1000;
-#X obj 23 258 list append;
-#X obj 188 220 t l;
-#X obj 71 214 list prepend;
-#X obj 23 426 t l l;
-#X obj 74 426 print start;
-#X obj 129 257 print stored;
-#X obj 23 451 list split 1;
-#X obj 23 575 del;
-#X obj 23 607 print bang;
-#X obj 55 542 list append;
-#X msg 35 403 0 250 250 500;
-#X text 98 150 -- add --;
-#X text 37 20 example 1: simple rhythmic sequencer;
-#X text 29 53 The top part of this patch demonstrates building up a
+#X text 247 154 clear;
+#X text 40 153 send;
+#X msg 91 175 250;
+#X msg 123 175 500;
+#X msg 156 175 750;
+#X msg 189 175 1000;
+#X obj 43 258 list append;
+#X obj 208 220 t l;
+#X obj 91 214 list prepend;
+#X obj 43 426 t l l;
+#X obj 94 426 print start;
+#X obj 149 257 print stored;
+#X obj 43 451 list split 1;
+#X obj 43 575 del;
+#X obj 43 607 print bang;
+#X obj 75 542 list append;
+#X msg 55 403 0 250 250 500;
+#X text 118 150 -- add --;
+#X text 57 20 example 1: simple rhythmic sequencer;
+#X text 49 53 The top part of this patch demonstrates building up a
message from a variable number of elements provided sequentially. The
"list prepend" object stores the list and \, each time a number arrives
\, prepends the previous list to it.;
-#X text 216 237 "list prepend" to its own inlet.;
-#X text 213 220 "trigger list" is needed only to connect outlet of
+#X text 416 237 "list prepend" to its own inlet.;
+#X text 253 220 "trigger list" is needed only to connect outlet of
;
-#X text 254 258 printout shows the growing message.;
-#X text 47 279 "list append" stores the growing message which is output
+#X text 274 258 printout shows the growing message.;
+#X text 67 279 "list append" stores the growing message which is output
by the "send" button above. "list prepend" would have been equivalent.
;
-#X text 165 403 <-- test message;
-#X text 39 354 The bottom part of the patch takes numbers off the beginning
+#X text 185 403 <-- test message;
+#X text 59 354 The bottom part of the patch takes numbers off the beginning
of the list \, one by one \, to use as delays.;
-#X text 190 426 printout shows the sequence as it starts.;
-#X text 169 543 The rest of the list is stored for next time.;
-#X obj 141 505 print done;
-#X text 150 450 Split off the first item. If there is none \, nothing
+#X text 210 426 printout shows the sequence as it starts.;
+#X text 189 543 The rest of the list is stored for next time.;
+#X obj 161 505 print done;
+#X text 170 450 Split off the first item. If there is none \, nothing
comes out the first or second outlet \, but instead we get a "bang"
from the third one.;
-#X text 64 575 After delay \, output a bang and recall the rest of
+#X text 84 575 After delay \, output a bang and recall the rest of
the list.;
#X connect 0 0 8 0;
#X connect 1 0 10 1;
@@ -229,8 +274,9 @@ the list.;
#X connect 15 0 17 0;
#X connect 17 0 14 0;
#X connect 18 0 11 0;
-#X restore 401 546 pd simple_sequencer;
-#N canvas 126 39 397 569 another_sequencer 0;
+#X restore 222 410 pd example1;
+#X text 65 409 simple sequencer;
+#N canvas 126 39 568 569 example2 0;
#X obj 66 263 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 292 266 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
@@ -280,8 +326,10 @@ by taking the "pitch" output before the delay object (previously the
#X connect 16 0 15 0;
#X connect 16 1 11 1;
#X connect 16 2 19 0;
-#X restore 401 568 pd another_sequencer;
-#N canvas 47 147 447 426 serializer 0;
+#X restore 222 436 pd example2;
+#X text 56 438 another sequencer;
+#X text 115 465 serializer;
+#N canvas 116 31 673 426 example3 0;
#X obj 19 287 list split 1;
#X obj 19 378 print;
#X obj 19 204 until;
@@ -294,11 +342,11 @@ by taking the "pitch" output before the delay object (previously the
all the items of a list.;
#X text 178 147 <- click to test;
#X text 101 171 First store list \, then start the loop;
-#X text 88 199 "until" bangs its output until told to stop by a "bang"
+#X text 118 199 "until" bangs its output until told to stop by a "bang"
to its right inlet.;
-#X text 107 241 Store the remaining list.;
-#X text 184 286 third outlet of "split" tells us to stop.;
-#X text 37 318 Second outlet of "split" becomes the new list for "list
+#X text 137 241 Store the remaining list.;
+#X text 194 286 third outlet of "split" tells us to stop.;
+#X text 67 318 Second outlet of "split" becomes the new list for "list
append" above.;
#X text 75 377 First outlet is the output.;
#X connect 0 0 1 0;
@@ -310,317 +358,31 @@ append" above.;
#X connect 4 1 3 1;
#X connect 5 0 2 1;
#X connect 6 0 4 0;
-#X restore 241 568 pd serializer;
-#N canvas 100 215 428 350 lists_vs_non-lists 0;
-#X obj 23 290 list append 1 2;
-#X floatatom 23 120 5 0 0 0 - - -;
-#X msg 23 95 1 2 3;
-#X msg 23 68 list cis boom bah;
-#X msg 23 145 bang;
-#X msg 162 260 bang;
-#X obj 23 319 print append;
-#X msg 23 43 walk the dog;
-#X msg 162 210 list x y z;
-#X msg 161 184 go dog go;
-#X msg 160 234 4 5 6 and 7;
-#X text 119 43 non-list message converted to list;
-#X text 144 68 list starting with symbol;
-#X text 75 118 number is one-element list;
-#X text 75 95 numeric list;
-#X text 75 145 bang is zero-element list;
-#X text 226 184 same for right inlet...;
-#X text 235 233 (note: only the first item;
-#X text 238 252 need be a number to make this;
-#X text 238 270 a list.);
-#X text 121 290 <- creation args initialize the list to append;
-#X obj 2 2 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [list] Lists vs. Non-lists;
-#X connect 0 0 6 0;
-#X connect 1 0 0 0;
-#X connect 2 0 0 0;
-#X connect 3 0 0 0;
-#X connect 4 0 0 0;
-#X connect 5 0 0 1;
-#X connect 7 0 0 0;
-#X connect 8 0 0 1;
-#X connect 9 0 0 1;
-#X connect 10 0 0 1;
-#X restore 101 568 pd lists_vs_non-lists;
-#N canvas 0 82 555 506 prepend 0;
-#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
--204280 -1 0;
-#X obj 0 299 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#X obj 0 377 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 78 386 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 308 cnv 17 3 40 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 354 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
--162280 0;
-#X text 98 309 anything;
-#X text 98 355 anything;
-#X obj 0 421 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X text 80 456 n);
-#X text 98 471 float;
-#X text 80 440 1);
-#X text 170 456 - an arbitrary number of additional floats or symbols
-may be specified to initialize the list stored at the right inlet.
-;
-#X floatatom 198 160 5 0 0 0 - - -;
-#X msg 188 135 1 2 3;
-#X msg 208 185 bang;
-#X msg 315 184 bang;
-#X msg 315 158 4 5 6 and 7;
-#X msg 315 75 4 5 6;
-#X msg 315 134 four 5 6;
-#X msg 315 105 list four 5 6;
-#X text 178 355 - all input is converted to a list and stored.;
-#X text 18 24 prepend the second list to the first;
-#X obj 13 3 list prepend;
-#X obj 188 214 list prepend 1 2;
-#X obj 188 236 print prepend;
-#X text 178 309 - all input is converted to a list. The list stored
-at the right inlet is prepended to it \, and the resulting list is
-sent to the outlet.;
-#X text 170 440 - the symbol "prepend".;
-#X text 98 387 list;
-#X text 168 387 - the output is always a message with the selector
-"list" (see subpatch "list_conversion" for more info).;
-#X text 98 440 symbol atom;
-#X text 98 456 symbol atom;
-#X connect 13 0 24 0;
-#X connect 14 0 24 0;
-#X connect 15 0 24 0;
-#X connect 16 0 24 1;
-#X connect 17 0 24 1;
-#X connect 18 0 24 1;
-#X connect 19 0 24 1;
-#X connect 20 0 24 1;
-#X connect 24 0 25 0;
-#X restore 102 387 pd prepend;
-#N canvas 1 82 555 530 split 0;
-#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
--204280 -1 0;
-#X obj 0 277 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#X obj 0 371 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 78 380 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 286 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 314 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
--162280 0;
-#X text 98 287 anything;
-#X obj 0 458 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X text 80 477 1);
-#X msg 200 145 bang;
-#X obj 159 173 list split 2;
-#X floatatom 262 148 3 0 5 0 - - -;
-#X msg 159 57 1 2;
-#X msg 124 57 1;
-#X text 156 228 first n;
-#X text 245 228 rest of list;
-#X text 337 228 shorter than n;
-#X text 18 24 cut a list into smaller ones;
-#X obj 13 3 list split;
-#X msg 173 79 one 2 3;
-#X msg 183 101 list one 2 3;
-#X msg 193 123 1 2 three;
-#X obj 159 211 print split0;
-#X obj 248 211 print split1;
-#X obj 340 211 print split2;
-#X text 178 287 - all input is converted to a list.;
-#X text 98 315 float;
-#X text 98 381 list;
-#X obj 78 403 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
--162280 0;
-#X text 98 404 list;
-#X obj 78 425 cnv 17 3 17 empty \$0-pddp.cnv.let.2 2 5 9 0 16 -228856
--162280 0;
-#X text 98 426 list;
-#X text 178 315 - split point. A value of n will send the first n elements
-to the left outlet \, and the rest of the list to the middle outlet.
-Incoming lists shorter than n are sent to the rightmost outlet.;
-#X text 168 381 - the first n elements of the incoming list.;
-#X text 168 404 - the remaining elements of the incoming list.;
-#X text 168 426 - if the incoming list has fewer than n elements \,
-it is sent in its entirety to the rightmost outlet.;
-#X text 170 477 - the symbol "split".;
-#X text 98 493 float;
-#X text 80 493 2);
-#X text 98 477 symbol atom;
-#X text 170 493 - (optional) an integer to initialize the split point.
-;
-#X connect 9 0 10 0;
-#X connect 10 0 22 0;
-#X connect 10 1 23 0;
-#X connect 10 2 24 0;
-#X connect 11 0 10 1;
-#X connect 12 0 10 0;
-#X connect 13 0 10 0;
-#X connect 19 0 10 0;
-#X connect 20 0 10 0;
-#X connect 21 0 10 0;
-#X restore 102 409 pd split;
-#N canvas 1 82 555 481 trim 0;
-#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
--204280 -1 0;
-#X obj 0 330 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#X obj 0 385 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 78 394 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 339 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 98 340 anything;
-#X obj 0 429 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X text 80 448 1);
-#X msg 49 139 1 2 3;
-#X msg 49 90 list cis boom bah;
-#X msg 49 195 bang;
-#X msg 49 63 walk the dog;
-#X obj 49 276 list trim;
-#X obj 49 298 print trim;
-#X msg 49 222 1 x y;
-#X msg 49 248 x 1 y;
-#X msg 49 113 55;
-#X text 98 395 anything;
-#X text 170 448 - the symbol "trim".;
-#X obj 13 3 list trim;
-#X text 18 24 remove the list selector;
-#X text 128 230 The [list trim] object inputs lists (or makes lists
-out of incoming non-list messages) and outputs a message whose selector
-is the first item of the list \, and whose arguments \, if any \, are
-the remainder of the list. If the list has no items \, or if its first
-item is numeric \, the selector is "list" (which might print out as
-list \, float \, or bang.);
-#X text 98 448 symbol atom;
-#X text 178 340 - all input is converted to a list. A bang message
-is converted to an empty list. A symbol message like "symbol blah"
-is converted to "list blah".;
-#X text 134 63 non-list messages remain non-list messages;
-#X text 97 139 implicit list remains a list;
-#X msg 49 167 symbol x;
-#X text 86 195 becomes message "list" (interpreted by most objects
-as bang);
-#X text 166 90 "list" selector gets trimmed off;
-#X text 79 113 becomes "list 55" (interpreted by most objects as float)
-;
-#X text 112 167 "symbol" selector gets trimmed off.;
-#X text 168 395 - after the incoming message is converted to a list
-\, the "list" selector is removed and the message is output.;
-#X connect 8 0 12 0;
-#X connect 9 0 12 0;
-#X connect 10 0 12 0;
-#X connect 11 0 12 0;
-#X connect 12 0 13 0;
-#X connect 14 0 12 0;
-#X connect 15 0 12 0;
-#X connect 16 0 12 0;
-#X connect 26 0 12 0;
-#X restore 102 431 pd trim;
-#N canvas 1 99 555 490 length 0;
-#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header empty 3 12 0 14
--204280 -1 0;
-#X obj 0 374 cnv 3 520 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#X obj 0 411 cnv 3 520 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 78 420 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 383 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 98 384 anything;
-#X obj 0 448 cnv 3 520 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X text 80 467 1);
-#X obj 13 3 list length;
-#X msg 226 161 1 2 3;
-#X msg 226 112 list cis boom bah;
-#X msg 227 187 bang;
-#X msg 226 85 walk the dog;
-#X msg 227 209 1 x y;
-#X msg 226 235 x 1 y;
-#X msg 226 135 55;
-#X obj 201 263 list length;
-#X floatatom 201 289 5 0 0 0 - - -;
-#X text 18 24 number of elements in a list;
-#X text 98 421 float;
-#X text 170 467 - the symbol "length".;
-#X text 98 467 symbol atom;
-#X text 168 384 - any message type is accepted and converted to a list.
-;
-#X text 168 421 - [list length] outputs the number of elements in the
-list.;
-#X connect 9 0 16 0;
-#X connect 10 0 16 0;
-#X connect 11 0 16 0;
-#X connect 12 0 16 0;
-#X connect 13 0 16 0;
-#X connect 14 0 16 0;
-#X connect 15 0 16 0;
-#X connect 16 0 17 0;
-#X restore 102 453 pd length;
-#X text 98 314 symbol atom;
-#X text 98 329 float;
-#N canvas 49 88 428 419 list_conversion_in_Pd 0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 1 [list] Conversion;
-#X text 19 168 In brief:;
-#X text 19 188 "list" -> bang;
-#X text 19 208 "list 1" -> "float 1";
-#X text 19 228 "list hello" -> "symbol hello";
-#X text 19 37 Most objects in Pd handle zero- and one-element lists
-in the following way:;
-#X text 19 67 * an incoming zero-element list (i.e. \, a message consisting
-onf the selector "list") is treated as a bang.;
-#X text 19 97 * an incoming one-element list that contains a float
-is treated as a float.;
-#X obj 22 331 route list float;
-#X obj 22 304 list;
-#X obj 22 358 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 68 358 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X msg 22 277 12;
-#X text 55 277 implicit float-- same as "float 12";
-#X text 55 304 output as "list 12";
-#X floatatom 68 387 5 0 0 0 - - -;
-#X text 130 331 [route] converts "list 12" to "float 12";
-#X text 19 127 * an incoming one-element list that contains a symbol
-atom is treated as a symbol.;
-#X connect 9 0 11 0;
-#X connect 9 1 12 0;
-#X connect 9 1 16 0;
-#X connect 10 0 9 0;
-#X connect 13 0 10 0;
-#X restore 241 546 pd list_conversion_in_Pd;
-#X text 170 314 - (optional) if no creation argument is given \, or
-if the first creation argument is a number \, [list] will behave like
-[list append]. Otherwise \, one of the following symbols may be given
-as arguments (see subpatches for more info):;
-#X text 98 252 [list] family objects always output a list. See the
-"list_conversion_in_Pd" subpatch below for how lists are interpreted
-by other objects.;
-#X text 98 474 depending on what the first creation argument is \,
-other creation arguments may be specified.;
-#X text 98 171 See subpatches under the heading "arguments" for more
-details. With the exception of the right inlet of [list split] \, All
-[list] objects will convert incoming non-list messages to lists (e.g.
-\, "set 5" will become "list set 5"). A bang message is converted to
-an empty list (i.e. \, "list") \, and "symbol foo" is converted to
-"list foo".;
-#X obj 4 598 pddp/pddplink pddp/help.pd -text help;
-#X connect 22 0 25 0;
-#X connect 23 0 22 1;
-#X connect 24 0 22 0;
-#X connect 26 0 22 1;
+#X restore 222 463 pd example3;
+#X obj 23 207 list;
+#X text 71 208 - short for "list append";
+#X text 141 185 - output number of items in list;
+#N canvas 188 111 576 365 length 0;
+#X msg 126 183 1 2 3;
+#X msg 126 134 list cis boom bah;
+#X msg 127 209 bang;
+#X msg 126 107 walk the dog;
+#X msg 127 231 1 x y;
+#X msg 126 257 x 1 y;
+#X msg 126 157 55;
+#X obj 101 285 list length;
+#X floatatom 101 311 5 0 0 0 - - -;
+#X text 29 18 length - number of items in list;
+#X text 27 55 The "list length" object outputs the number of arguments
+in a list or other message.;
+#X connect 0 0 7 0;
+#X connect 1 0 7 0;
+#X connect 2 0 7 0;
+#X connect 3 0 7 0;
+#X connect 4 0 7 0;
+#X connect 5 0 7 0;
+#X connect 6 0 7 0;
+#X connect 7 0 8 0;
+#X restore 506 186 pd length;
+#X text 353 468 updated for Pd version 0.40.;
+#X obj 22 182 list length;
diff --git a/externals/vanilla/my_canvas-help.pd b/externals/vanilla/my_canvas-help.pd
index 97ddf25f..65f9976f 100644
--- a/externals/vanilla/my_canvas-help.pd
+++ b/externals/vanilla/my_canvas-help.pd
@@ -1,721 +1,260 @@
-#N canvas 0 0 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 my_canvas 3 12 0
-18 -204280 -1 0;
-#X obj 0 352 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 49 245 494 344 META 0;
-#X text 12 85 LIBRARY internal;
-#X text 12 45 LICENSE SIBSD;
-#X text 12 105 AUTHOR Thomas Musil;
-#X text 12 125 WEBSITE;
-#X text 12 165 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
-to conform to the PDDP template for Pd version 0.42.;
-#X text 12 65 DESCRIPTION gui-rectangle;
-#X text 12 5 ALIAS cnv;
-#X text 12 145 RELEASE_DATE 2002;
-#X text 12 25 KEYWORDS control GUI nonlocal;
-#X restore 500 597 pd META;
-#X obj 0 430 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 459 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 546 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#N canvas 80 481 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 text 8 2 [cnv] Related Objects;
-#X obj 22 43 drawpolygon;
-#X obj 112 43 filledpolygon;
-#X obj 22 73 x_all_guis bng tgl vsl hsl hradio vradio vu cnv nbx;
-#X restore 102 597 pd Related_objects;
-#X text 11 23 gui-rectangle;
-#X text 418 3 [my_canvas] or [cnv];
-#X obj 465 20 pddp/pddplink http://wiki.puredata.info/en/cnv -text
-pdpedia: cnv;
-#X text 98 356 (none);
-#X text 98 435 (none);
-#X text 98 374 See the following subpatch for messages that change
-the gui-properties of [cnv]:;
-#N canvas 80 25 428 604 Changing_GUI_Properties 0;
-#X obj 27 393 unpack 0 0;
-#X text 12 301 get position on canvas;
-#X msg 13 109 size \$1;
-#X obj 13 72 nbx 3 14 8 200 0 0 empty \$0-dim empty 0 -8 0 12 -262144
--1 -1 15 256;
-#X obj 13 133 s cnv_rcv;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-width empty
-0 -8 0 12 -262144 -1 -1 100 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-height empty
-0 -8 0 12 -262144 -1 -1 60 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 89 59 pd flash-time;
-#X text 86 38 visible size;
-#X text 138 61 1.width;
-#X text 138 81 2.height;
-#X msg 89 109 vis_size \$1 \$2;
-#X obj 89 133 s cnv_rcv;
-#X text 195 38 change send name;
-#X text 310 38 change receive name;
-#X obj 196 134 s cnv_rcv;
-#X obj 310 134 s cnv_rcv;
-#X msg 196 59 send cnv5a_snd;
-#X msg 310 59 receive cnv1a_rcv;
-#X obj 320 109 s cnv1a_rcv;
-#X msg 320 85 receive cnv_rcv;
-#X text 132 173 label position;
-#X text 274 173 font properties;
-#X text 13 173 label;
-#X msg 13 194 label new-label;
-#X msg 134 245 label_pos \$1 \$2;
-#X msg 276 245 label_font \$1 \$2;
-#X text 325 197 1.font(0-2);
-#X text 325 218 2.height;
-#X text 183 196 1.x-offset;
-#X text 183 217 2.y-offset;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-xlabel empty
-0 -8 0 12 -262144 -1 -1 20 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-ylabel empty
-0 -8 0 12 -262144 -1 -1 12 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 134 195 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 0 2 0 0 \$0-dummy \$0-font empty 0 -8 0 12
--262144 -1 -1 0 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-font-size empty
-0 -8 0 12 -262144 -1 -1 14 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 276 195 pd flash-time;
-#X text 164 461 delta;
-#X text 12 461 position;
-#X msg 13 558 pos \$1 \$2;
-#X msg 165 558 delta \$1 \$2;
-#X text 165 301 preset-colors;
-#X text 264 301 RGB-colors;
-#N canvas 364 205 169 292 flash-time 0;
-#X obj 69 196 t b a;
-#X obj 33 262 outlet;
-#X obj 103 104 nbx 3 14 0 29 0 0 \$0-dummy \$0-bg empty 0 -8 0 12 -262144
--1 -1 10 256;
-#X obj 103 124 nbx 3 14 0 29 0 0 \$0-dummy \$0-label empty 0 -8 0 12
--262144 -1 -1 12 256;
-#X obj 33 237 pack 0 0;
-#X connect 0 0 4 0;
-#X connect 0 1 4 1;
-#X connect 2 0 4 0;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 165 323 pd flash-time;
-#N canvas 0 0 306 317 flash-time 0;
-#X obj 96 521 outlet;
-#X obj 162 230 t b f;
-#X obj 96 268 +;
-#X obj 96 293 t b f;
-#X obj 96 324 +;
-#X obj 19 208 * -65536;
-#X obj 96 208 * -256;
-#X obj 162 208 * -1;
-#X obj 96 355 - 1;
-#X obj 96 385 list prepend 0;
-#X obj 115 456 t b a;
-#X obj 104 124 vradio 15 1 0 2 empty empty empty 0 -8 0 10 -262144
--1 -1 0;
-#X text 120 120 1.bg;
-#X obj 103 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-r empty 0 -8 0 10 -262144
--258113 -1 0 256;
-#X obj 133 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-g empty 0 -8 0 10 -262144
--13381 -1 0 256;
-#X obj 163 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-b empty 0 -8 0 10 -262144
--4160 -1 0 256;
-#X text 120 137 2.label;
-#X obj 96 410 route 0 1;
-#X obj 96 497 pack 0 0;
-#X connect 1 0 2 0;
-#X connect 1 1 2 1;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 3 1 4 1;
-#X connect 4 0 8 0;
-#X connect 5 0 4 0;
-#X connect 6 0 2 0;
-#X connect 7 0 1 0;
-#X connect 8 0 9 0;
-#X connect 9 0 17 0;
-#X connect 10 0 18 0;
-#X connect 10 1 18 1;
-#X connect 11 0 9 1;
-#X connect 13 0 5 0;
-#X connect 14 0 6 0;
-#X connect 15 0 7 0;
+#N canvas 0 22 500 292 10;
+#X obj 1 1 cnv 15 300 60 foo10_snd foo10_rcv my_canvas=cnv 63 37 0
+17 -257472 -355 0;
+#X text 4 232 (c) musil@iem.kug.ac.at;
+#X text 46 245 IEM KUG;
+#N canvas 219 100 699 530 edit 0;
+#X obj 39 226 f;
+#X msg 17 205 bang;
+#X floatatom 55 204 3 63 88 0 - - -;
+#X floatatom 90 226 3 0 37 0 - - -;
+#X obj 39 249 pack 0 0;
+#X text 117 226 y-label;
+#X text 83 204 x-label;
+#X obj 297 281 f;
+#X msg 275 260 bang;
+#X floatatom 313 259 3 -10 10 0 - - -;
+#X floatatom 348 281 3 -10 10 0 - - -;
+#X obj 297 304 pack 0 0;
+#X obj 309 396 f;
+#X msg 287 375 bang;
+#X floatatom 325 374 3 20 60 0 - - -;
+#X floatatom 360 396 3 150 200 0 - - -;
+#X obj 309 419 pack 0 0;
+#X text 341 259 x-delta;
+#X text 375 281 y-delta;
+#X text 353 374 x-position;
+#X text 387 396 y-position;
+#X obj 59 341 f;
+#X msg 37 320 bang;
+#X floatatom 75 319 3 0 2 0 - - -;
+#X floatatom 110 341 3 4 36 0 - - -;
+#X obj 59 364 pack 0 0;
+#X text 103 319 font;
+#X text 139 341 height;
+#X floatatom 275 183 3 2 20 0 - - -;
+#X msg 52 137 \; foo10_rcv color \$1 \$2;
+#X msg 39 274 \; foo10_rcv label_pos \$1 \$2;
+#X msg 59 390 \; foo10_rcv label_font \$1 \$2;
+#X msg 36 430 \; foo10_rcv label blabla;
+#X msg 36 466 \; foo10_rcv label my_canvas;
+#X msg 309 444 \; foo10_rcv pos \$1 \$2;
+#X msg 297 329 \; foo10_rcv delta \$1 \$2;
+#X obj 505 234 f;
+#X msg 483 213 bang;
+#X floatatom 521 212 5 100 1000 0 - - -;
+#X floatatom 556 234 4 50 500 0 - - -;
+#X obj 505 257 pack 0 0;
+#X text 566 212 width;
+#X text 594 236 height;
+#X msg 505 282 \; foo10_rcv vis_size \$1 \$2;
+#X msg 275 211 \; foo10_rcv size \$1;
+#X text 305 183 selectable size;
+#X msg 483 156 \; foo10a_rcv receive foo10_rcv;
+#X msg 483 119 \; foo10_rcv receive foo10a_rcv;
+#X msg 482 29 \; foo10_rcv send foo10a_snd;
+#X msg 482 67 \; foo10_rcv send foo10_snd;
+#X msg 509 372 \; foo10_rcv get_pos;
+#X obj 510 407 r foo10_snd;
+#X obj 510 428 unpack 0 0;
+#X floatatom 510 453 4 0 0 0 - - -;
+#X floatatom 575 452 4 0 0 0 - - -;
+#X text 490 452 x=;
+#X text 557 452 y=;
+#X obj 52 79 f;
+#X msg 29 31 bang;
+#X floatatom 68 29 3 0 29 0 - - -;
+#X floatatom 103 47 3 0 29 0 - - -;
+#X text 96 29 background;
+#X text 131 48 label-color;
+#X msg 290 25 back;
+#X msg 290 49 label;
+#X msg 252 25 bang;
+#N canvas 15 207 606 448 RGB_____________ 0;
+#X obj 97 56 inlet;
+#X obj 262 53 inlet;
+#X obj 339 55 inlet;
+#X obj 405 56 inlet;
+#X obj 97 270 bang;
+#X msg 77 295 0;
+#X msg 104 295 1;
+#X obj 146 268 bang;
+#X msg 132 295 0;
+#X msg 160 295 1;
+#X obj 265 313 spigot;
+#X obj 312 313 spigot;
+#X obj 249 385 outlet;
+#X text 93 33 select;
+#X text 267 28 red;
+#X text 337 30 green;
+#X text 409 30 blue;
+#X obj 405 102 t b f;
+#X obj 339 160 +;
+#X obj 339 185 t b f;
+#X obj 339 216 +;
+#X obj 296 385 outlet;
+#X obj 28 180 loadbang;
+#X obj 296 361 f;
+#X obj 249 361 f;
+#X obj 262 79 * -65536;
+#X obj 339 80 * -256;
+#X obj 405 80 * -1;
+#X obj 339 247 - 1;
+#X obj 97 135 route back label bang;
+#X obj 235 168 t b b b;
+#X connect 0 0 29 0;
+#X connect 1 0 25 0;
+#X connect 2 0 26 0;
+#X connect 3 0 27 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 11 1;
+#X connect 6 0 10 1;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 10 1;
+#X connect 9 0 11 1;
+#X connect 10 0 24 1;
+#X connect 11 0 23 1;
#X connect 17 0 18 0;
-#X connect 17 1 10 0;
-#X connect 18 0 0 0;
-#X coords 0 -1 1 1 102 58 2 100 100;
-#X restore 265 323 pd flash-time;
-#X obj 165 534 list;
-#X obj 165 483 bng 20 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X text 214 325 1.bg;
-#X text 61 482 1.x-position;
-#X text 61 504 2.y-position;
-#X text 244 482 1.x-delta;
-#X text 244 504 2.y-delta;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-xpos empty 0
--8 0 12 -262144 -1 -1 310 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-ypos empty 0
--8 0 12 -262144 -1 -1 500 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 13 483 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -20 20 0 0 \$0-dummy \$0-xdelta empty 0 -8
-0 12 -262144 -1 -1 0 256;
-#X obj 103 124 nbx 3 14 -20 20 0 0 \$0-dummy \$0-ydelta empty 0 -8
-0 12 -262144 -1 -1 0 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 194 483 pd flash-time;
-#X msg 27 322 get_pos;
-#X obj 27 347 s cnv_rcv;
-#X obj 165 433 s cnv_rcv;
-#X obj 13 583 s cnv_rcv;
-#X obj 165 583 s cnv_rcv;
-#X obj 276 270 s cnv_rcv;
-#X obj 134 270 s cnv_rcv;
-#X obj 13 270 s cnv_rcv;
-#X text 214 345 2.label;
-#N canvas 375 166 157 260 init 0;
-#X obj 16 11 loadbang;
-#X obj 16 42 f \$0;
-#X msg 16 72 \; \$1-width 100 \; \$1-height 60 \; \$1-xpos 310 \; \$1-ypos
-500 \; \$1-xlabel 20 \; \$1-ylabel 12 \; \$1-dim 15 \; \$1-font 0 \;
-\$1-font-size 14 \; \$1-bg 10 \; \$1-label 12;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X restore 265 408 pd init;
-#X obj 310 500 cnv 15 100 60 cnv_snd cnv_rcv my_canvas 20 12 0 14 -233017
--33289 0;
-#X obj 27 370 r cnv_snd;
-#X msg 165 408 color \$1 \$2;
-#X obj 27 421 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12
--262144 -1 -1 0 256;
-#X obj 90 421 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12
--262144 -1 -1 0 256;
-#X msg 25 245 label my_canvas;
-#X msg 204 109 send cnv_snd;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [cnv] Changing Properties through Messages;
-#X text 12 51 size;
-#X text 12 38 selectable;
-#X text 14 417 x;
-#X text 76 418 y;
-#X connect 0 0 61 0;
-#X connect 0 1 62 0;
-#X connect 2 0 4 0;
-#X connect 3 0 2 0;
-#X connect 5 0 9 0;
-#X connect 9 0 10 0;
-#X connect 15 0 13 0;
-#X connect 16 0 14 0;
-#X connect 18 0 17 0;
-#X connect 22 0 55 0;
-#X connect 23 0 54 0;
-#X connect 24 0 53 0;
-#X connect 29 0 23 0;
+#X connect 17 1 18 1;
+#X connect 18 0 19 0;
+#X connect 19 0 20 0;
+#X connect 19 1 20 1;
+#X connect 20 0 28 0;
+#X connect 22 0 6 0;
+#X connect 23 0 21 0;
+#X connect 24 0 12 0;
+#X connect 25 0 20 0;
+#X connect 26 0 18 0;
+#X connect 27 0 17 0;
+#X connect 28 0 11 0;
+#X connect 28 0 10 0;
+#X connect 29 0 4 0;
+#X connect 29 1 7 0;
+#X connect 29 2 30 0;
#X connect 30 0 24 0;
-#X connect 33 0 51 0;
-#X connect 34 0 52 0;
-#X connect 37 0 60 0;
-#X connect 38 0 60 0;
-#X connect 39 0 34 0;
-#X connect 40 0 39 0;
-#X connect 46 0 33 0;
-#X connect 47 0 39 1;
-#X connect 48 0 49 0;
-#X connect 59 0 0 0;
-#X connect 60 0 50 0;
-#X connect 63 0 55 0;
-#X connect 64 0 13 0;
-#X restore 170 407 pd Changing_GUI_Properties;
-#N canvas 103 143 428 369 canvas-creation-arguments 0;
-#X msg 23 43 canvas: cnv selectableSize xSize ySize sendName recieveName
-Label labelXOff labelYOff Font# fontSize bgColor lblColor 0;
-#X text 20 80 Canvas can be called with 13 creation arguments. These
-are not "optional" - all parameters must be filled or the canvas will
-not instantiate correctly.;
-#X text 20 125 The function of the final "0" is unknown to me (it is
-found in the textual entry for a canvas object in a .pd file) but can
-be safely left off without ill effects.;
-#X text 20 167 For example \, click the msg-box to dynamically create
-a cnv:;
-#X obj 23 237 s pd-canvas-creation-arguments;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [cnv] Creation Arguments and Dynamic Patching;
-#X msg 23 195 obj 110 260 cnv 15 200 100 myCanvas myCanvasR Alcyone
-75 12 2 14 -261441 12;
-#X connect 7 0 4 0;
-#X restore 171 518 pd canvas-creation-arguments;
-#X text 168 463 - creating a [cnv] without any arguments will set default
-values for all gui-properties. See the subpatch below to learn how
-to dynamically instantiate a [cnv] object with custom properties:;
-#X floatatom 338 318 4 0 0 0 - - -;
-#X floatatom 382 318 4 0 0 0 - - -;
-#X text 349 334 x;
-#X text 393 334 y;
-#X obj 435 177 metro 100;
-#X obj 435 157 tgl 15 1 empty empty empty 20 8 0 10 -262144 -1 -1 1
+#X connect 30 1 23 0;
+#X connect 30 2 28 0;
+#X restore 290 86 pd RGB_____________;
+#X floatatom 332 55 3 0 255 0 - - -;
+#X floatatom 375 55 3 0 255 0 - - -;
+#X floatatom 418 56 3 0 255 0 - - -;
+#X text 39 3 preset-colors;
+#X text 301 0 RGB-colors;
+#X text 332 37 red;
+#X text 368 36 green;
+#X text 416 36 blue;
+#X obj 52 104 pack 0 0;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 1;
+#X connect 3 0 4 1;
+#X connect 4 0 30 0;
+#X connect 7 0 11 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 1;
+#X connect 10 0 11 1;
+#X connect 11 0 35 0;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 1;
+#X connect 15 0 16 1;
+#X connect 16 0 34 0;
+#X connect 21 0 25 0;
+#X connect 22 0 21 0;
+#X connect 23 0 21 1;
+#X connect 24 0 25 1;
+#X connect 25 0 31 0;
+#X connect 28 0 44 0;
+#X connect 36 0 40 0;
+#X connect 37 0 36 0;
+#X connect 38 0 36 1;
+#X connect 39 0 40 1;
+#X connect 40 0 43 0;
+#X connect 51 0 52 0;
+#X connect 52 0 53 0;
+#X connect 52 1 54 0;
+#X connect 57 0 75 0;
+#X connect 58 0 57 0;
+#X connect 59 0 57 1;
+#X connect 60 0 75 1;
+#X connect 63 0 66 0;
+#X connect 64 0 66 0;
+#X connect 65 0 66 0;
+#X connect 66 0 75 0;
+#X connect 66 1 75 1;
+#X connect 67 0 66 1;
+#X connect 68 0 66 2;
+#X connect 69 0 66 3;
+#X connect 75 0 29 0;
+#X restore 315 20 pd edit;
+#X floatatom 110 193 4 0 0 0 - - -;
+#X floatatom 147 193 4 0 0 0 - - -;
+#X text 121 209 x;
+#X text 158 209 y;
+#X obj 7 161 metro 100;
+#X obj 33 141 tgl 15 1 empty empty empty 20 8 0 10 -262144 -1 -1 1
1;
-#X obj 338 270 r from_K1;
-#X floatatom 435 318 4 0 0 0 - - -;
-#X floatatom 479 318 4 0 0 0 - - -;
-#X text 445 334 x;
-#X text 490 334 y;
-#X obj 435 270 r from_K2;
-#N canvas 7 299 313 315 room 0;
-#X obj 6 7 cnv 15 300 300 empty empty type...ctrl+e 100 140 2 17 -33289
+#X obj 110 145 r from_K1;
+#X floatatom 188 194 4 0 0 0 - - -;
+#X floatatom 225 194 4 0 0 0 - - -;
+#X text 198 210 x;
+#X text 236 210 y;
+#X obj 188 146 r from_K2;
+#X msg 7 185 \; to_K get_pos;
+#N canvas 0 296 395 395 room 0;
+#X obj 1 1 cnv 1 400 400 empty empty type...ctrl+e 150 140 2 17 -33289
-24198 0;
-#X obj 26 27 cnv 1 1 264 empty empty move_K1_and_K2 65 160 2 17 -166441
+#X obj 15 16 cnv 1 1 360 empty empty move_K1_and_K2 115 160 2 17 -166441
-24198 0;
-#X obj 287 30 cnv 1 1 261 empty empty empty 20 12 2 20 -99865 -66577
+#X obj 374 15 cnv 1 1 360 empty empty empty 20 12 2 20 -99865 -66577
0;
-#X obj 27 27 cnv 1 260 1 empty empty empty 20 12 2 20 -166441 -66577
+#X obj 15 15 cnv 1 360 1 empty empty empty 20 12 2 20 -166441 -66577
0;
-#X obj 28 291 cnv 1 260 1 empty empty empty 20 12 2 20 -99865 -66577
+#X obj 17 375 cnv 1 358 1 empty empty empty 20 12 2 20 -99865 -66577
0;
-#X obj 38 40 cnv 25 25 25 from_K1 to_K K1 1 13 2 14 -261681 -123526
+#X obj 23 22 cnv 25 25 25 from_K1 to_K K1 1 13 2 14 -261681 -123526
0;
-#X obj 251 255 cnv 25 25 25 from_K2 to_K K2 1 13 2 14 -225280 -1109
+#X obj 342 342 cnv 25 25 25 from_K2 to_K K2 1 13 2 14 -225280 -1109
0;
-#X restore 97 171 pd room;
-#X obj 338 294 unpack;
-#X obj 435 294 unpack;
-#X text 17 147 Click the subwindow below to use a cnv as a control
-surface:;
-#X obj 20 61 cnv 15 100 60 empty empty label 20 12 0 14 -233017 -66577
+#X restore 307 147 pd room;
+#X obj 110 169 unpack;
+#X obj 188 170 unpack;
+#X text 51 92 to modify geometry \, colors \, etc.;
+#X obj 2 115 cnv 1 470 1 empty empty empty 20 12 2 20 -261681 -66577
0;
-#X text 128 58 Colored rectangle with a label. Right-click in the top-left
-corner of the gray rectangle to the left and click "properties" to
-change the object's appearance.;
-#X text 127 110 The blue rectangle at the top of each help patch is
-a [cnv] \, as are the horizontal dividers below.;
-#X text 98 463 13;
-#X text 257 564 IEM KUG;
-#X text 232 576 graz \, austria 2002;
-#X msg 435 199 get_pos;
-#X obj 435 221 send to_K;
-#X text 94 197 To get a cnv position \, send it a "get_pos" message
-->;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#N canvas 404 60 483 507 (subpatch) 0;
-#X msg 144 296 bang;
-#X msg 144 321 1 30;
-#X obj 144 409 line~;
-#X obj 202 301 del 30;
-#X obj 61 433 *~;
-#X obj 62 485 dac~;
-#X obj 62 359 osc~ 880;
-#X obj 62 403 clip~ -1 1;
-#X obj 35 220 list split 1;
-#X obj 15 311 list;
-#X obj 35 244 t b a;
-#X obj 62 334 mtof;
-#X obj 62 457 *~ 0.07;
-#X obj 207 128 metro 50;
-#X obj 207 202 s \$0-cnv;
-#X obj 207 106 0;
-#X obj 207 84 del 3000;
-#X obj 310 170 f;
-#X obj 342 170 + 1;
-#X obj 35 12 r \$0-bng;
-#X obj 106 14 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 310 197 div 13;
-#X msg 310 314 color \$1 0;
-#X obj 242 105 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 279 86 sel 0;
-#X obj 279 107 -1;
-#X obj 279 130 t a;
-#X obj 207 155 f -1;
-#X msg 207 180 delta 0 \$1;
-#X obj 35 44 spigot 1;
-#X obj 35 76 t a b;
-#X obj 96 55 0;
-#X obj 130 55 1;
-#X obj 310 220 sel 3 4;
-#X msg 371 246 5 \$1;
-#X obj 371 268 -;
-#X msg 310 246 1;
-#X obj 340 245 f 2;
-#X obj 383 170 sel 1;
-#X msg 377 198 0;
-#X msg 411 199 2;
-#X obj 62 311 + 68;
-#X obj 15 284 del 170;
-#X text 167 14 IT'S A SECRET TO EVERYBODY.;
-#X obj 100 100 cnv 15 15 15 empty empty empty 20 12 0 14 -262144 -66577
-0;
-#X obj 56 106 loadbang;
-#X obj 35 174 list;
-#X obj 114 217 s \$0-randomize;
-#X obj 71 149 r \$0-new-secret;
-#X msg 56 128 7 1 0 8 12 16;
-#X obj 35 197 list prepend 11 10;
-#X obj 62 381 *~ 1.4;
-#X msg 202 323 0 400;
-#X connect 0 0 1 0;
-#X connect 0 0 3 0;
-#X connect 1 0 2 0;
-#X connect 2 0 4 1;
-#X connect 3 0 52 0;
-#X connect 4 0 12 0;
-#X connect 6 0 51 0;
-#X connect 7 0 4 0;
-#X connect 8 0 10 0;
-#X connect 8 1 9 1;
+#X text 40 78 of the light-blue;
+#X text 166 78 my_canvas-object \,;
+#X text 5 64 click the properties-dialog on the top-left corner;
+#X obj 361 195 r foo10_rcv;
+#X obj 403 215 s ggg;
+#X text 21 257 graz \, austria 2002;
+#X obj 187 236 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X text 313 46 For cnv's creation arguments:;
+#N canvas 881 440 467 369 canvas-creation-arguments 0;
+#X msg 7 12 canvas: cnv selectableSize xSize ySize sendName recieveName
+Label labelXOff labelYOff Font# fontSize bgColor lblColor 0;
+#X text 9 169 For example \, a canvas called thusly:;
+#X obj 9 248 cnv 15 200 100 myCanvas myCanvasR Canvas_Demo 20 12 2
+14 -62784 -195568 0;
+#X text 9 226 will result in this:;
+#X text 8 59 Canvas can be called with 13 creation arguments. These
+are not "optional" - all parameters must be filled or the canvas will
+not instantiate correctly.;
+#X text 10 114 The function of the final "0" is unknown to me (it is
+found in the textual entry for a canvas object in a .pd file) but can
+be safely left off without ill effects.;
+#X msg 9 191 cnv 15 200 100 myCanvas myCanvasR Canvas_Demo 20 12 2
+14 18 20;
+#X restore 314 63 pd canvas-creation-arguments;
+#X text 172 257 updated for Pd version 0.35;
+#X connect 8 0 16 0;
#X connect 9 0 8 0;
-#X connect 10 0 42 0;
-#X connect 10 1 0 0;
-#X connect 10 1 41 0;
-#X connect 11 0 6 0;
-#X connect 12 0 5 0;
-#X connect 12 0 5 1;
-#X connect 13 0 17 0;
-#X connect 13 0 27 0;
-#X connect 15 0 13 0;
-#X connect 15 0 17 1;
-#X connect 16 0 15 0;
-#X connect 16 0 23 0;
-#X connect 16 0 32 0;
-#X connect 17 0 18 0;
-#X connect 17 0 21 0;
-#X connect 18 0 17 1;
-#X connect 19 0 29 0;
-#X connect 20 0 29 0;
-#X connect 21 0 33 0;
-#X connect 22 0 14 0;
-#X connect 23 0 24 0;
-#X connect 23 0 38 0;
-#X connect 24 0 25 0;
-#X connect 24 1 26 0;
+#X connect 10 0 18 0;
+#X connect 15 0 19 0;
+#X connect 18 0 4 0;
+#X connect 18 1 5 0;
+#X connect 19 0 11 0;
+#X connect 19 1 12 0;
#X connect 25 0 26 0;
-#X connect 26 0 27 1;
-#X connect 27 0 28 0;
-#X connect 28 0 14 0;
-#X connect 29 0 30 0;
-#X connect 30 0 13 0;
-#X connect 30 0 16 0;
-#X connect 30 0 46 0;
-#X connect 30 1 31 0;
-#X connect 31 0 29 1;
-#X connect 32 0 29 1;
-#X connect 33 0 36 0;
-#X connect 33 1 37 0;
-#X connect 33 2 34 0;
-#X connect 34 0 35 0;
-#X connect 35 0 22 0;
-#X connect 36 0 22 0;
-#X connect 37 0 22 0;
-#X connect 38 0 39 0;
-#X connect 38 1 40 0;
-#X connect 39 0 37 1;
-#X connect 40 0 37 1;
-#X connect 41 0 11 0;
-#X connect 42 0 9 0;
-#X connect 45 0 49 0;
-#X connect 46 0 47 0;
-#X connect 46 0 50 0;
-#X connect 48 0 46 1;
-#X connect 49 0 46 1;
-#X connect 50 0 8 0;
-#X connect 51 0 7 0;
-#X connect 52 0 2 0;
-#X coords 0 -1 1 1 15 15 2 100 100;
-#X restore 11 336 pd;
-#X obj 219 553 bng 14 250 50 0 \$0-bng empty empty 4 7 0 12 -262144
--262144 -1;
-#X text 66 275 You can also use a white [cnv] to;
-#X text 66 290 conceal parts of a patch (use;
-#X text 66 305 with care);
-#N canvas 92 49 450 511 let's-play-pong! 0;
-#X obj 138 138 cnv 15 100 25 empty \$0-score Score:0 5 12 0 14 -233017
--66577 0;
-#X obj 14 281 cnv 15 5 60 \$0-ps \$0-pr empty 20 12 0 14 -1 -66577
-0;
-#X obj 257 19 key;
-#X msg 257 112 delta 0 \$1;
-#X msg 257 87 -5;
-#X obj 68 48 tgl 15 0 empty empty Go! 17 7 0 10 -4034 -1 -1 0 1;
-#X obj 337 158 r \$0-ps;
-#X obj 337 180 unpack;
-#X obj 370 202 v py;
-#X obj 68 117 t b b b;
-#X msg 107 169 \; \$1-br get_pos \; \$1-pr get_pos \;;
-#X obj 425 6 cnv 5 5 500 empty empty empty 20 12 0 14 -1 -66577 0;
-#X obj 257 158 r \$0-bs;
-#X obj 290 202 v by;
-#X obj 68 447 pack;
-#X msg 145 340 1;
-#X msg 178 340 -1;
-#X obj 68 491 s \$0-br;
-#X obj 87 297 sel 0 1 2 3 4 5;
-#X msg 101 361 1;
-#N canvas 574 158 450 300 drift 0;
-#X obj 55 40 inlet;
-#X obj 136 40 inlet;
-#X obj 205 45 inlet;
-#X obj 55 117 f;
-#X obj 93 142 mod;
-#X obj 55 164 sel 1;
-#X obj 55 231 f 1;
-#X obj 55 266 outlet;
-#X msg 90 231 0;
-#X obj 136 61 b;
-#X obj 136 88 random 8;
-#X obj 136 115 sel 0;
-#X msg 130 137 1e+37;
-#X obj 205 155 t a;
-#X floatatom 13 147 5 0 0 0 - - -;
-#X obj 93 118 + 1;
-#X connect 0 0 3 0;
-#X connect 1 0 9 0;
-#X connect 2 0 13 0;
-#X connect 3 0 5 0;
-#X connect 3 0 14 0;
-#X connect 3 0 15 0;
-#X connect 4 0 3 1;
-#X connect 5 0 6 0;
-#X connect 5 1 8 0;
-#X connect 6 0 7 0;
-#X connect 8 0 7 0;
-#X connect 9 0 10 0;
-#X connect 10 0 11 0;
-#X connect 11 0 12 0;
-#X connect 11 1 4 1;
-#X connect 12 0 4 1;
-#X connect 13 0 6 1;
-#X connect 15 0 4 0;
-#X restore 95 427 pd drift;
-#X obj 68 405 t a b;
-#X obj 68 383 f 1;
-#X msg 134 18 10 SLOW;
-#X msg 134 35 7 MEDIUM;
-#X obj 257 43 spigot;
-#X obj 77 71 s \$0-k;
-#X obj 310 10 r \$0-k;
-#N canvas 0 0 450 300 score 0;
-#X obj 84 59 inlet;
-#X obj 84 113 f;
-#X obj 120 113 + 1;
-#X obj 84 86 b;
-#X msg 84 152 label Score:\$1;
-#X obj 84 179 s \$0-score;
-#X obj 165 24 r die;
-#X obj 165 51 sel 0;
-#X obj 165 78 0;
-#X obj 210 92 loadbang;
-#X msg 210 114 0;
-#X connect 0 0 3 0;
-#X connect 1 0 2 0;
-#X connect 1 0 4 0;
-#X connect 2 0 1 1;
-#X connect 3 0 1 0;
-#X connect 4 0 5 0;
-#X connect 6 0 7 0;
-#X connect 7 0 8 0;
-#X connect 8 0 1 1;
-#X connect 9 0 10 0;
-#X connect 10 0 4 0;
-#X restore 101 386 pd score;
-#X obj 68 95 metro 10;
-#N canvas 0 0 450 300 once 0;
-#X obj 26 21 inlet;
-#X obj 26 102 outlet;
-#X obj 26 75 t a b;
-#X msg 89 48 0;
-#X obj 26 48 spigot 1;
-#X connect 0 0 4 0;
-#X connect 2 0 1 0;
-#X connect 2 1 3 0;
-#X connect 3 0 4 1;
-#X connect 4 0 2 0;
-#X restore 310 32 pd once;
-#X obj 257 65 select 97 122 32;
-#X msg 336 89 1;
-#X obj 87 277 t a;
-#X obj 147 92 cnv 15 100 40 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X text 147 89 a = up \; z = down \; <space> = replay;
-#X msg 134 69 1.5 WTF;
-#X text 216 378 0 - die at left wall \; 1 - richochet off left wall
-\; 2 - die at right wall (not yet) \; 3 - richochet off right wall
-\; 4 - richochet off top \; 5 - richochet of bottom \;;
-#X obj 87 225 expr if(bx<=20 \, py<=by && py+60>=by \, -1) \; if (bx>=415
-\, 3 \, -1) \; if (by<=0 \, 4 \, if (by>=500 \, 5 \, -1));
-#X obj 68 18 r play;
-#X obj 336 111 s play;
-#X msg 87 319 0;
-#X obj 318 297 cnv 10 10 10 \$0-bs \$0-br empty 20 12 0 14 -1 -66577
-0;
-#X obj 257 202 v bx;
-#X obj 337 202 v px;
-#X obj 257 180 unpack;
-#X obj 257 134 s \$0-pr;
-#X msg 294 87 5;
-#X msg 134 52 4 FAST;
-#X obj 107 139 f \$0;
-#X msg 130 361 -1;
-#X msg 68 469 delta \$1 \$2;
-#X obj 87 341 s play;
-#N canvas 528 152 450 386 sfx 0;
-#X obj 21 169 noise~;
-#X obj 22 201 *~;
-#X obj 102 176 vline~;
-#X obj 23 249 +~;
-#X obj 174 146 delread~ \$0-b;
-#X obj 36 278 delwrite~ \$0-b 500;
-#X obj 22 302 *~ 0.1;
-#X obj 23 330 dac~;
-#X obj 135 120 del;
-#X msg 102 120 1;
-#X msg 135 145 0;
-#X obj 174 120 * 10;
-#X obj 175 176 *~ 0.8;
-#X msg 174 81 2;
-#X obj 117 9 inlet;
-#X obj 174 54 change;
-#X obj 117 31 sel -1 0 2;
-#X connect 0 0 1 0;
-#X connect 1 0 3 0;
-#X connect 2 0 1 1;
-#X connect 3 0 5 0;
-#X connect 3 0 6 0;
-#X connect 4 0 12 0;
-#X connect 6 0 7 0;
-#X connect 6 0 7 1;
-#X connect 8 0 10 0;
-#X connect 9 0 2 0;
-#X connect 10 0 2 0;
-#X connect 11 0 4 0;
-#X connect 12 0 3 1;
-#X connect 13 0 9 0;
-#X connect 13 0 8 0;
-#X connect 13 0 11 0;
-#X connect 14 0 16 0;
-#X connect 15 0 13 0;
-#X connect 16 3 15 0;
-#X restore 211 294 pd sfx;
-#X connect 2 0 25 0;
-#X connect 3 0 46 0;
-#X connect 4 0 3 0;
-#X connect 5 0 26 0;
-#X connect 5 0 29 0;
-#X connect 6 0 7 0;
-#X connect 7 0 44 0;
-#X connect 7 1 8 0;
-#X connect 9 0 22 0;
-#X connect 9 1 38 0;
-#X connect 9 2 49 0;
-#X connect 12 0 45 0;
-#X connect 14 0 51 0;
-#X connect 15 0 20 2;
-#X connect 16 0 20 2;
-#X connect 18 0 41 0;
-#X connect 18 1 19 0;
-#X connect 18 2 41 0;
-#X connect 18 3 50 0;
-#X connect 18 4 15 0;
-#X connect 18 5 16 0;
-#X connect 19 0 20 1;
-#X connect 19 0 22 1;
-#X connect 19 0 28 0;
-#X connect 20 0 14 1;
-#X connect 21 0 14 0;
-#X connect 21 1 20 0;
-#X connect 22 0 21 0;
-#X connect 23 0 29 1;
-#X connect 24 0 29 1;
-#X connect 25 0 31 0;
-#X connect 27 0 30 0;
-#X connect 29 0 9 0;
-#X connect 30 0 25 1;
-#X connect 31 0 4 0;
-#X connect 31 1 47 0;
-#X connect 31 2 32 0;
-#X connect 32 0 40 0;
-#X connect 33 0 18 0;
-#X connect 33 0 53 0;
-#X connect 36 0 29 1;
-#X connect 38 0 33 0;
-#X connect 38 1 33 0;
-#X connect 38 2 33 0;
-#X connect 39 0 5 0;
-#X connect 41 0 52 0;
-#X connect 45 0 43 0;
-#X connect 45 1 13 0;
-#X connect 47 0 3 0;
-#X connect 48 0 29 1;
-#X connect 49 0 10 0;
-#X connect 50 0 20 1;
-#X connect 50 0 22 1;
-#X connect 51 0 17 0;
-#X restore 136 312 pd let's-play-pong!;
-#X obj 60 272 cnv 15 210 65 empty \$0-cnv empty 20 12 0 14 -262144
--262144 0;
-#X text 235 551 musil@iem.kug.ac.at;
-#X text 221 550 c;
-#X connect 21 0 39 0;
-#X connect 22 0 21 0;
-#X connect 23 0 30 0;
-#X connect 28 0 31 0;
-#X connect 30 0 17 0;
-#X connect 30 1 18 0;
-#X connect 31 0 24 0;
-#X connect 31 1 25 0;
-#X connect 39 0 40 0;
diff --git a/externals/vanilla/namecanvas-help.pd b/externals/vanilla/namecanvas-help.pd
index 80ab7bb2..63f1119e 100644
--- a/externals/vanilla/namecanvas-help.pd
+++ b/externals/vanilla/namecanvas-help.pd
@@ -1,54 +1,8 @@
-#N canvas 0 0 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 namecanvas 3 12
-0 18 -204280 -1 0;
-#X obj 0 450 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 51 245 494 344 META 0;
-#X text 12 65 LIBRARY internal;
-#X text 12 105 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 85 AUTHOR Miller Puckette;
-#X text 12 145 HELP_PATCH_AUTHORS Updated for Pd version 0.40. Jonathan
-Wilkes revised the patch to conform to the PDDP template for Pd version
-0.42.;
-#X text 12 45 DESCRIPTION attach a canvas to a name;
-#X text 12 5 KEYWORDS control canvas_op;
-#X text 12 125 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 478 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 505 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 568 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#N canvas 102 481 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 text 8 2 [namecanvas] Related Objects;
-#X obj 19 43 pddp/helplink iemguts/sendcanvas;
-#X restore 102 597 pd Related_objects;
-#X obj 455 3 namecanvas;
-#X obj 425 20 pddp/pddplink http://wiki.puredata.info/en/namecanvas
--text pdpedia: namecanvas;
-#X obj 120 153 namecanvas \$0-bonzo;
-#X obj 120 210 s \$0-bonzo;
-#X text 98 454 (none);
-#X text 98 482 (none);
-#X obj 120 366 s pd-namecanvas-help.pd;
-#X text 11 23 attach a canvas to a name;
-#X text 168 523 - sets the name to associate with this canvas. Any
-messages sent to this name will be forwarded to the canvas containing
-this [namecanvas] object.;
-#X msg 120 186 msg 50 50 Hi there. This works locally.;
-#X msg 120 338 msg 50 70 This works globally.;
-#X text 78 523 1) symbol atom;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X text 120 240 If you open another instance of this help patch \,
-you'll see that clicking the message box above will create an object
-on the canvas where you click.;
-#X text 119 294 The following is similar \, but it will create an object
-in each "namecanvas-help.pd" patch that you have open:;
-#X connect 17 0 11 0;
-#X connect 18 0 14 0;
+#N canvas 217 14 532 261 12;
+#X obj 66 15 namecanvas;
+#X text 169 15 - ATTACH THIS CANVAS TO A NAME;
+#X obj 204 107 namecanvas bonzo;
+#X msg 205 64 \; bonzo msg 50 50 hi there;
+#X text 44 153 This is obsolete. Instead \, you can just say:;
+#X msg 79 180 \; pd-namecanvas-help.pd msg 50 70 this is better;
+#X text 252 224 updated for Pd version 0.40.;
diff --git a/externals/vanilla/netreceive-help.pd b/externals/vanilla/netreceive-help.pd
index 789d9b84..b4bd3f9c 100644
--- a/externals/vanilla/netreceive-help.pd
+++ b/externals/vanilla/netreceive-help.pd
@@ -1,93 +1,23 @@
-#N canvas 0 0 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 netreceive 3 12
-0 18 -204280 -1 0;
-#X obj 0 331 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 46 242 494 344 META 0;
-#X text 12 105 LIBRARY internal;
-#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 125 AUTHOR Miller Puckette;
-#X text 12 185 HELP_PATCH_AUTHORS Updated for Pd v0.41. Revised by
-Jonathan Wilkes to conform to the PDDP template for Pd version 0.42.
-;
-#X text 12 5 KEYWORDS control network;
-#X text 12 45 DESCRIPTION listen for incoming messages from a network
-;
-#X text 12 65 OUTLET_0 anything;
-#X text 12 85 OUTLET_1 float;
-#X text 12 165 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 358 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 431 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 558 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#N canvas 54 478 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 text 8 2 [netreceive] Related Objects;
-#X obj 22 43 netsend;
-#X restore 102 598 pd Related_objects;
-#X obj 78 367 cnv 17 3 25 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 80 451 1) float;
-#X obj 463 3 netreceive;
-#X obj 430 20 pddp/pddplink http://wiki.puredata.info/en/netreceive
--text pdpedia: netreceive;
-#X floatatom 226 82 0 0 0 0 - - -;
-#X obj 139 145 netreceive 3001 1;
-#X obj 139 82 print tcp;
-#X obj 139 166 print udp;
-#N canvas 57 331 428 261 About_netreceive 0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [netreceive] More Info;
-#X text 21 38 The [netreceive] object opens a socket for TCP ("stream")
-or UDP ("datagram") network reception on a specified port. If using
-TCP \, an outlet gives you the number of [netsend] objects (or other
-compatible clients) have opened connections here.;
-#X text 20 170 There are some possibilities for intercommunication
-with other programs... see the help for [netsend].;
-#X text 19 104 Incoming network messages appear at the left inlet of
-the [netreceive] object. (They used to be received by [receive] objects
-\, in which case it was up to the sender to select which one). To test
-the object you can send messages from the [netsend] help window.;
-#X text 18 208 SECURITY ALERT: the port that netreceive opens has no
-access restrictions \, so anyone can connect to it and send messages.
-;
-#X restore 102 567 pd About_netreceive;
-#X text 11 23 listen for incoming messages from a network;
-#X text 168 466 - (optional) 0 for TCP \, nonzero for UDP. (Default
-is TCP.);
-#X text 168 451 - (optional) port number.;
-#X text 80 466 2) float;
-#X text 168 481 - if you set the third argument to the word "old" \,
-everything sent to the specified port is received into the global message
-space. This is the original behavior of [netreceive]. This can be VERY
-INSECURE since it gives someone full access to your computer \, allowing
-them to do anything that Pd can via the network.;
-#X text 98 290 Old behavior: [netreceive 4567 0 old] (see argument
-3 below);
-#X text 80 481 3) symbol atom;
-#X text 98 366 anything;
-#X obj 78 403 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 98 402 float;
-#X text 264 60 <- TCP \, port 3000;
-#X text 261 144 <- UDP \, port 3001;
-#X text 98 205 You can send messages from the [netsend] objects in
-the help patch for [netsend].;
-#X text 168 366 - any message received by this [netreceive] object
-will be sent to the left outlet.;
-#X text 98 334 (none);
-#X obj 139 61 netreceive 3000;
-#X text 168 402 - when using TCP \, the [netreceive] object has a right
-inlet which shows the number of open connections.;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X connect 13 0 15 0;
-#X connect 32 0 14 0;
-#X connect 32 1 12 0;
+#N canvas 50 24 682 520 12;
+#X obj 100 323 netreceive 3000;
+#X floatatom 202 353 0 0 0;
+#X obj 100 414 netreceive 3001 1;
+#X text 33 36 The Netreceive object opens a socket for TCP ("stream") or UDP ("datagram") network reception on a specified port. If using TCP \, an outlet gives you the number of Netsend objects (or other compatible clients) have opened connections here.;
+#X text 31 117 Incoming network messages appear on "receive" objects \; it's up to the sender to select which one. Here \, a "receive foo" fields messages sent from the Netsend help window \, q.v.;
+#X text 108 270 first argument: portnumber = 3000;
+#X text 105 291 second argument: 0 or none for TCP \, nonzero for UDP;
+#X text 238 322 <-- TCP \, port 3000;
+#X text 262 413 <-- UDP \, port 3001;
+#X text 236 354 <--- number of open connections;
+#X text 85 12 Netreceive -- listen for incoming messages from network;
+#X text 26 383 incoming messages;
+#X text 203 488 see also:;
+#X obj 289 490 netsend;
+#X obj 100 353 print tcp;
+#X obj 100 442 print udp;
+#X text 425 484 updated for Pd version 0.33;
+#X text 30 207 SECURITY ALERT: don't publish the port number of your netreceive unless you wouldn't mind other people being able to send you messages.;
+#X text 32 168 There are some possibilities for intercommunication with other programs... see the help for "netsend.";
+#X connect 0 0 14 0;
+#X connect 0 1 1 0;
+#X connect 2 0 15 0;
diff --git a/externals/vanilla/netsend-help.pd b/externals/vanilla/netsend-help.pd
index cb80560b..f2eb9bad 100644
--- a/externals/vanilla/netsend-help.pd
+++ b/externals/vanilla/netsend-help.pd
@@ -1,111 +1,55 @@
-#N canvas 0 0 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 netsend 3 12 0 18
--204280 -1 0;
-#X obj 0 348 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 46 242 494 344 META 0;
-#X text 12 105 LIBRARY internal;
-#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 125 AUTHOR Miller Puckette;
-#X text 12 185 HELP_PATCH_AUTHORS Updated for Pd v0.41. Revised by
-Jonathan Wilkes to conform to the PDDP template for Pd version 0.42.
+#N canvas 84 44 866 530 12;
+#X obj 15 425 netsend;
+#X msg 15 263 connect localhost 3000;
+#X msg 24 403 send foo \$1;
+#X floatatom 24 376 0 0 0;
+#X msg 15 344 disconnect;
+#X msg 285 397 send foo \$1;
+#X floatatom 285 370 0 0 0;
+#X msg 268 344 disconnect;
+#X obj 268 422 netsend 1;
+#X msg 268 263 connect localhost 3001;
+#X floatatom 15 452 0 0 0;
+#X floatatom 268 449 0 0 0;
+#X text 359 422 creation argument: 0 or none for TCP \, nonzero for
+UDP;
+#X text 66 242 TCP;
+#X text 343 239 UDP;
+#X text 197 9 Netsend -- send Pd messages over a network;
+#X text 475 261 Connect to "localhost" port 3000/3001;
+#X text 373 345 Close the connection;
+#X text 325 372 Send messages to "foo" on remote machine;
+#X text 10 473 Outlet is nonzero if connection is open \, zero otherwise.
;
-#X text 12 5 KEYWORDS control network;
-#X text 12 45 DESCRIPTION send Pd messages over a network;
-#X text 12 65 INLET_0 connect disconnect send;
-#X text 12 85 OUTLET_0 float;
-#X text 12 165 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 478 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 515 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 558 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#N canvas 54 478 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 text 8 2 [netsend] Related Objects;
-#X restore 102 598 pd Related_objects;
-#X obj 78 357 cnv 17 3 110 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 98 486 float;
-#X obj 78 487 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 11 23 send Pd messages over a network;
-#X obj 445 20 pddp/pddplink http://wiki.puredata.info/en/netsend -text
-pdpedia: netsend;
-#X obj 473 3 netsend;
-#X obj 15 238 netsend;
-#X msg 15 79 connect localhost 3000;
-#X msg 23 213 send foo \$1;
-#X floatatom 23 186 0 0 0 0 - - -;
-#X msg 15 160 disconnect;
-#X msg 186 213 send foo \$1;
-#X floatatom 186 186 0 0 0 0 - - -;
-#X msg 178 160 disconnect;
-#X obj 178 238 netsend 1;
-#X msg 178 79 connect localhost 3001;
-#X floatatom 15 265 0 0 0 0 - - -;
-#X floatatom 178 265 0 0 0 0 - - -;
-#X text 66 58 TCP;
-#X text 253 55 UDP;
-#X text 325 79 Connect to "localhost" port 3000/3001;
-#X text 253 161 Close the connection;
-#X text 215 188 Send messages to "foo" on remote machine;
-#X text 12 294 Outlet is nonzero if connection is open \, zero otherwise.
-;
-#X msg 15 106 connect molloy 3000;
-#X msg 178 106 connect molloy 3001;
-#X msg 15 133 connect bug 3000;
-#X msg 178 133 connect bug 3000;
-#X text 98 356 connect;
-#X text 98 413 disconnect;
-#X text 98 443 send;
-#X text 168 486 - nonzero if the connection is open \, zero otherwise.
-;
-#N canvas 57 331 428 233 About_netsend 0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 20 132 Opt@web.fm has made compatible objects for Max so that
-Pd and Max can intercommunicate: see ftp://fals.ch/pub/pdnets/.;
-#X text 8 2 [netsend] More Info;
-#X text 20 39 The [netsend] object connects to another machine over
-the network for sending TCP ("stream") or UDP ("datagram") messages.
-An outlet reports whether the connection is open or not. A connection
+#X text 87 38 The Netsend object connects to another machine over the
+network for sending TCP ("stream") or UDP ("datagram") messages. An
+outlet reports whether the connection is open or not. A connection
request should specify the name or IP address of the other host and
-the port number. There should be a [netreceive] object on the remote
-host with a matching port number.;
-#X text 20 168 The Linux version of Pd comes with "pdsend" and "pdreceive"
+the port number. There should be a "Netreceive" on the remote host
+with a matching port number.;
+#X obj 409 497 netreceive;
+#X text 318 497 see also:;
+#X text 607 498 updated for Pd version 0.33;
+#X text 87 150 Opt@web.fm has made compatible objects for Max so that
+Pd and Max can intercommunicate: see ftp://fals.ch/pub/pdnets/.;
+#X text 87 186 The Linux version of Pd comes with "pdsend" and "pdreceive"
standalone programs. These haven't been tested in Windows yet (but
-the source is included in the Pd distribution).;
-#X restore 102 567 pd About_netsend;
-#X text 80 535 1) float;
-#X text 168 535 - (optional) 0 for TCP \, nonzero for UDP. (Default
-is TCP.);
-#X text 168 413 - disconnect from the remote machine. When it is disconnected
-\, a "0" is sent to the outlet.;
-#X text 168 443 - after successfully connecting \, use the "send" message
-to forward data to the remote machine.;
-#X text 168 356 - use the "connect" message to connect to the specified
-remote machine-- providing its name or IP address-- on the specified
-port (e.g. \, "connect localhost 3000"). A "1" is output if the connection
-is successful.;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X connect 14 0 24 0;
-#X connect 15 0 14 0;
-#X connect 16 0 14 0;
-#X connect 17 0 16 0;
-#X connect 18 0 14 0;
-#X connect 19 0 22 0;
-#X connect 20 0 19 0;
-#X connect 21 0 22 0;
-#X connect 22 0 25 0;
-#X connect 23 0 22 0;
-#X connect 32 0 14 0;
-#X connect 33 0 22 0;
-#X connect 34 0 14 0;
-#X connect 35 0 22 0;
+the source is included in the Pd distribution.);
+#X msg 15 290 connect molloy 3000;
+#X msg 268 290 connect molloy 3001;
+#X msg 15 317 connect bug 3000;
+#X msg 268 317 connect bug 3000;
+#X connect 0 0 10 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 2 0;
+#X connect 4 0 0 0;
+#X connect 5 0 8 0;
+#X connect 6 0 5 0;
+#X connect 7 0 8 0;
+#X connect 8 0 11 0;
+#X connect 9 0 8 0;
+#X connect 26 0 0 0;
+#X connect 27 0 8 0;
+#X connect 28 0 0 0;
+#X connect 29 0 8 0;
diff --git a/externals/vanilla/openpanel-help.pd b/externals/vanilla/openpanel-help.pd
index c460580c..b8b7396a 100644
--- a/externals/vanilla/openpanel-help.pd
+++ b/externals/vanilla/openpanel-help.pd
@@ -1,73 +1,19 @@
-#N canvas 0 0 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 openpanel 3 12 0
-18 -204280 -1 0;
-#X obj 0 310 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 51 243 494 344 META 0;
-#X text 12 105 LIBRARY internal;
-#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 125 AUTHOR Miller Puckette;
-#X text 12 185 HELP_PATCH_AUTHORS Updated for Pd version 0.40. Jonathan
-Wilkes revised the patch to conform to the PDDP template for Pd version
-0.42.;
-#X text 12 5 KEYWORDS control GUI;
-#X text 12 45 DESCRIPTION query the user for a filename;
-#X text 12 65 INLET_0 bang symbol;
-#X text 12 85 OUTLET_0 symbol;
-#X text 12 165 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 432 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 475 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 503 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X text 98 479 (none);
-#N canvas 101 483 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 savepanel;
-#X obj 92 43 soundfiler;
-#X text 8 2 [openpanel] Related Objects;
-#X restore 102 597 pd Related_objects;
-#X obj 78 319 cnv 17 3 105 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 441 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 466 3 openpanel;
-#X obj 435 20 pddp/pddplink http://wiki.puredata.info/en/openpanel
--text pdpedia: openpanel;
-#X msg 171 104 bang;
-#X obj 171 217 print;
-#X text 211 104 Starts open panel in current directory;
-#X msg 187 130 symbol /tmp;
-#X msg 187 159 symbol C:/;
-#X text 265 130 Starts in a specified directory;
-#X text 98 318 bang;
-#X text 98 364 symbol;
-#X text 98 398 list;
-#X text 168 318 - a "bang" to the inlet causes an "Open file" browser
-to appear on the screen. If you select a file \, the filename appears
-at the outet.;
-#X text 168 364 - sending a symbol will start the "Open file" browser
-in the specified directory.;
-#X text 98 440 symbol;
-#X obj 171 192 openpanel;
-#X text 167 440 - the filename of the selected file is output from
-the outlet.;
-#X text 99 507 Unlike other symbol-handling objects in Pd \, [openpanel]
-can output a symbol that contains spaces \, which will get handled
-propertly by an object like [soundfiler]. However \, if you set this
-filename to a message box and save the patch \, the symbol will be
-converted to a list the next time you open the patch.;
-#X text 11 23 query the user for a filename;
-#X text 168 398 - a list starting with a symbol will be truncated to
-the first element.;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X connect 13 0 25 0;
-#X connect 16 0 25 0;
-#X connect 17 0 25 0;
-#X connect 25 0 14 0;
+#N canvas 70 117 585 333 12;
+#X obj 128 196 openpanel;
+#X msg 128 108 bang;
+#X obj 128 221 print;
+#X text 31 11 openpanel -- query you for a filename;
+#X text 48 278 see also:;
+#X obj 136 279 savepanel;
+#X text 28 44 When Openpanel gets a "bang" an "Open file" browser appears
+on the screen. If you select a file \, its name appears on the outlet.
+;
+#X text 285 289 updated for Pd version 0.40.;
+#X text 178 109 Starts open panel in current directory;
+#X msg 144 136 symbol /tmp;
+#X msg 146 161 symbol C:/;
+#X text 252 137 Starts in a specified directory;
+#X connect 0 0 2 0;
+#X connect 1 0 0 0;
+#X connect 9 0 0 0;
+#X connect 10 0 0 0;
diff --git a/externals/vanilla/pipe-help.pd b/externals/vanilla/pipe-help.pd
index 4dc5dc55..272057ed 100644
--- a/externals/vanilla/pipe-help.pd
+++ b/externals/vanilla/pipe-help.pd
@@ -1,224 +1,41 @@
-#N canvas 0 0 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 pipe 3 12 0 18 -204280
--1 0;
-#X obj 0 148 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 49 202 494 386 META 0;
-#X text 12 145 LIBRARY internal;
-#X text 12 185 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 165 AUTHOR Miller Puckette;
-#X text 12 225 HELP_PATCH_AUTHORS This help patch was updated for Pd
-version 0.35 test 28 by Dave Sabine as part of a project called pddp
-proposed by Krzysztof Czaja to build comprehensive documentation for
-Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
-for Pd version 0.42.;
-#X text 12 5 KEYWORDS control time;
-#X text 12 45 DESCRIPTION delay a message - a message "delay line"
-;
-#X text 12 65 INLET_0 float list symbol pointer bang flush clear;
-#X text 12 105 INLET_R float;
-#X text 12 85 INLET_N float list symbol pointer bang;
-#X text 12 125 OUTLET_N float symbol pointer;
-#X text 12 205 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 401 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 456 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 563 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#N canvas 104 322 428 267 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 23 43 delay;
-#X obj 67 43 timer;
-#X text 8 2 [pipe] Related Objects;
-#X text 20 181 The best places to find information about Pd's libraries
-is:;
-#X text 21 203 www.puredata.org and click on "Downloads" then "Software"
-;
-#X text 22 218 or;
-#X text 21 233 iem.kug.ac.at/pdb/;
-#X text 20 132 This object is offered in Pd only if you have downloaded
-and properly installed the appropriate library. It may or may not exist
-in a single library.;
-#X obj 17 105 pddp/helplink iemlib/t3_delay;
-#X restore 102 597 pd Related_objects;
-#X obj 78 157 cnv 17 3 160 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 98 181 float;
-#X obj 78 410 cnv 17 3 40 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
--162280 0;
-#X obj 78 374 cnv 17 3 17 empty \$0-pddp.cnv.let.r r 5 9 0 16 -228856
--162280 0;
-#X obj 492 3 pipe;
-#X obj 465 20 pddp/pddplink http://wiki.puredata.info/en/pipe -text
-pdpedia: pipe;
-#X text 98 206 symbol;
-#X text 98 232 pointer;
-#X text 98 259 list;
-#X text 98 156 bang;
-#X text 98 286 flush;
-#X text 98 304 clear;
-#X obj 78 328 cnv 17 3 40 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
--162280 0;
-#X text 98 373 float;
-#N canvas 78 30 428 522 Creation_arguments 0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [pipe] Related Objects;
-#X obj 23 61 pipe 1000;
-#X obj 20 189 pipe s 1000;
-#X text 93 189 A pipe for symbols.;
-#X obj 20 282 pipe f s 1000;
-#X text 115 282 A pipe for one float \, and one symbol.;
-#X msg 20 159 symbol cat;
-#X msg 92 159 symbol dog;
-#X symbolatom 20 210 10 0 0 0 - - -;
-#X symbolatom 95 303 10 0 0 0 - - -;
-#X floatatom 20 303 5 0 0 0 - - -;
-#X msg 31 261 100 dog;
-#X msg 20 240 42 cat;
-#X floatatom 21 386 0 0 0 0 - - -;
-#X floatatom 21 494 0 0 0 0 - - -;
-#X obj 21 412 t f f f;
-#X obj 49 443 + 1;
-#X obj 77 443 + 2;
-#X floatatom 64 493 0 0 0 0 - - -;
-#X floatatom 108 494 0 0 0 0 - - -;
-#X obj 21 469 pipe f f f 1000;
-#X text 19 329 Miller's original example shows how a list of floats
-can be delayed by [pipe]. Note that the [trigger] object is used to
-ensure that [pipe] receives the messages from right to left order.
-;
-#X text 18 25 1) If only one creation argument is used \, it defines
-the initial length of delay. [pipe] will then expect a float.;
-#X text 17 87 2) If two or more arguments are provided \, then all
-except for the last will define the data type to be expected at the
-corresponding inlet. The delay time is initialized by the LAST creation
-argument \, which can be changed by sending a new delay time to the
-rightmost inlet.;
-#X text 72 240 Messages can be sent as lists like this example.;
-#X connect 3 0 9 0;
-#X connect 5 0 11 0;
-#X connect 5 1 10 0;
-#X connect 7 0 3 0;
-#X connect 8 0 3 0;
-#X connect 12 0 5 0;
-#X connect 13 0 5 0;
-#X connect 14 0 16 0;
-#X connect 16 0 21 0;
-#X connect 16 1 17 0;
-#X connect 16 2 18 0;
-#X connect 17 0 21 1;
-#X connect 18 0 21 2;
-#X connect 21 0 15 0;
-#X connect 21 1 19 0;
-#X connect 21 2 20 0;
-#X restore 170 543 pd Creation_arguments;
-#X text 168 304 - forces [pipe] to forget all stored messages.;
-#X text 168 259 - a list to the left inlet will be distributed among
-[pipe]'s inlets.;
-#X obj 95 104 pipe 1000;
-#X floatatom 126 53 5 0 0 0 - - -;
-#X msg 95 53 1;
-#X floatatom 95 126 5 0 0 0 - - -;
-#X floatatom 162 53 5 0 0 0 - - -;
-#N canvas 80 25 428 536 More_info 0;
-#X obj 1 451 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12
-0 14 -204280 -1 0;
-#X text 20 80 Like water running through a pipe \, it goes in one end...runs
-the length of the pipe...then comes out the other end.;
-#X floatatom 23 127 5 0 0 0 - - -;
-#X obj 23 148 pipe 20;
-#X floatatom 23 170 5 0 0 0 - - -;
-#X text 20 38 The left inlet accepts numbers \, symbols \, pointers
-\, messages \, and lists. The right inlet adjusts the delay time (the
-length of the pipe).;
-#X floatatom 69 127 5 0 0 0 - - -;
-#X text 111 126 Adjust the length of the pipe.;
-#X floatatom 23 298 0 0 0 0 - - -;
-#X obj 23 391 pipe 2000;
-#X text 62 296 numbers to store and output later;
-#X text 88 319 output all stored messages immediately;
-#X msg 34 323 flush;
-#X msg 51 369 clear;
-#X text 99 369 forget all stored messages;
-#X text 19 199 [pipe] accepts two very important methods.;
-#X text 20 219 1 "flush": forces [pipe] to output all stored messages
-immediately.;
-#X text 20 248 2 "clear": forces [pipe] to forget all stored messages.
-;
-#X obj 23 412 print;
-#X msg 44 344 bang;
-#X text 80 344 output the most recently stored message;
-#X text 20 267 3 "bang": repeat the most recently stored message again.
-;
-#X text 20 473 [pipe] schedules its output immediately after storing
-the incoming messages. This means that the delay time can be changed
-at runtime without effecting the messages that have already been scheduled
-for output.;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 449 Rescheduling;
-#X text 8 2 [pipe] More Info;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 6 0 3 1;
-#X connect 8 0 9 0;
-#X connect 9 0 18 0;
-#X connect 12 0 9 0;
-#X connect 13 0 9 0;
-#X connect 19 0 9 0;
-#X restore 101 572 pd More_info;
-#X text 11 23 delay a message - a message "delay line";
-#X text 169 93 The [pipe] object stores a sequence of messages and
-outputs them after a specified delay time in milliseconds. You can
-change the delay time as you wish. The outputs are sorted automatically.
-;
-#X text 80 475 1) float;
-#X text 98 490 symbol atom;
-#X text 168 156 - a bang will send the most recently stored message
-to the outlet after the specified delay time.;
-#X text 168 181 - a float to the left inlet will be stored \, then
-sent to the outlet after the specified delay.;
-#X text 168 232 - if the first argument to [pipe] is "p" \, an incoming
-pointer will be output after the specified delay.;
-#X text 168 206 - if the first argument to [pipe] is "s" \, an incoming
-symbol will be output after the specified delay.;
-#X msg 51 53 flush;
-#X msg 9 53 clear;
-#X text 168 286 - forces [pipe] to immediately output all stored messages.
-;
-#X text 168 373 - the rightmost inlet takes a float value that specifies
-the length of the delay (in milliseconds).;
-#X text 168 327 - an additional inlet is created for each argument
-provided to [pipe] besides the delay time. This makes it possible to
-send lists through [pipe].;
-#X text 98 422 symbol;
-#X text 98 409 float;
-#X text 98 435 pointer;
-#X text 168 409 - pipe can output symbols \, floats \, pointers. One
-outlet is created for each argument provided (besides the final argument
-to specify delay time).;
-#X text 167 475 - (optional) creation arguments define the data type
-to be expected at each inlet: "f" for float (or a float \, like "41"
-\, to initialize the value) \, "s" for symbol \, and "p" for pointer.
-The final argument defines the initial length of delay. See the subpatch
-below for more about the arguments:;
-#X obj 9 79 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X text 98 327 float;
-#X text 98 340 symbol;
-#X text 98 353 pointer;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X connect 25 0 28 0;
-#X connect 26 0 25 0;
-#X connect 27 0 25 0;
-#X connect 29 0 25 1;
-#X connect 39 0 25 0;
-#X connect 40 0 25 0;
-#X connect 49 0 25 0;
+#N canvas 99 89 737 480 12;
+#X floatatom 52 127 0 0 0;
+#X floatatom 127 227 0 0 0;
+#X floatatom 52 284 0 0 0;
+#X floatatom 544 281 0 0 0;
+#X floatatom 535 392 0 0 0;
+#X obj 534 364 pipe 5 6 7 1000;
+#X obj 543 307 t f f f;
+#X obj 563 338 + 1;
+#X obj 597 337 + 2;
+#X floatatom 590 390 0 0 0;
+#X floatatom 658 391 0 0 0;
+#X text 32 433 see also:;
+#X text 129 13 pipe -- message "delay line";
+#X obj 52 253 pipe 2000;
+#X text 91 125 numbers to store and output later;
+#X text 117 148 output all stored messages immediately;
+#X msg 63 152 flush;
+#X msg 65 180 clear;
+#X text 113 180 forget all stored messages;
+#X text 91 286 delayed output;
+#X obj 116 435 delay;
+#X obj 167 435 timer;
+#X text 51 42 The Pipe object stores a sequence of messages and outputs them after a specified delay time in miliseconds. You can change the delay time as you wish. The outputs are sorted automatically.;
+#X text 140 254 creation argument initializes delay time;
+#X text 163 228 set delay time;
+#X text 487 449 updated for Pd version 0.33;
+#X text 21 330 You can specify compound messages (lists) by adding arguments which set their type and initial value as in "pack." In this case the delay time comes last and is changed by the last inlet. You can also pack symbols and pointers but this feature is UNTESTED.;
+#X connect 0 0 13 0;
+#X connect 1 0 13 1;
+#X connect 3 0 6 0;
+#X connect 5 0 4 0;
+#X connect 5 1 9 0;
+#X connect 5 2 10 0;
+#X connect 6 0 5 0;
+#X connect 6 1 7 0;
+#X connect 6 2 8 0;
+#X connect 7 0 5 1;
+#X connect 8 0 5 2;
+#X connect 13 0 2 0;
+#X connect 16 0 13 0;
diff --git a/externals/vanilla/print-help.pd b/externals/vanilla/print-help.pd
index eaf94861..451954b9 100644
--- a/externals/vanilla/print-help.pd
+++ b/externals/vanilla/print-help.pd
@@ -1,154 +1,20 @@
-#N canvas 0 0 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 print 3 12 0 18
--204280 -1 0;
-#X obj 0 324 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 52 244 494 344 META 0;
-#X text 12 85 LIBRARY internal;
-#X text 12 125 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 105 AUTHOR Miller Puckette;
-#X text 12 165 HELP_PATCH_AUTHORS This document was updated for Pd
-version 0.38.4 by Dave Sabine and Hans-Christoph Steiner as part of
-a project called pddp proposed by Krzysztof Czaja to build comprehensive
-documentation for Pd. Jonathan Wilkes revised the patch to conform
-to the PDDP template for Pd version 0.42.;
-#X text 12 5 KEYWORDS control;
-#X text 12 45 DESCRIPTION print messages to the terminal window;
-#X text 12 65 INLET_0 anything;
-#X text 12 145 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 424 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 452 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 535 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#N canvas 98 483 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 text 8 2 [print] Related Objects;
-#X obj 22 43 print~;
-#X restore 102 597 pd Related_objects;
-#X obj 78 333 cnv 17 3 80 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 483 3 print;
-#X obj 455 20 pddp/pddplink http://wiki.puredata.info/en/print -text
-pdpedia: print;
-#X text 98 428 (none);
-#N canvas 103 75 428 487 print_oddities 0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [print] Oddities;
-#X obj 33 189 print;
-#X msg 33 73 1;
-#X msg 42 97 float 1;
-#X obj 65 161 symbol test;
-#X msg 60 120 symbol this;
-#X obj 65 142 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X msg 121 310 one 2 three;
-#X obj 53 394 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 121 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 130 371 print STRAIGHT;
-#X msg 105 290 list 1 two 3;
-#X msg 88 270 1 two 3;
-#X msg 130 331 list one 2 three;
-#X obj 56 371 route list;
-#X text 20 222 [print] only interprets the "list" selector when the
-following body of the message is an implied list \, i.e. a set of atoms
-that starts with a float.;
-#X text 20 428 This document was updated for Pd version 0.38.4 by Dave
-Sabine and Hans-Christoph Steiner as part of a project called pddp
-proposed by Krzysztof Czaja to build comprehensive documentation for
-Pd.;
-#X text 138 114 "symbols" are not interpreted;
-#X text 140 129 (i.e. "symbol" is also printed);
-#X text 20 38 floats are interpreted (i.e. it doesn't show the word
-"float" before the number):;
-#X connect 3 0 2 0;
-#X connect 4 0 2 0;
-#X connect 5 0 2 0;
-#X connect 6 0 2 0;
-#X connect 7 0 5 0;
-#X connect 8 0 11 0;
-#X connect 8 0 15 0;
-#X connect 12 0 11 0;
-#X connect 12 0 15 0;
-#X connect 13 0 11 0;
-#X connect 13 0 15 0;
-#X connect 14 0 11 0;
-#X connect 14 0 15 0;
-#X connect 15 0 9 0;
-#X connect 15 1 10 0;
-#X restore 101 569 pd print_oddities;
-#X text 98 332 anything;
-#X text 168 331 - the [print] object takes any message and prints it
-to the console window. When the print object receives a message \,
-its output will appear in the console window following the name of
-the print object and a colon (:). If the print object does not have
-a name (which you can supply as an argument within the print object
-itself) then the word "print" appears followed by a colon (:) and your
-message.;
-#X text 168 428 - [print] routes output directly to the console window.
-;
-#X msg 159 64 walk the dog;
-#X msg 85 64 bang;
-#X msg 126 64 234;
-#X obj 85 99 print;
-#X msg 158 151 walk the dog;
-#X msg 85 151 bang;
-#X msg 125 151 234;
-#X obj 85 188 print myPrintObject;
-#X text 209 188 A print object with a name.;
-#X text 132 92 A print object without a name. Be sure you can see the
-terminal window as you click on these messages.;
-#N canvas 105 232 428 300 print_and_lists 0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [print] Lists;
-#X text 23 38 When the print object receives a list \, it will output
-the entire list as a single message. Like below:;
-#X obj 25 98 print print_this_list;
-#X msg 25 75 10 20 30 foo;
-#X msg 26 180 10 20 30 foo;
-#X obj 26 233 unpack f f f s;
-#X obj 26 266 print unpack_this_list;
-#X text 23 127 To output the list as separate elements \, the list
-needs to be unpacked first. Note that [unpack]'s outlets are triggered
-from right to left. Like below:;
-#X text 37 200 The arguments here are used to tell Pd what type of
-atom to expect: (f = float \, s = symbol).;
-#X connect 4 0 3 0;
-#X connect 5 0 6 0;
-#X connect 6 0 7 0;
-#X connect 6 1 7 0;
-#X connect 6 2 7 0;
-#X connect 6 3 7 0;
-#X restore 101 544 pd print_and_lists;
-#X text 82 219 Use the "-n" flag to suppress "print:" in the output
-to the console:;
-#X msg 85 253 test;
-#X obj 207 286 print;
-#X msg 207 254 test;
-#X text 159 286 vs.;
-#X obj 85 286 print -n;
-#X text 168 470 - if you provide a symbol as an argument \, the symbol--
-followed by a colon-- will precede the output when it is sent to the
-console. Or you may use the "-n" flag to only print the incoming message
-(see example above).;
-#X text 78 469 1) symbol atom;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X text 11 23 print messages to the terminal window;
-#X connect 16 0 19 0;
-#X connect 17 0 19 0;
-#X connect 18 0 19 0;
-#X connect 20 0 23 0;
-#X connect 21 0 23 0;
-#X connect 22 0 23 0;
-#X connect 28 0 32 0;
-#X connect 30 0 29 0;
+#N canvas 349 65 546 306 12;
+#X msg 102 52 walk the dog;
+#X msg 29 51 bang;
+#X msg 70 51 234;
+#X obj 29 96 print x1;
+#X obj 21 10 print;
+#X text 29 130 Print prints out the messages it receives on the "terminal
+window" that Pd is run from.;
+#X text 73 10 -- print messages to terminal window;
+#X text 27 167 Long symbol arguments are truncated to 78 characters
+and marked with "*" (but message selectors are printed in full.);
+#X obj 100 267 print -n;
+#X text 27 202 With the special "-n" argument the "print:" prefix is
+suppressed:;
+#X text 333 282 updated for Pd version 0.42;
+#X floatatom 101 244 5 0 0 0 - - -;
+#X connect 0 0 3 0;
+#X connect 1 0 3 0;
+#X connect 2 0 3 0;
+#X connect 11 0 8 0;
diff --git a/externals/vanilla/qlist-help.pd b/externals/vanilla/qlist-help.pd
index 11fb7505..894c9bb8 100644
--- a/externals/vanilla/qlist-help.pd
+++ b/externals/vanilla/qlist-help.pd
@@ -1,145 +1,79 @@
-#N canvas 0 0 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 qlist 3 12 0 18
--204280 -1 0;
-#X obj 0 351 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 304 171 494 366 META 0;
-#X text 12 135 LIBRARY internal;
-#X text 12 175 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 155 AUTHOR Miller Puckette;
-#X text 12 215 HELP_PATCH_AUTHORS Updated for Pd version 0.35. Jonathan
-Wilkes revised the patch to conform to the PDDP template for Pd version
-0.42.;
-#X text 12 45 DESCRIPTION text-based sequencer;
-#X text 12 65 INLET_0 bang print tempo rewind next clear add add2 read
-write;
-#X text 12 95 OUTLET_0 list;
-#X text 12 115 OUTLET_1 bang;
-#X text 12 5 KEYWORDS control storage nonlocal filesystem list_op;
-#X text 12 195 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 393 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 502 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 529 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X text 98 506 (none);
-#N canvas 89 483 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 text 8 2 [qlist] Related Objects;
-#X obj 22 43 textfile;
-#X obj 85 43 receive;
-#X restore 102 597 pd Related_objects;
-#X obj 78 360 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 403 cnv 17 3 37 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 480 3 qlist;
-#X obj 455 20 pddp/pddplink http://wiki.puredata.info/en/qlist -text
-pdpedia: qlist;
-#N canvas 72 97 428 339 messages_to_qlist 0;
-#X msg 23 115 rewind;
-#X msg 23 139 next;
-#X msg 23 67 bang;
-#X msg 23 91 tempo 1;
-#X text 76 66 sequence automatically;
-#X text 76 91 set relative tempo;
-#X text 77 114 go to beginning (and stop);
-#X text 78 138 single-step forward;
-#X text 120 258 read a file;
-#X msg 23 259 read qlist.txt;
-#X msg 23 282 write /tmp/qlist.txt;
-#X msg 23 187 clear;
-#X msg 23 211 add 500 this is another message;
-#X msg 23 235 add2 that;
-#X text 80 186 empty the qlist;
-#X text 96 234 add a message to a qlist but don't terminate it;
-#X text 78 161 single-step forward SUPRESSING MESSAGE-SENDING;
-#X msg 23 163 next 1;
-#X msg 23 43 print;
-#X text 77 42 print contents to Pd window;
-#X obj 23 312 outlet;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [qlist] Messages Accepted by [qlist];
-#X text 156 281 write a file;
-#X text 217 210 add a message to a qlist;
-#X connect 0 0 20 0;
-#X connect 1 0 20 0;
-#X connect 2 0 20 0;
-#X connect 3 0 20 0;
-#X connect 9 0 20 0;
-#X connect 10 0 20 0;
-#X connect 11 0 20 0;
-#X connect 12 0 20 0;
-#X connect 13 0 20 0;
-#X connect 17 0 20 0;
-#X connect 18 0 20 0;
-#X restore 76 89 pd messages_to_qlist;
-#X obj 76 115 qlist;
-#X floatatom 76 163 0 0 0 0 - - -;
-#X obj 103 140 print done;
-#X text 112 165 This outlet gets a list of leading numbers for the
-next message \, for you to use in designing your own sequencer.;
-#X text 210 89 <- Click to see messages to qlist;
-#X obj 135 276 r this;
-#X obj 238 276 r that;
-#X obj 135 305 print this;
-#X obj 238 305 print that;
-#X text 73 231 These receives are invoked in the file "qlist.txt" in
-this directory.;
-#N canvas 82 159 428 398 More_Info 0;
-#X text 20 38 The qlist object reads text files containing time-tagged
+#N canvas 7 31 1178 587 12;
+#X obj 546 328 qlist;
+#X msg 592 110 rewind;
+#X msg 591 135 next;
+#X floatatom 546 382 0 0 0 0 - - -;
+#X msg 593 54 bang;
+#X obj 441 515 r this;
+#X obj 544 515 r that;
+#X obj 441 544 print this;
+#X obj 544 544 print that;
+#X obj 560 356 print done;
+#X msg 593 80 tempo 1;
+#X text 18 51 The qlist object reads text files containing time-tagged
Pd messages. You can have them sequenced automatically (by sending
a "bang" message \, possibly changing speed via "tempo" messages) or
manually via the "rewind" and "next" messages.;
-#X text 20 228 To run it manually \, send "rewind" followed by "next".
+#X text 15 136 To run the qlist automatically \, send it a "read" message
+(the filename is relative to the directory the patch is in) and later
+a "bang." Messages in the file are separated by semicolons. Optional
+leading numbers are delay times in milliseconds. If the tempo is diffrerent
+from 1 the messages are sent faster or slower accordingly. Messages
+should start with a symbol giving the destination object. In the file
+"qlist.q" used here \, the messages go to objects "this" and "that"
+which are receives below.;
+#X text 17 281 To run it manually \, send "rewind" followed by "next".
All messages not preceeded by numbers are sent. As soon as a message
starting with one or more numbers is encountered \, the numbers are
output as a list. There are many ways you could design a sequencer
around this.;
-#X text 20 298 You can also record textual messages and save them to
+#X text 668 48 sequence automatically;
+#X text 670 79 set relative tempo;
+#X text 668 105 go to beginning (and stop);
+#X text 668 132 single-step forward;
+#X text 713 273 read a file;
+#X text 777 300 write one;
+#X text 552 404 This outlet gets a list of leading numbers for the
+next message \, for you to use in designing your own sequencer.;
+#X msg 586 274 read qlist.txt;
+#X msg 586 300 write /tmp/qlist.txt;
+#X text 21 493 see also:;
+#X obj 97 493 textfile;
+#X text 22 362 You can also record textual messages and save them to
a file. Send "clear" to empty the qlist and "add" to add messages (terminated
with semicolons.) The message \, "add2" adds a list of atoms without
finishing with a semicolon in case you want to make variable-length
messages.;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [qlist] More Info;
-#X text 20 108 To run the qlist automatically \, send it a "read" message
-(the filename is relative to the directory the patch is in) and later
-a "bang." Messages in the file are separated by semicolons. Optional
-leading numbers are delay times in milliseconds. If the tempo is different
-from 1 the messages are sent faster or slower accordingly. Messages
-should start with a symbol giving the destination object. In the file
-"qlist.q" used here \, the messages go to objects "this" and "that"
-which are receives below.;
-#X restore 101 538 pd More_Info;
-#X text 98 402 list;
-#X obj 78 446 cnv 17 3 47 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
--162280 0;
-#X text 98 445 bang;
-#X text 168 445 - this outlet gets a bang when you hit the end of the
-sequence. In the file "qlist.txt" used in the example above \, the
-end is delayed 1000 milliseconds after the last message.;
-#X text 11 23 text-based sequencer;
-#X text 98 359 See the subpatch "messages_to_qlist" in the example
-above for a complete list of messages and their functionalities.;
-#X text 168 402 - if you run [qlist] manually (using the "next" message)
-\, messages starting with one or more numbers are are output as a list.
-;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X obj 98 557 pddp/pddplink ../2.control.examples/23.sequencing.pd
--text doc/2.control.examples/23.sequencing.pd;
-#X obj 98 572 pddp/pddplink ../3.audio.examples/D13.additive.qlist.pd
--text doc/3.audio.examples/D13.additive.qlist.pd;
-#X connect 13 0 14 0;
-#X connect 14 0 15 0;
-#X connect 14 1 16 0;
-#X connect 19 0 21 0;
-#X connect 20 0 22 0;
+#X msg 589 190 clear;
+#X msg 589 216 add 500 this is another message;
+#X msg 590 242 add2 that;
+#X text 666 187 empty the qlist;
+#X text 882 217 add a message to a qlist;
+#X text 683 240 add a message to a qlist but don't terminate it;
+#X text 653 341 This outlet gets a bang when you hit the end of the
+sequence. In the file "qlist.txt" the end is delayed 1000 milliseconds
+after the last message.;
+#X text 379 470 These receives are invoked in the file "qlist.txt"
+in this directory.;
+#X obj 71 13 qlist;
+#X text 132 15 - text-based sequencer;
+#X text 668 158 single-step forward SUPRESSING MESSAGE-SENDING;
+#X msg 591 161 next 1;
+#X text 921 558 updated for Pd version 0.35;
+#X msg 593 29 print;
+#X text 667 28 print contents to Pd window;
+#X connect 0 0 3 0;
+#X connect 0 1 9 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 7 0;
+#X connect 6 0 8 0;
+#X connect 10 0 0 0;
+#X connect 21 0 0 0;
+#X connect 22 0 0 0;
+#X connect 26 0 0 0;
+#X connect 27 0 0 0;
+#X connect 28 0 0 0;
+#X connect 37 0 0 0;
+#X connect 39 0 0 0;
diff --git a/externals/vanilla/random-help.pd b/externals/vanilla/random-help.pd
index 7f33781f..b792325c 100644
--- a/externals/vanilla/random-help.pd
+++ b/externals/vanilla/random-help.pd
@@ -1,577 +1,19 @@
-#N canvas 0 0 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 random 3 12 0 18
--204280 -1 0;
-#X obj 0 252 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 51 247 494 344 META 0;
-#X text 12 125 LIBRARY internal;
-#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 145 AUTHOR Miller Puckette;
-#X text 12 205 HELP_PATCH_AUTHORS This help patch was updated for Pd
-version 0.35 test 29 by Dave Sabine as part of a project called pddp
-proposed by Krzysztof Czaja to build comprehensive documentation for
-Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
-for Pd version 0.42.;
-#X text 12 45 DESCRIPTION pseudorandom integer generator;
-#X text 12 5 KEYWORDS control random;
-#X text 12 85 INLET_1 float;
-#X text 12 105 OUTLET_0 float;
-#X text 12 65 INLET_0 bang seed;
-#X text 12 185 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 389 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 426 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 476 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#N canvas 87 265 428 374 Related_objects 0;
-#X text 20 255 These objects are offered in Pd only if you have downloaded
-and properly installed the appropriate library. These objects may or
-may not exist in a single library.;
-#X text 20 297 The best places to find information about Pd's libraries
-is:;
-#X text 21 314 www.puredata.org and click on "Downloads" then "Software"
-;
-#X text 23 328 or;
-#X text 20 343 iem.kug.ac.at/pdb/;
-#X obj 20 95 pddp/helplink markex/randomF;
-#X obj 20 115 pddp/helplink markex/tripleRand;
-#X obj 20 135 pddp/helplink motex/shuffle;
-#X obj 20 155 pddp/helplink cxc/utime;
-#X obj 20 175 pddp/helplink mjlib/pin~;
-#X obj 20 195 pddp/helplink iemmatrix/mtx_rand;
-#X obj 20 215 pddp/helplink iemlib/randomblock~;
-#X obj 20 235 pddp/helplink cyclone/drunk;
-#X text 20 75 Externals;
-#N canvas 404 60 483 507 (subpatch) 0;
-#X msg 144 296 bang;
-#X msg 144 321 1 30;
-#X obj 144 409 line~;
-#X obj 202 301 del 30;
-#X obj 61 433 *~;
-#X obj 62 485 dac~;
-#X obj 62 359 osc~ 880;
-#X obj 62 403 clip~ -1 1;
-#X obj 35 220 list split 1;
-#X obj 15 311 list;
-#X obj 35 244 t b a;
-#X obj 62 334 mtof;
-#X obj 62 457 *~ 0.07;
-#X obj 207 128 metro 50;
-#X obj 207 202 s \$0-cnv;
-#X obj 207 106 0;
-#X obj 207 84 del 3000;
-#X obj 310 170 f;
-#X obj 342 170 + 1;
-#X obj 35 12 r \$0-bng;
-#X obj 106 14 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 310 197 div 13;
-#X msg 310 314 color \$1 0;
-#X obj 242 105 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 279 86 sel 0;
-#X obj 279 107 -1;
-#X obj 279 130 t a;
-#X obj 207 155 f -1;
-#X msg 207 180 delta 0 \$1;
-#X obj 35 44 spigot 1;
-#X obj 35 76 t a b;
-#X obj 96 55 0;
-#X obj 130 55 1;
-#X obj 310 220 sel 3 4;
-#X msg 371 246 5 \$1;
-#X obj 371 268 -;
-#X msg 310 246 1;
-#X obj 340 245 f 2;
-#X obj 383 170 sel 1;
-#X msg 377 198 0;
-#X msg 411 199 2;
-#X obj 62 311 + 68;
-#X obj 15 284 del 170;
-#X text 167 14 IT'S A SECRET TO EVERYBODY.;
-#X obj 100 100 cnv 15 15 15 empty empty empty 20 12 0 14 -262144 -66577
-0;
-#X obj 56 106 loadbang;
-#X obj 35 174 list;
-#X obj 114 217 s \$0-randomize;
-#X obj 71 149 r \$0-new-secret;
-#X msg 56 128 7 1 0 8 12 16;
-#X obj 35 197 list prepend 11 10;
-#X obj 62 381 *~ 1.4;
-#X msg 202 323 0 400;
+#N canvas 0 0 630 421 12;
+#X msg 40 212 bang;
+#X obj 40 287 random 5;
+#X floatatom 83 261 0 0 0;
+#X floatatom 40 312 0 0 0;
+#X msg 50 236 seed 123;
+#X text 92 210 bang for output;
+#X text 132 236 message to set the seed;
+#X text 116 259 inlet to reset the range;
+#X text 119 286 argument to initialize the range;
+#X text 378 337 updated for Pd version 0.33;
+#X text 11 46 Random outputs pseudorandom integers from 0 to N-1 where N is the creation argument (5 in the example below.) You can specify a seed if you wish. Seeds are kept locally so that if two Randoms are seeded the same they will have the same output (or indeed you can seed the same one twice to repeat the output.);
+#X text 12 139 On the other hand \, if you don't supply a seed each instance of random gets its own seed. WARNING: nothing is known about the quality of teh pseudorandom number generator. It isn't any standard one!;
+#X obj 20 11 random;
+#X text 84 11 - pseudorandom integers;
#X connect 0 0 1 0;
-#X connect 0 0 3 0;
-#X connect 1 0 2 0;
-#X connect 2 0 4 1;
-#X connect 3 0 52 0;
-#X connect 4 0 12 0;
-#X connect 6 0 51 0;
-#X connect 7 0 4 0;
-#X connect 8 0 10 0;
-#X connect 8 1 9 1;
-#X connect 9 0 8 0;
-#X connect 10 0 42 0;
-#X connect 10 1 0 0;
-#X connect 10 1 41 0;
-#X connect 11 0 6 0;
-#X connect 12 0 5 0;
-#X connect 12 0 5 1;
-#X connect 13 0 17 0;
-#X connect 13 0 27 0;
-#X connect 15 0 13 0;
-#X connect 15 0 17 1;
-#X connect 16 0 15 0;
-#X connect 16 0 23 0;
-#X connect 16 0 32 0;
-#X connect 17 0 18 0;
-#X connect 17 0 21 0;
-#X connect 18 0 17 1;
-#X connect 19 0 29 0;
-#X connect 20 0 29 0;
-#X connect 21 0 33 0;
-#X connect 22 0 14 0;
-#X connect 23 0 24 0;
-#X connect 23 0 38 0;
-#X connect 24 0 25 0;
-#X connect 24 1 26 0;
-#X connect 25 0 26 0;
-#X connect 26 0 27 1;
-#X connect 27 0 28 0;
-#X connect 28 0 14 0;
-#X connect 29 0 30 0;
-#X connect 30 0 13 0;
-#X connect 30 0 16 0;
-#X connect 30 0 46 0;
-#X connect 30 1 31 0;
-#X connect 31 0 29 1;
-#X connect 32 0 29 1;
-#X connect 33 0 36 0;
-#X connect 33 1 37 0;
-#X connect 33 2 34 0;
-#X connect 34 0 35 0;
-#X connect 35 0 22 0;
-#X connect 36 0 22 0;
-#X connect 37 0 22 0;
-#X connect 38 0 39 0;
-#X connect 38 1 40 0;
-#X connect 39 0 37 1;
-#X connect 40 0 37 1;
-#X connect 41 0 11 0;
-#X connect 42 0 9 0;
-#X connect 45 0 49 0;
-#X connect 46 0 47 0;
-#X connect 46 0 50 0;
-#X connect 48 0 46 1;
-#X connect 49 0 46 1;
-#X connect 50 0 8 0;
-#X connect 51 0 7 0;
-#X connect 52 0 2 0;
-#X coords 0 -1 1 1 15 15 2 100 100;
-#X restore 266 222 pd;
-#X obj 8 3 bng 15 250 50 0 \$0-bng empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 23 42 noise~;
-#X obj 23 3 bng 15 250 50 0 \$0-bng empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 38 3 bng 15 250 50 0 \$0-bng empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 53 3 bng 15 250 50 0 \$0-bng empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 68 3 bng 15 250 50 0 \$0-bng empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 83 3 bng 15 250 50 0 \$0-bng empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 98 3 bng 15 250 50 0 \$0-bng empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 113 3 bng 15 250 50 0 \$0-bng empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 128 3 bng 15 250 50 0 \$0-bng empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 173 3 bng 15 250 50 0 \$0-bng empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 254 180 cnv 15 40 24 empty empty empty 20 12 0 14 -179689 -66577
-0;
-#N canvas 271 87 451 558 (subpatch) 0;
-#X obj 27 181 t a b;
-#X obj 54 203 f;
-#X obj 54 228 + 1;
-#X obj 27 282 list prepend;
-#X obj 84 203 mod 3;
-#X msg 27 255 \$1\$2\$3\$4\$5\$6;
-#X obj 179 115 0;
-#X obj 27 358 list append;
-#X obj 48 331 list append;
-#X obj 27 40 t a b;
-#X obj 27 304 route 3 2 1;
-#X obj 24 119 cnv 15 110 24 empty empty empty 20 12 0 14 -179689 -66577
-0;
-#N canvas 222 70 378 565 list-scramble 0;
-#X obj 148 213 list;
-#X obj 205 294 sel;
-#X obj 148 181 t b a;
-#X obj 104 372 f;
-#X obj 205 267 list split 1;
-#X obj 294 267 t a;
-#X obj 77 318 spigot;
-#X obj 116 291 1;
-#X obj 128 318 0;
-#X obj 77 98 t b b b;
-#X obj 148 240 route bang;
-#X msg 152 415 adddollar \$1;
-#X msg 152 479 list \$2 \$4 \$1 \$3 \$6 \$5;
-#X obj 104 415 s \$0-l;
-#X obj 274 153 r \$0-l;
-#X obj 77 345 t b b;
-#X obj 40 373 f;
-#X obj 68 372 + 1;
-#X obj 18 442 moses;
-#X obj 45 415 r \$0-len;
-#X obj 159 -31 inlet;
-#X obj 193 60 list length;
-#X obj 236 95 s \$0-len;
-#X obj 45 468 b;
-#X obj 45 495 s \$0-end;
-#X obj 77 71 until;
-#X obj 120 71 r \$0-end;
-#X obj 210 38 s \$0-r;
-#X obj 25 318 r \$0-r;
-#X obj 223 138 r \$0-r;
-#X obj 25 345 0;
-#X obj 148 158 + 1;
-#X obj 252 395 r \$0-r;
-#X obj 159 -4 t a b a b;
-#X obj 3 73 s \$0-in;
-#X obj 96 450 r \$0-in;
-#X obj 152 506 outlet;
-#X obj 3 46 list;
-#X msg 252 417 set list;
-#X obj 274 190 list;
-#X obj 274 215 t a;
-#X obj 134 131 cnv 15 70 24 empty empty empty 20 12 0 14 -179689 -66577
-0;
-#X obj 148 134 random;
-#X connect 0 0 10 0;
-#X connect 1 0 8 0;
-#X connect 2 0 0 0;
-#X connect 2 1 1 1;
-#X connect 2 1 3 1;
-#X connect 3 0 11 0;
-#X connect 3 0 13 0;
+#X connect 1 0 3 0;
+#X connect 2 0 1 1;
#X connect 4 0 1 0;
-#X connect 4 1 5 0;
-#X connect 5 0 4 0;
-#X connect 6 0 15 0;
-#X connect 7 0 6 1;
-#X connect 8 0 6 1;
-#X connect 9 0 6 0;
-#X connect 9 1 42 0;
-#X connect 9 2 7 0;
-#X connect 10 1 4 0;
-#X connect 11 0 12 0;
-#X connect 12 0 36 0;
-#X connect 14 0 39 0;
-#X connect 15 0 16 0;
-#X connect 15 1 3 0;
-#X connect 16 0 17 0;
-#X connect 17 0 16 1;
-#X connect 17 0 18 0;
-#X connect 18 1 23 0;
-#X connect 19 0 18 1;
-#X connect 20 0 33 0;
-#X connect 21 0 22 0;
-#X connect 21 0 42 1;
-#X connect 23 0 24 0;
-#X connect 25 0 9 0;
-#X connect 26 0 25 1;
-#X connect 28 0 30 0;
-#X connect 29 0 0 1;
-#X connect 29 0 39 1;
-#X connect 30 0 16 1;
-#X connect 31 0 2 0;
-#X connect 32 0 38 0;
-#X connect 33 0 37 0;
-#X connect 33 1 25 0;
-#X connect 33 2 21 0;
-#X connect 33 3 27 0;
-#X connect 35 0 12 0;
-#X connect 37 0 34 0;
-#X connect 38 0 12 0;
-#X connect 39 0 40 0;
-#X connect 39 0 0 1;
-#X connect 40 0 39 1;
-#X connect 42 0 31 0;
-#X restore 27 121 pd list-scramble;
-#X obj 27 464 t a b;
-#X obj 27 539 s pd-\$0-random-header;
-#X msg 72 489 clear \, donecanvasdialog 0 0 2 0 -1 1 1 200 18 0 0 \,
-obj 0 0 cnv 15 200 18 empty \$0-pddp.cnv.random-subheading empty 3
-12 0 14 -204280 -1 0;
-#X obj 112 20 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X msg 27 67 b j e c t s \, e l a t e d \, r a n d o m;
-#X obj 27 17 r \$0-bng;
-#X obj 43 409 loadbang;
-#X msg 43 436 text 8 0 [random] Related Objects;
-#X msg 27 381 text 8 0 [\$1] R\$2 O\$3;
-#X text 98 408 <- triggers a dirty flag;
-#X obj 56 90 r \$0-randomize;
-#N canvas 0 0 450 300 filter-numbers 0;
-#X obj 121 55 inlet;
-#X obj 121 82 list trim;
-#X obj 121 109 route list;
-#X obj 178 136 list;
-#X obj 178 163 outlet;
-#X obj 121 190 s \$0-new-secret;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X connect 2 1 3 0;
-#X connect 3 0 4 0;
-#X restore 27 153 pd filter-numbers;
-#X connect 0 0 5 0;
-#X connect 0 1 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 4 0;
-#X connect 2 0 3 1;
-#X connect 3 0 10 0;
-#X connect 4 0 1 1;
-#X connect 5 0 3 0;
-#X connect 6 0 1 1;
-#X connect 7 0 21 0;
-#X connect 8 0 7 1;
-#X connect 9 0 17 0;
-#X connect 9 1 6 0;
-#X connect 10 0 7 0;
-#X connect 10 1 8 0;
-#X connect 10 2 8 1;
-#X connect 12 0 24 0;
-#X connect 13 0 14 0;
-#X connect 13 1 15 0;
-#X connect 15 0 14 0;
-#X connect 16 0 9 0;
-#X connect 17 0 12 0;
-#X connect 18 0 9 0;
-#X connect 20 0 13 0;
-#X connect 21 0 13 0;
-#X connect 23 0 12 0;
-#X connect 24 0 0 0;
-#X restore 263 183 pd;
-#X obj 158 3 bng 15 250 50 0 \$0-bng empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 143 3 bng 15 250 50 0 \$0-bng empty empty 17 7 0 10 -262144
--1 -1;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#N canvas 0 0 450 300 \$0-random-header 0;
-#X obj 0 0 cnv 15 200 18 empty 0-pddp.cnv.random-subheading empty 3
-12 0 14 -204280 -1 0;
-#X text 8 0 [random] Related Objects;
-#X coords 0 -1 1 1 200 18 2 0 0;
-#X restore 11 1 pd \$0-random-header;
-#X obj 180 171 cnv 3 210 60 empty \$0-cnv empty 20 12 0 14 -262144
--262144 0;
-#X restore 102 597 pd Related_objects;
-#X obj 78 261 cnv 17 3 85 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 98 397 float;
-#X obj 78 398 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 356 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
--162280 0;
-#X text 98 355 float;
-#X obj 481 3 random;
-#X obj 455 20 pddp/pddplink http://wiki.puredata.info/en/random -text
-pdpedia: random;
-#X text 81 56 [random] outputs pseudorandom integers between 0 and
-N-1 where N is the creation argument or the value of the right inlet.
-;
-#X obj 84 122 random 100;
-#X obj 84 102 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 84 144 3 0 0 0 - - -;
-#X text 154 122 Generates random numbers between 0 and 99;
-#X obj 84 187 random 100;
-#X obj 84 167 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 84 210 3 0 0 0 - - -;
-#X floatatom 141 162 5 0 0 0 - - -;
-#X text 181 162 Changes the 'range' of random numbers.;
-#X text 98 260 bang;
-#X text 98 299 seed;
-#X text 168 299 - to specify the seed \, use the seed message followed
-by a float ( "seed 42" ).;
-#N canvas 65 83 428 454 About_seeds 0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [random] About seeds;
-#X text 21 158 However \, "seeds" can be inputted into [random] by
-sending a message \, like below:;
-#X msg 24 221 seed 42;
-#X obj 90 227 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 90 245 random 1000;
-#X floatatom 90 265 3 0 0 0 - - -;
-#X obj 24 201 loadbang;
-#X text 21 294 Seeds are kept locally so that if two [random]s are
-seeded the same \, they will have the same output - as demonstrated
-below. Furthermore \, you can seed the same one twice to repeat the
-output.;
-#X msg 180 363 seed 42;
-#X obj 106 366 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 106 398 random 1000;
-#X floatatom 106 418 3 0 0 0 - - -;
-#X obj 180 343 loadbang;
-#X obj 180 398 random 1000;
-#X floatatom 180 418 3 0 0 0 - - -;
-#X text 233 363 Click again to repeat output.;
-#X text 20 38 Random numbers are generated via a complex equation which
-produces a pseudo-predictable sequence of numbers. Each [random] object's
-equation is provided with a "seed" which is really just one of the
-variables in the equation which produces the sequence. The "seed" is
-generated by Pd based on specific parameters in each patch which contains
-a [random] object. If more than one [random] object is contained within
-a single patch \, each gets a different "seed".;
-#X connect 3 0 5 0;
-#X connect 4 0 5 0;
-#X connect 5 0 6 0;
-#X connect 7 0 3 0;
-#X connect 9 0 11 0;
-#X connect 9 0 14 0;
-#X connect 10 0 11 0;
-#X connect 10 0 14 0;
-#X connect 11 0 12 0;
-#X connect 13 0 9 0;
-#X connect 14 0 15 0;
-#X restore 171 332 pd About_seeds;
-#N canvas 91 66 428 441 More_about_seeds 0;
-#X text 20 39 While the "default" seed for each [random] is usually
-very effective \, it may be necessary to find better - more unpredictable
-- more indeterminate ways to seed the object to produce a more pleasing
-result.;
-#X text 20 96 Here are some ideas that may improve the implementation
-of [random]:;
-#X floatatom 202 211 0 0 0 0 - - -;
-#X obj 44 138 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 202 182 / 100;
-#X floatatom 44 208 0 0 0 0 - - -;
-#X text 64 137 Both methods here produce random numbers between 0 and
-5;
-#X obj 202 157 random 501;
-#X obj 44 179 random 6;
-#X text 269 157 0 - 500;
-#X text 41 239 between 0 and 5;
-#X text 41 226 Produces whole numbers;
-#X text 20 136 1;
-#X text 20 283 2;
-#X obj 44 284 loadbang;
-#X obj 44 317 timer;
-#X obj 106 297 bng 15 250 50 0 empty empty Click_to_seed 0 -8 0 10
--262144 -1 -1;
-#X msg 44 343 seed \$1;
-#X obj 106 381 bng 15 250 50 0 empty empty Click_for_output 0 -8 0
-10 -262144 -1 -1;
-#X floatatom 106 421 5 0 0 0 - - -;
-#X obj 106 400 random 42;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 240 226 between 0 and 5;
-#X text 240 212 produces fractional results;
-#X text 240 195 within range.;
-#X text 240 182 divide by 100 to keep output;
-#X text 206 298 "Time is on your side". Using the;
-#X text 206 314 [timer] object here (which is;
-#X text 206 343 interesting trick.;
-#X text 207 329 started via loadbang) is an;
-#X text 8 2 [random] More Info on Seeds;
-#X connect 3 0 7 0;
-#X connect 3 0 8 0;
-#X connect 4 0 2 0;
-#X connect 7 0 4 0;
-#X connect 8 0 5 0;
-#X connect 14 0 15 0;
-#X connect 15 0 17 0;
-#X connect 16 0 15 1;
-#X connect 17 0 20 0;
-#X connect 18 0 20 0;
-#X connect 20 0 19 0;
-#X restore 102 485 pd More_about_seeds;
-#N canvas 107 145 428 418 weighted_random_numbers 0;
-#X msg 23 118 bang;
-#X text 20 58 You can generate weighted random numbers from uniformly
-distributed ones. If you just want two possible outcomes with a varying
-probability for each one \, you can do as shown:;
-#X obj 23 144 random 100;
-#X obj 23 202 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 89 202 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 125 151 3 0 100 0 - - -;
-#X obj 23 177 moses 80;
-#X text 20 230 This outputs a number at left 80% of the time \, otherwise
-at right \, unless you override the "80" using the number box. You
-may extend this to more than two possible outcomes \, for instance
-like this:;
-#X msg 24 293 bang;
-#X obj 24 319 random 100;
-#X obj 24 372 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 114 373 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 24 347 moses 10;
-#X obj 114 348 moses 30;
-#X obj 182 373 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 22 388 10%;
-#X text 112 389 20%;
-#X text 184 388 70%;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [random] Weighted Random Numbers;
-#X text 62 117 <- click to test;
-#X text 156 150 <- change probablilty;
-#X text 64 293 <- click to test;
-#X text 20 25 There are many ways that [random] can be incorporated
-into other structures that change the qualities of the results.;
-#X connect 0 0 2 0;
-#X connect 2 0 6 0;
-#X connect 5 0 6 1;
-#X connect 6 0 3 0;
-#X connect 6 1 4 0;
-#X connect 8 0 9 0;
-#X connect 9 0 12 0;
-#X connect 12 0 10 0;
-#X connect 12 1 13 0;
-#X connect 13 0 11 0;
-#X connect 13 1 14 0;
-#X restore 102 507 pd weighted_random_numbers;
-#X text 11 23 pseudorandom integer generator;
-#X text 168 397 - the output is an integer between 0 and N-1.;
-#X text 168 442 - sets the initial value of N \, where the output ranges
-between 0 and N-1.;
-#X text 168 260 - a bang to [random] will output an integer between
-0 and N-1 \, where N is the creation argument or the value to the right
-inlet.;
-#X text 167 355 - a float to the right inlet sets N \, where the output
-ranges between 0 and N-1.;
-#X text 78 442 1) float;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X obj 102 527 pddp/pddplink ../2.control.examples/19.random.pd -text
-doc/2.control.examples/19.random.pd;
-#X obj 102 542 pddp/pddplink ../2.control.examples/20.weighted-random.pd
--text doc/2.control.examples/20.weighted-random.pd;
-#X obj 102 557 pddp/pddplink ../2.control.examples/21.markov.chain.pd
--text doc/2.control.examples/21.markov.chain.pd;
-#X obj 102 572 pddp/pddplink ../2.control.examples/22.random-walk.pd
--text doc/2.control.examples/22.random-walk.pd;
-#X connect 16 0 18 0;
-#X connect 17 0 16 0;
-#X connect 20 0 22 0;
-#X connect 21 0 20 0;
-#X connect 23 0 20 1;
diff --git a/externals/vanilla/realtime-help.pd b/externals/vanilla/realtime-help.pd
index b52e5360..60fcffaa 100644
--- a/externals/vanilla/realtime-help.pd
+++ b/externals/vanilla/realtime-help.pd
@@ -1,160 +1,15 @@
-#N canvas 0 0 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 realtime 3 12 0
-18 -204280 -1 0;
-#X obj 0 376 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 51 243 494 372 META 0;
-#X text 12 125 LIBRARY internal;
-#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 185 RELEASE_DATE 2009-06-12;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 145 AUTHOR Miller Puckette;
-#X text 12 205 HELP_PATCH_AUTHORS This help patch was updated for Pd
-version 0.35 test 28 by Dave Sabine as part of a project called pddp
-proposed by Krzysztof Czaja to build comprehensive documentation for
-Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
-for Pd version 0.42.;
-#X text 12 5 KEYWORDS control time;
-#X text 12 45 DESCRIPTION ask operating system for elapsed real time
-;
-#X text 12 65 INLET_0 bang;
-#X text 12 85 INLET_1 bang;
-#X text 12 105 OUTLET_0 float;
-#X restore 500 597 pd META;
-#X obj 0 473 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 510 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 537 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X text 98 514 (none);
-#N canvas 107 323 428 268 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 text 8 2 [realtime] Related Objects;
-#X obj 126 43 metro;
-#X obj 23 43 cputime;
-#X obj 81 43 timer;
-#X text 20 134 These objects are offered in Pd only if you have downloaded
-and properly installed the appropriate library. These objects may or
-may not exist in a single library.;
-#X text 19 183 The best places to find information about Pd's libraries
-is:;
-#X text 20 202 www.puredata.org and click on "Downloads" then "Software"
-;
-#X text 21 216 or;
-#X text 20 231 iem.kug.ac.at/pdb/;
-#X text 20 85 Related External Objects;
-#X obj 20 110 pddp/helplink iemlib/t3_timer;
-#X restore 102 597 pd Related_objects;
-#X obj 78 385 cnv 17 3 35 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 98 481 float;
-#X obj 78 482 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 429 cnv 17 3 35 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
--162280 0;
-#X obj 466 3 realtime;
-#X obj 435 20 pddp/pddplink http://wiki.puredata.info/en/realtime -text
-pdpedia: realtime;
-#X msg 119 160 bang;
-#X msg 94 138 bang;
-#X floatatom 94 204 0 0 0 0 - - -;
-#X text 166 206 Output is in milliseconds;
-#X text 129 138 Click here to start or reset;
-#X text 89 91 The [realtime] object measures elapsed "real" time as
-measured by your operating system.;
-#X obj 94 182 realtime;
-#X text 157 161 Click here to get elapsed real time. Click again...and
-again...to see periodic measurements from the start or reset time.
-;
-#X text 90 234 [realtime] works like essentially like a stop-watch.
-Once it starts \, you can continue to "poll" [realtime] to view the
-elapsed time.;
-#X text 90 281 The odd aspect about comparing [realtime] to a stop-watch
-is that a stop-watch can be stopped! [realtime] can only be started
-or reset. It cannot be stopped.;
-#N canvas 108 160 428 429 About_clocks 0;
-#X text 20 60 In a fantasy world \, computers could exist somehow beyond
-the restrictions of time and digital computation could be performed
-in ZERO time. However \, that is not the case. Instead \, every process
-within Pd and within your operating system requires at least a few
-nanoseconds of your CPU's time.;
-#X text 21 145 The [timer] object is like a clock that is not constrained
-to the regular laws of physics and the universal space-time continuum.
-It reports "time" measurements as only Pd can see them!;
-#X text 22 205 The [cputime] object is like a clock that measures how
-much time your CPU actually required to carry out your request. Keep
-in mind however that your CPU is busy doing many things simoultaneously
-\, so even though a process might take 5 minutes to complete \, your
-CPU does not pay full attention to that process for the entire 5 minutes.
-Instead \, it simply begins the process \, then refers back to that
-process from time to time until the it is complete. In other cases
-\, your CPU might require a full 5 minutes while Pd might report that
-merely a few milliseconds have passed. This type of discrepancy depends
-heavily on your computer's hardware and the type of processing it is
-performing.;
-#X text 21 369 The [realtime] object is as much like your own wrist
-watch as Pd can possibly manage. It measures time according to your
-operating system's internal clock.;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [realtime] About Clocks;
-#X text 21 38 Why the discrepancies between clocks?;
-#X restore 102 569 pd About_clocks;
-#N canvas 105 140 428 400 Comparing_timers 0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [realtime] Comparing timers in Pd;
-#X obj 45 296 time_measurements;
-#X obj 45 192 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 45 353 0 0 0 0 - - -;
-#X floatatom 114 353 0 0 0 0 - - -;
-#X floatatom 184 353 0 0 0 0 - - -;
-#X text 20 108 In the example below \, I've created an abstraction
-which will force each of Pd's stop-watches \, [timer] [cputime] and
-[realtime] to measure various processes and report the elapsed time.
-Click on each [bng] to begin the process and wait for the results.
-Notice the discrepancies in the results.;
-#X text 20 371 Logical Time;
-#X text 170 371 Real Time;
-#X text 104 371 CPU Time;
-#X obj 57 228 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 65 186 1 Measures elapsed time between two "bangs" from a [trigger]
-object.;
-#X text 77 220 2 Measures the amount of time Pd requires to turn on
-DSP and start an oscillator.;
-#X obj 97 260 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 118 252 3 Measures the amount of time Pd requires count to
-three...please wait for approximately 3 seconds.;
-#X text 20 39 As stated above \, [realtime] measures "real" or actual
-time. This value may be slightly different that CPU time or "logical"
-time. Pd offers two objects which measure CPU time and "logical" time.
-See the reference documents for those objects for more information.
-;
-#X connect 2 0 4 0;
-#X connect 2 1 5 0;
-#X connect 2 2 6 0;
-#X connect 3 0 2 0;
-#X connect 11 0 2 1;
-#X connect 14 0 2 2;
-#X restore 102 547 pd Comparing_timers;
-#X text 98 384 bang;
-#X text 98 428 bang;
-#X text 167 428 - a bang to the right inlet sends the elapsed time
-to the outlet. Unlike most other objects in pd \, this is the "hot"
-inlet \, i.e. \, it triggers the output.;
-#X text 168 384 - a bang to the left inlet resets the timer. Unlike
-most other objects in pd \, the left inlet of [realtime] is a "cold"
-inlet \, i.e. \, it does not trigger the output.;
-#X text 11 23 ask operating system for elapsed real time;
-#X text 168 481 - elapsed time in milliseconds.;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X connect 15 0 21 1;
-#X connect 16 0 21 0;
-#X connect 21 0 17 0;
+#N canvas 156 202 565 269 12;
+#X msg 73 146 bang;
+#X msg 30 115 bang;
+#X floatatom 30 206 0 0 0;
+#X text 71 113 Click here to reset;
+#X text 27 232 Output is in milliseconds;
+#X text 114 147 Click here to get elapsed CPU time;
+#X obj 66 15 realtime;
+#X text 12 47 The realtime object measures elapsed real time \, as measured by your operating system.;
+#X obj 30 176 realtime;
+#X text 134 15 - ask OS for elapsed real time;
+#X text 302 244 updated for Pd version 0.33;
+#X connect 0 0 8 1;
+#X connect 1 0 8 0;
+#X connect 8 0 2 0;
diff --git a/externals/vanilla/rsqrt~-help.pd b/externals/vanilla/rsqrt~-help.pd
index 40faca0a..fb0bc350 100644
--- a/externals/vanilla/rsqrt~-help.pd
+++ b/externals/vanilla/rsqrt~-help.pd
@@ -1,75 +1,32 @@
-#N canvas 0 0 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 rsqrt~ 3 12 0 18
--204280 -1 0;
-#X obj 0 468 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 52 245 494 344 META 0;
-#X text 12 105 LIBRARY internal;
-#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 125 AUTHOR Miller Puckette;
-#X text 12 185 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 45 DESCRIPTION signal reciprocal square root;
-#X text 12 5 KEYWORDS signal;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 OUTLET_0 signal;
-#X text 12 165 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 504 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 540 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 567 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X text 98 544 (none);
-#N canvas 61 484 428 105 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 sqrt~;
-#X obj 137 43 q8_sqrt~;
-#X obj 67 43 q8_rsqrt~;
-#X obj 197 43 sqrt;
-#X text 8 2 [rsqrt~] Related Objects;
-#X restore 102 597 pd Related_objects;
-#X obj 78 476 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 513 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 478 3 rsqrt~;
-#X obj 452 20 pddp/pddplink http://wiki.puredata.info/en/rsqrt~ -text
-pdpedia: rsqrt~;
-#X obj 233 261 metro 500;
-#X obj 233 236 r metro;
-#X floatatom 217 157 0 0 0 0 - - -;
-#X floatatom 217 319 0 0 0 0 - - -;
-#X obj 217 294 snapshot~;
-#X floatatom 217 404 9 0 0 0 - - -;
-#X obj 217 346 t f f;
-#X obj 217 375 *;
-#X obj 217 183 sig~;
-#X obj 217 212 rsqrt~;
-#X text 98 475 signal;
-#X text 98 512 signal;
-#X text 11 23 signal reciprocal square root;
-#X text 168 475 - incoming signal.;
-#X text 168 512 - reciprocal square root of the incoming signal.;
-#X text 74 110 [rsqrt~] takes the approximate reciprocal square root
-of the incoming signal \, using a fast \, approximate algorithm which
+#N canvas 183 264 685 375 12;
+#X obj 68 211 metro 500;
+#X obj 68 186 r metro;
+#X msg 575 106 \; metro 0;
+#X msg 574 48 \; pd dsp 1 \; metro 1;
+#X floatatom 52 112 0 0 0;
+#X floatatom 52 268 0 0 0;
+#X text 419 349 updated for Pd version 0.33;
+#X obj 574 21 loadbang;
+#X obj 52 235 snapshot~;
+#X floatatom 51 351 9 0 0;
+#X obj 51 295 t f f;
+#X obj 51 322 *;
+#X obj 52 138 sig~;
+#X obj 36 16 rsqrt~;
+#X text 105 14 - signal reciprocal square root;
+#X text 18 45 rsqrt~ takes the approximate reciprocal square root of
+the incoming signal \, using a fast \, approximate algorithm which
is probably accurate to about 120 dB (20 bits).;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X obj 455 51 pddp/dsp-reminder;
-#X connect 13 0 17 0;
-#X connect 14 0 13 0;
-#X connect 14 0 13 0;
-#X connect 15 0 21 0;
-#X connect 16 0 19 0;
-#X connect 17 0 16 0;
-#X connect 19 0 20 0;
-#X connect 19 1 20 1;
-#X connect 20 0 18 0;
-#X connect 21 0 22 0;
-#X connect 22 0 17 0;
+#X obj 52 162 rsqrt~;
+#X connect 0 0 8 0;
+#X connect 1 0 0 0;
+#X connect 1 0 0 0;
+#X connect 4 0 12 0;
+#X connect 5 0 10 0;
+#X connect 7 0 3 0;
+#X connect 8 0 5 0;
+#X connect 10 0 11 0;
+#X connect 10 1 11 1;
+#X connect 11 0 9 0;
+#X connect 12 0 16 0;
+#X connect 16 0 8 0;
diff --git a/externals/vanilla/savepanel-help.pd b/externals/vanilla/savepanel-help.pd
index aaf1535f..b5d7e7a6 100644
--- a/externals/vanilla/savepanel-help.pd
+++ b/externals/vanilla/savepanel-help.pd
@@ -1,70 +1,12 @@
-#N canvas 0 0 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 savepanel 3 12 0
-18 -204280 -1 0;
-#X obj 0 334 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 53 243 494 344 META 0;
-#X text 12 105 LIBRARY internal;
-#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 125 AUTHOR Miller Puckette;
-#X text 12 185 HELP_PATCH_AUTHORS Updated for Pd version 0.24. Jonathan
-Wilkes revised the patch to conform to the PDDP template for Pd version
-0.42.;
-#X text 12 5 KEYWORDS control GUI;
-#X text 12 45 DESCRIPTION query the user for the name of a file to
-create;
-#X text 12 85 DATATYPE_OUT symbol;
-#X text 12 65 INLET_0 bang symbol;
-#X text 12 165 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 459 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 501 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 528 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X text 98 505 (none);
-#N canvas 104 480 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 openpanel;
-#X text 8 2 [savepanel] Related Objects;
-#X restore 102 597 pd Related_objects;
-#X obj 78 343 cnv 17 3 105 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 468 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 463 3 savepanel;
-#X obj 435 20 pddp/pddplink http://wiki.puredata.info/en/savepanel
--text pdpedia: savepanel;
-#X text 98 342 bang;
-#X text 98 467 symbol;
-#X text 168 467 - once chosen from the file browser \, the filename
-is output as a symbol.;
-#X text 99 532 [savepanel] handles filenames with spaces correctly.
-However \, if you try to save a filename with spaces in a message box
-\, for example \, it will be converted to a list the next time you
-open the patch.;
-#X msg 205 131 bang;
-#X obj 205 225 print;
-#X obj 205 200 savepanel;
-#X msg 249 131 symbol /tmp;
-#X text 98 387 symbol;
-#X text 168 387 - you can send a symbol to the inlet of [savepanel]
-to specify the initial directory (see above).;
-#X text 98 422 list;
-#X msg 249 153 symbol C:/;
-#X text 11 23 query the user for the name of a file to create;
-#X text 168 422 - a list will be truncated to the first element (if
-it is a symbol).;
-#X text 168 342 - when [savepanel] gets a bang \, a "Save As" file
-browser appears on the screen. If you choose a filename \, it appears
-on the outlet.;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X connect 17 0 19 0;
-#X connect 19 0 18 0;
-#X connect 20 0 19 0;
-#X connect 24 0 19 0;
+#N canvas 9 118 567 234 12;
+#X msg 102 92 bang;
+#X obj 102 145 print;
+#X text 295 199 updated for Pd version 0.24;
+#X text 28 192 see also:;
+#X text 16 35 When Savepanel gets a "bang" a "Save As" file browser appears on the screen \, If you choose a filename \, it appears on the outlet.;
+#X obj 102 120 savepanel;
+#X obj 115 191 openpanel;
+#X obj 19 7 savepanel;
+#X text 104 6 - query you for the name of a file to create;
+#X connect 0 0 5 0;
+#X connect 5 0 1 0;
diff --git a/externals/vanilla/sqrt~-help.pd b/externals/vanilla/sqrt~-help.pd
index 842e1254..b7b8e1a4 100644
--- a/externals/vanilla/sqrt~-help.pd
+++ b/externals/vanilla/sqrt~-help.pd
@@ -1,79 +1,32 @@
-#N canvas 0 0 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 sqrt~ 3 12 0 18
--204280 -1 0;
-#X obj 0 437 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 50 246 494 344 META 0;
-#X text 12 105 LIBRARY internal;
-#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 125 AUTHOR Miller Puckette;
-#X text 12 185 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;
-#X text 12 45 DESCRIPTION signal square root;
-#X text 12 85 OUTLET_0 signal;
-#X text 12 65 INLET_0 signal;
-#X text 12 165 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 502 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 539 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 567 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X text 98 543 (none);
-#N canvas 108 478 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 152 43 rsqrt~;
-#X obj 203 43 sqrt;
-#X obj 22 43 q8_sqrt~;
-#X obj 82 43 q8_rsqrt~;
-#X text 8 2 [sqrt~] Related Objects;
-#X restore 102 597 pd Related_objects;
-#X obj 78 446 cnv 17 3 45 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 511 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 485 3 sqrt~;
-#X obj 455 20 pddp/pddplink http://wiki.puredata.info/en/sqrt~ -text
-pdpedia: sqrt~;
-#X obj 232 240 metro 500;
-#X floatatom 215 137 0 0 0 0 - - -;
-#X floatatom 216 297 0 0 0 0 - - -;
-#X obj 216 264 snapshot~;
-#X floatatom 216 380 9 0 0 0 - - -;
-#X obj 216 324 t f f;
-#X obj 216 351 *;
-#X obj 215 163 sig~;
-#X text 98 445 signal;
-#X obj 232 215 loadbang;
-#X text 98 465 float;
-#X obj 216 191 sqrt~;
-#X text 168 465 - a float may be sent to the inlet as long as no signal
-connections are made to [sqrt~].;
-#X text 98 510 signal;
-#X text 168 510 - the square root of the incoming signal is output.
-;
-#X text 11 23 signal square root;
-#X text 168 445 - an incoming signal.;
-#X text 20 72 [sqrt~] takes the approximate square root of the incoming
+#N canvas 182 132 778 399 12;
+#X obj 71 201 metro 500;
+#X obj 71 176 r metro;
+#X msg 575 106 \; metro 0;
+#X msg 574 48 \; pd dsp 1 \; metro 1;
+#X floatatom 55 102 0 0 0;
+#X floatatom 55 258 0 0 0;
+#X text 470 371 updated for Pd version 0.33;
+#X obj 574 21 loadbang;
+#X obj 36 16 sqrt~;
+#X text 88 18 - signal square root;
+#X obj 55 152 sqrt~;
+#X obj 55 225 snapshot~;
+#X floatatom 54 341 9 0 0;
+#X obj 54 285 t f f;
+#X obj 54 312 *;
+#X obj 55 128 sig~;
+#X text 18 45 sqrt~ takes the approximate square root of the incoming
signal \, using a fast \, approximate algorithm which is probably accurate
to about 120 dB (20 bits).;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X obj 455 51 pddp/dsp-reminder;
-#X connect 13 0 16 0;
-#X connect 14 0 20 0;
-#X connect 15 0 18 0;
-#X connect 16 0 15 0;
-#X connect 18 0 19 0;
-#X connect 18 1 19 1;
-#X connect 19 0 17 0;
-#X connect 20 0 24 0;
-#X connect 22 0 13 0;
-#X connect 22 0 13 0;
-#X connect 24 0 16 0;
+#X connect 0 0 11 0;
+#X connect 1 0 0 0;
+#X connect 1 0 0 0;
+#X connect 4 0 15 0;
+#X connect 5 0 13 0;
+#X connect 7 0 3 0;
+#X connect 10 0 11 0;
+#X connect 11 0 5 0;
+#X connect 13 0 14 0;
+#X connect 13 1 14 1;
+#X connect 14 0 12 0;
+#X connect 15 0 10 0;
diff --git a/externals/vanilla/textfile-help.pd b/externals/vanilla/textfile-help.pd
index 21207bc2..8da1dde6 100644
--- a/externals/vanilla/textfile-help.pd
+++ b/externals/vanilla/textfile-help.pd
@@ -1,112 +1,59 @@
-#N canvas 0 0 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 textfile 3 12 0
-18 -204280 -1 0;
-#X obj 0 429 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 52 243 494 344 META 0;
-#X text 12 125 LIBRARY internal;
-#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 145 AUTHOR Miller Puckette;
-#X text 12 205 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 45 DESCRIPTION read and write text files;
-#X text 12 65 INLET_0 bang rewind clear add add2 set read write print
-;
-#X text 12 85 OUTLET_0 list;
-#X text 12 105 OUTLET_1 bang;
-#X text 12 5 KEYWORDS control storage filesystem list_op anything_op
-;
-#X text 12 185 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 465 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 531 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 558 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X text 98 535 (none);
-#N canvas 73 482 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 text 8 2 [textfile] Related Objects;
-#X obj 22 43 qlist;
-#X restore 102 597 pd Related_objects;
-#X obj 78 438 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 474 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 498 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
--162280 0;
-#X text 11 23 read and write text files;
-#X obj 435 20 pddp/pddplink http://wiki.puredata.info/en/textfile -text
-pdpedia: textfile;
-#X obj 465 3 textfile;
-#X obj 85 347 print done;
-#X text 98 497 bang;
-#X text 167 497 - this outlet gets a bang when you hit the end of the
-sequence.;
-#X text 98 473 list;
-#X text 168 473 - this outlet gets the lines in sequence.;
-#X text 168 437 (see the example above for messages accepted by [textfile])
-;
-#X msg 101 76 rewind;
-#X text 214 207 read a file;
-#X msg 101 208 read textfile.txt;
-#X text 152 75 go to beginning;
-#X msg 101 98 bang;
-#X text 152 97 output one line as a list;
-#X msg 101 230 write /tmp/textfile.txt;
-#X msg 101 252 write /tmp/textfile2.txt cr;
-#X msg 101 274 read textfile.txt cr;
-#X msg 101 120 clear;
-#X text 152 119 empty the object;
-#X text 208 142 add a message;
-#X msg 101 186 set 2 4 6 8;
-#X text 208 186 clear and then add one message;
-#X msg 101 142 add cis boom bah;
-#X msg 101 164 add2 bang;
-#X text 208 164 add an unterminated message;
-#X msg 101 296 print;
-#X text 145 296 debugging printout;
-#X text 248 229 write a file;
-#X text 274 311 mapped to semicolons.;
-#X obj 40 322 textfile;
-#X text 272 251 write a file \, terminating lines with a;
-#X text 273 266 carriage return (omitting semicolons).;
-#X text 272 281 You can read files this way \, too \, in;
-#X text 273 296 which case carriage returns are mapped;
-#N canvas 94 361 428 199 About_textfile 0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [textfile] Related Objects;
-#X text 21 38 The textfile object reads and writes text files to and
-from memory. You can read a file and output sequential lines as messages
+#N canvas 12 43 1181 529 12;
+#X msg 582 27 rewind;
+#X obj 577 416 print done;
+#X text 745 185 read a file;
+#X text 801 214 write one;
+#X text 97 472 see also:;
+#X obj 521 365 textfile;
+#X msg 584 188 read textfile.txt;
+#X obj 176 473 qlist;
+#X obj 145 20 textfile;
+#X text 236 20 read and write text files;
+#X text 34 92 The textfile object reads and writes text files to and
+from memory. You can read a file and output sequential lines as lists
\, or collect lines and write them out. You can use this object to
generate "models" for Gem \, for instance.;
-#X text 20 91 To record textual messages and save them to a file \,
-first send "clear" to empty the sequence and "add" to add messages
-(terminated with semicolons.) The message \, "add2" adds a list of
-atoms without finishing with a semicolon in case you want to make variable-length
+#X text 665 28 go to beginning;
+#X msg 582 54 bang;
+#X text 665 53 output one line as a list;
+#X msg 584 216 write /tmp/textfile.txt;
+#X msg 584 243 write /tmp/textfile2.txt cr;
+#X text 593 264 write a file \, terminating lines only with carriage
+return (omitting semicolons.) You can read files this way too \, in
+which case carriage returns are mapped to semicolons.;
+#X obj 521 438 print list;
+#X msg 583 312 read textfile.txt cr;
+#X msg 582 82 clear;
+#X text 737 83 empty the object;
+#X text 737 111 add a message;
+#X text 521 464 this outlet gets the lines in sequence.;
+#X text 35 246 You can also use this object simply for storing heterogeneous
+sequences of lists.;
+#X text 608 385 This outlet gets a bang when you hit the end of the
+sequence.;
+#X msg 582 162 set 2 4 6 8;
+#X text 740 163 clear and then add one message;
+#X msg 582 109 add cis boom bah;
+#X msg 582 136 add2 bang;
+#X text 734 136 add an unterminated message;
+#X text 31 160 To record textual messages and save them to a file \,
+first send "clear" to empty the qlist and "add" to add messages (terminated
+with semicolons.) The message \, "add2" adds a list of atoms without
+finishing with a semicolon in case you want to make variable-length
messages.;
-#X text 20 155 You can also use this object simply for storing heterogeneous
-sequences of messages.;
-#X restore 101 567 pd About_textfile;
-#X obj 40 369 print message;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X connect 21 0 42 0;
-#X connect 23 0 42 0;
-#X connect 25 0 42 0;
-#X connect 27 0 42 0;
-#X connect 28 0 42 0;
-#X connect 29 0 42 0;
-#X connect 30 0 42 0;
-#X connect 33 0 42 0;
-#X connect 35 0 42 0;
-#X connect 36 0 42 0;
-#X connect 38 0 42 0;
-#X connect 42 0 48 0;
-#X connect 42 1 15 0;
+#X msg 582 339 print;
+#X text 636 342 debugging printout;
+#X text 901 500 updated for Pd version 0.33;
+#X connect 0 0 5 0;
+#X connect 5 0 17 0;
+#X connect 5 1 1 0;
+#X connect 6 0 5 0;
+#X connect 12 0 5 0;
+#X connect 14 0 5 0;
+#X connect 15 0 5 0;
+#X connect 18 0 5 0;
+#X connect 19 0 5 0;
+#X connect 25 0 5 0;
+#X connect 27 0 5 0;
+#X connect 28 0 5 0;
+#X connect 31 0 5 0;
diff --git a/externals/vanilla/timer-help.pd b/externals/vanilla/timer-help.pd
index b5d819a2..0f7b3829 100644
--- a/externals/vanilla/timer-help.pd
+++ b/externals/vanilla/timer-help.pd
@@ -1,161 +1,15 @@
-#N canvas 0 0 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 timer 3 12 0 18
--204280 -1 0;
-#X obj 0 394 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 52 245 494 368 META 0;
-#X text 12 125 LIBRARY internal;
-#X text 12 165 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 145 AUTHOR Miller Puckette;
-#X text 12 205 HELP_PATCH_AUTHORS This help patch was updated for Pd
-version 0.35 test 28 by Dave Sabine as part of a project called pddp
-proposed by Krzysztof Czaja to build comprehensive documentation for
-Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
-for Pd version 0.42.;
-#X text 12 5 KEYWORDS control time;
-#X text 12 45 DESCRIPTION measure logical time;
-#X text 12 65 INLET_0 bang;
-#X text 12 85 INLET_1 bang;
-#X text 12 105 OUTLET_0 float;
-#X text 12 185 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 470 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 512 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 539 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X text 98 516 (none);
-#N canvas 73 345 428 246 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 text 8 2 [timer] Related Objects;
-#X obj 135 35 metro;
-#X obj 72 35 realtime;
-#X obj 24 35 timer;
-#X obj 183 35 delay;
-#X text 22 162 The best places to find information about Pd's libraries
-is:;
-#X text 22 182 www.puredata.org and click on "Downloads" then "Software"
-;
-#X text 24 197 or;
-#X text 21 212 iem.kug.ac.at/pdb/;
-#X text 22 120 This object is only offered in Pd only if you have downloaded
-and properly installed the appropriate library. These objects may or
-may not exist in a single library.;
-#X text 22 70 Externals;
-#X obj 24 95 pddp/helplink iemlib/t3_timer;
-#X restore 102 597 pd Related_objects;
-#X obj 78 403 cnv 17 3 25 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 98 478 float;
-#X obj 78 479 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 434 cnv 17 3 25 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
--162280 0;
-#X text 168 478 - upon sending the "flush" message to the left inlet
-\, [bag] will output each value in the order it was received.;
-#X obj 482 3 timer;
-#X obj 455 20 pddp/pddplink http://wiki.puredata.info/en/timer -text
-pdpedia: timer;
-#X msg 104 180 bang;
-#X msg 79 158 bang;
-#X obj 79 202 timer;
-#X floatatom 79 224 0 0 0 0 - - -;
-#X text 151 226 Output is in milliseconds;
-#X text 114 158 Click here to start or reset;
-#X text 74 111 The [timer] object measures elapsed logical time. Logical
-time moves forward as if all computation were instantaneous and as
-if all [delay] and [metro] objects were exact.;
-#X text 142 181 Click here to get elapsed logical time. Click again...and
-again...to see periodic measurements from the start or reset time.
-;
-#X text 77 250 NOTE: Unlike most other objects in Pd \, the right inlet
-of [timer] is the hot one (i.e. \, a bang to it triggers the output).
-;
-#X text 98 402 bang;
-#X text 168 402 - an initial "bang" to the left inlet starts the timer.
-Subsequent "bangs" reset the timer.;
-#X text 98 433 bang;
-#X text 167 433 - a bang to the right inlet causes the elapsed time
-to be output (in milliseconds).;
-#N canvas 94 193 428 419 Time_Objects 0;
-#X text 21 38 In a fantasy world \, computers could exist somehow beyond
-the restrictions of time and digital computation could be performed
-in ZERO time. However \, that is not the case. Instead \, every process
-within Pd and within your operating system requires at least a few
-nanoseconds of your CPU's time.;
-#X text 22 123 The [timer] object is like a clock that is not constrained
-to the regular laws of physics and the universal space-time continuum.
-It reports "time" measurements as only Pd can see them!;
-#X text 23 182 The [cputime] object is like a clock that measures how
-much time your CPU actually required to carry out your request. Keep
-in mind however that your CPU is busy doing many things simoultaneously
-\, so even though a process might take 5 minutes to complete \, your
-CPU does not pay full attention to that process for the entire 5 minutes.
-Instead \, it simply begins the process \, then refers back to that
-process from time to time until the it is complete. In other cases
-\, your CPU might require a full 5 minutes while Pd might report that
-merely a few milliseconds have passed. This type of discrepancy depends
-heavily on your computer's hardware and the type of processing it is
-performing.;
-#X text 24 341 The [realtime] object is as much like your own wrist
-watch as Pd can possibly manage. It measures time according to your
-operating system's internal clock.;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 2 [cputime] Why the Discrepencies Between Clocks?;
-#X restore 102 548 pd Time_Objects;
-#N canvas 73 72 428 495 Time_Measurements 0;
-#X text 21 38 [timer] works like essentially like a stop-watch. Once
-it starts \, you can continue to "poll" the [timer] to view the elapsed
-time.;
-#X text 20 135 As stated above \, [timer] measures "logical" time.
-This value may be slightly different that CPU time or "real" time.
-PD offers two objects which measure CPU time and "real" time. See the
-reference documents for those objects for more information.;
-#X obj 25 304 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 25 448 0 0 0 0 - - -;
-#X floatatom 110 448 0 0 0 0 - - -;
-#X floatatom 172 448 0 0 0 0 - - -;
-#X text 21 211 In the example below \, I've created an abstraction
-which will force each of Pd's stop-watches \, [timer] [cputime] and
-[realtime] to measure various processes and report the elapsed time.
-Click on each [bng] to begin the process and wait for the results.
-Notice the discrepancies in the results.;
-#X text 23 464 Logical Time;
-#X text 170 464 Real Time;
-#X text 109 464 CPU Time;
-#X obj 40 340 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 45 298 1 Measures elapsed time between two "bangs" from a [trigger]
-object.;
-#X text 60 332 2 Measures the amount of time Pd requires to turn on
-DSP and start an oscillator.;
-#X obj 84 372 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 21 85 The odd aspect about comparing [timer] to a stop-watch
-is that a stop-watch can be stopped! [timer] can only be started or
-reset. It cannot be stopped.;
-#X text 105 364 3 Measures the amount of time Pd requires count to
-three...please wait for approximately 3 seconds.;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [timer] Related Objects;
-#X obj 25 408 time_measurements;
-#X connect 2 0 18 0;
-#X connect 10 0 18 1;
-#X connect 13 0 18 2;
-#X connect 18 0 3 0;
-#X connect 18 1 4 0;
-#X connect 18 2 5 0;
-#X restore 102 572 pd Time_Measurements;
-#X text 11 23 measure logical time;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X connect 16 0 18 1;
-#X connect 17 0 18 0;
-#X connect 18 0 19 0;
+#N canvas 440 273 514 280 10;
+#X msg 60 146 bang;
+#X msg 30 115 bang;
+#X obj 30 175 timer;
+#X obj 66 15 timer;
+#X text 111 16 - measure logical time;
+#X floatatom 30 206;
+#X text 71 113 Click here to reset;
+#X text 98 147 Click here to get elapsed logical time;
+#X text 27 232 Output is in milliseconds;
+#X text 6 51 The timer object measures elapsed logical time. Logical time moves forward as if all computation were instantaneous and as if all "delay" and "metro" objects were exact.;
+#X text 319 260 updated for Pd version 0.25;
+#X connect 0 0 2 1;
+#X connect 1 0 2 0;
+#X connect 2 0 5 0;
diff --git a/externals/vanilla/toggle-help.pd b/externals/vanilla/toggle-help.pd
index 136bd9ea..5cb9ae75 100644
--- a/externals/vanilla/toggle-help.pd
+++ b/externals/vanilla/toggle-help.pd
@@ -1,396 +1,273 @@
-#N canvas 0 0 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 toggle 3 12 0 18
--204280 -1 0;
-#X obj 0 308 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 51 244 494 344 META 0;
-#X text 12 145 LIBRARY internal;
-#X text 12 45 LICENSE SIBSD;
-#X text 12 165 AUTHOR Thomas Musil;
-#X text 12 185 WEBSITE;
-#X text 12 225 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
-to conform to the PDDP template for Pd version 0.42.;
-#X text 12 25 KEYWORDS control GUI nonlocal;
-#X text 12 65 DESCRIPTION gui-toggle between zero and a non-zero value
-;
-#X text 12 5 ALIAS tgl;
-#X text 12 85 INLET_0 float bang size nonzero init send receive label
-label_pos label_font color pos delta;
-#X text 12 125 OUTLET_0 float;
-#X text 12 205 RELEASE_DATE 2002;
-#X restore 500 597 pd META;
-#X obj 0 422 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 459 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 544 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X obj 78 317 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#N canvas 54 490 428 100 Related_objects 0;
-#X obj 20 53 x_all_guis bng tgl vsl hsl hradio vradio vu cnv nbx;
-#X text 18 29 All iem-gui objects:;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 2 [tgl] Related Objects;
-#X restore 100 597 pd Related_objects;
-#X obj 78 431 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 346 167 and receive names. Right-;
-#X text 346 182 click and choose;
-#X text 345 198 "Properties" to set them \,;
-#X text 120 255 Use the UP- \, DOWN- \, LEFT- or RIGHT-key to move
-a selected gui-object. Right-click and choose "Properties" to modify
-its appearance.;
-#X text 346 212 or change them with messages;
-#X text 346 226 (see the subpatch below);
-#X text 98 361 see the following subpatch for messages that change
-the gui-properties of [bng]:;
-#N canvas 60 6 428 618 Changing_GUI_Properties 0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 212 37 no init;
-#X text 162 166 label;
-#X msg 212 56 init 0;
-#X msg 232 109 init 1;
-#X msg 162 186 label blabla;
-#X msg 172 236 label myToggle;
-#X text 303 37 change send name;
-#X text 22 166 change receive name;
-#X obj 212 133 s tgl_rcv;
-#X obj 304 133 s tgl_rcv;
-#X obj 22 262 s tgl_rcv;
-#X obj 162 262 s tgl_rcv;
-#X msg 304 58 send foo6_snd;
-#X msg 314 108 send tgl_snd;
-#X msg 42 213 receive tgl_rcv;
-#X obj 42 237 s tgl2_rcv;
-#X msg 22 188 receive tgl2_rcv;
-#N canvas 317 326 161 227 init 0;
-#X obj 16 11 loadbang;
-#X obj 16 42 f \$0;
-#X msg 16 73 \; \$1-size 15 \; \$1-nonzero 1 \; \$1-lbl-x 17 \; \$1-lbl-y
-7 \; \$1-font-size 10 \; \$1-xpos 336 \; \$1-ypos 500;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X restore 311 580 pd init;
-#X msg 22 109 size \$1;
-#X text 21 37 dimensions;
-#X obj 22 58 nbx 3 14 8 200 0 0 empty \$0-size empty 0 -8 0 12 -262144
--1 -1 15 256;
-#X text 69 55 size;
-#X obj 22 133 s tgl_rcv;
-#X obj 112 58 nbx 3 14 -1e+37 1e+37 0 0 empty \$0-nonzero empty 0 -8
-0 12 -262144 -1 -1 1 256;
-#X obj 112 133 s tgl_rcv;
-#X text 111 37 nonzero-value;
-#X msg 112 109 nonzero \$1;
-#X text 224 75 init value;
-#X text 226 89 on loadbang;
-#X text 306 165 label position;
-#X text 20 302 font properties;
-#X msg 308 237 label_pos \$1 \$2;
-#X msg 22 374 label_font \$1 \$2;
-#X text 71 326 1.font(0-2);
-#X text 71 347 2.height;
-#X text 357 188 1.x-offset;
-#X text 357 209 2.y-offset;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-lbl-x empty
-0 -8 0 12 -262144 -1 -1 17 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-lbl-y empty
-0 -8 0 12 -262144 -1 -1 7 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 308 187 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 0 2 0 0 \$0-dummy \$0-font empty 0 -8 0 12
--262144 -1 -1 0 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-font-size empty
-0 -8 0 12 -262144 -1 -1 10 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 22 324 pd flash-time;
-#X text 162 302 preset-colors;
-#X text 301 302 RGB-colors;
-#X msg 162 409 color \$1 \$2 \$3;
-#N canvas 364 205 306 317 flash-time 0;
-#X obj 69 196 t b a;
-#X obj 33 262 outlet;
-#X obj 33 237 pack 0 0 0;
-#X obj 120 197 t b a;
-#X obj 103 104 nbx 3 14 0 29 0 0 \$0-dummy \$0-bg empty 0 -8 0 12 -262144
--1 -1 0 256;
-#X obj 103 124 nbx 3 14 0 29 0 0 \$0-dummy \$0-front empty 0 -8 0 12
--262144 -1 -1 0 256;
-#X obj 103 144 nbx 3 14 0 29 0 0 \$0-dummy \$0-label empty 0 -8 0 12
--262144 -1 -1 0 256;
-#X connect 0 0 2 0;
-#X connect 0 1 2 1;
-#X connect 2 0 1 0;
-#X connect 3 0 2 0;
-#X connect 3 1 2 2;
-#X connect 4 0 2 0;
-#X connect 5 0 0 0;
-#X connect 6 0 3 0;
-#X coords 0 -1 1 1 48 62 2 100 100;
-#X restore 162 324 pd flash-time;
-#N canvas 0 0 306 317 flash-time 0;
-#X obj 96 521 outlet;
-#X obj 162 230 t b f;
-#X obj 96 268 +;
-#X obj 96 293 t b f;
-#X obj 96 324 +;
-#X obj 19 208 * -65536;
-#X obj 96 208 * -256;
-#X obj 162 208 * -1;
-#X obj 96 355 - 1;
-#X obj 96 385 list prepend 0;
-#X obj 96 410 route 0 1 2;
-#X obj 96 497 pack 0 0 0;
-#X obj 115 456 t b a;
-#X obj 168 455 t b a;
-#X obj 104 124 vradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144
--1 -1 0;
-#X text 120 120 1.bg;
-#X text 120 137 2.front;
-#X text 120 153 3.label;
-#X obj 103 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-r empty 0 -8 0 10 -262144
--258113 -1 0 256;
-#X obj 133 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-g empty 0 -8 0 10 -262144
--13381 -1 0 256;
-#X obj 163 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-b empty 0 -8 0 10 -262144
--4160 -1 0 256;
-#X connect 1 0 2 0;
-#X connect 1 1 2 1;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 3 1 4 1;
-#X connect 4 0 8 0;
-#X connect 5 0 4 0;
-#X connect 6 0 2 0;
-#X connect 7 0 1 0;
-#X connect 8 0 9 0;
-#X connect 9 0 10 0;
-#X connect 10 0 11 0;
-#X connect 10 1 12 0;
-#X connect 10 2 13 0;
-#X connect 11 0 0 0;
-#X connect 12 0 11 0;
-#X connect 12 1 11 1;
-#X connect 13 0 11 0;
-#X connect 13 1 11 2;
-#X connect 14 0 9 1;
-#X connect 18 0 5 0;
-#X connect 19 0 6 0;
-#X connect 20 0 7 0;
-#X coords 0 -1 1 1 102 74 2 100 100;
-#X restore 302 324 pd flash-time;
-#X text 211 326 1.bg;
-#X text 211 346 2.front;
-#X text 211 367 3.label;
-#X text 163 462 delta;
-#X text 21 462 position;
-#X msg 22 569 pos \$1 \$2;
-#X msg 164 569 delta \$1 \$2;
-#X obj 164 545 list;
-#X obj 164 484 bng 20 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X text 70 483 1.x-position;
-#X text 70 505 2.y-position;
-#X text 243 483 1.x-delta;
-#X text 243 505 2.y-delta;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-xpos empty 0
--8 0 12 -262144 -1 -1 336 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-ypos empty 0
--8 0 12 -262144 -1 -1 500 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 22 484 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -20 20 0 0 \$0-dummy \$0-xdelta empty 0 -8
-0 12 -262144 -1 -1 0 256;
-#X obj 103 124 nbx 3 14 -20 20 0 0 \$0-dummy \$0-ydelta empty 0 -8
-0 12 -262144 -1 -1 0 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 193 484 pd flash-time;
-#X obj 311 467 cnv 15 102 102 empty empty empty 20 12 0 14 -1 -66577
+#N canvas 205 140 489 376 10;
+#X obj 1 1 cnv 8 100 60 empty empty toggle=tgl 20 20 1 18 -262144 -1109
0;
-#X obj 312 468 cnv 15 100 100 empty empty empty 20 12 0 14 -261682
--66577 0;
-#X obj 308 262 s tgl_rcv;
-#X obj 22 399 s tgl_rcv;
-#X obj 162 434 s tgl_rcv;
-#X obj 22 594 s tgl_rcv;
-#X obj 164 594 s tgl_rcv;
-#X obj 336 500 tgl 15 0 tgl_snd tgl_rcv myToggle 17 7 0 10 -262144
--1 -1 0 1;
-#X obj 337 538 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 12
--262144 -1 -1 0 256;
-#X text 6 2 [tgl] Changing Properties through Messages;
-#X connect 3 0 9 0;
-#X connect 4 0 9 0;
-#X connect 5 0 12 0;
-#X connect 6 0 12 0;
-#X connect 13 0 10 0;
-#X connect 14 0 10 0;
-#X connect 15 0 16 0;
-#X connect 17 0 11 0;
-#X connect 19 0 23 0;
-#X connect 21 0 19 0;
-#X connect 24 0 27 0;
-#X connect 27 0 25 0;
-#X connect 32 0 62 0;
-#X connect 33 0 63 0;
-#X connect 38 0 32 0;
-#X connect 39 0 33 0;
-#X connect 42 0 64 0;
-#X connect 43 0 42 0;
-#X connect 44 0 42 0;
-#X connect 50 0 65 0;
-#X connect 51 0 66 0;
-#X connect 52 0 51 0;
-#X connect 53 0 52 0;
-#X connect 58 0 50 0;
-#X connect 59 0 52 1;
-#X connect 67 0 68 0;
-#X restore 170 394 pd Changing_GUI_Properties;
-#X text 168 463 - creating a [bng] without any arguments will set default
-values for all gui-properties. See the subpatch below to learn how
-to dynamically instantiate a [bng] object with custom properties:;
-#X obj 406 3 tgl 15 0 foo6_rcv empty empty 17 7 0 10 -262144 -1 -1
-0 1;
-#X obj 455 20 pddp/pddplink http://wiki.puredata.info/en/toggle -text
-pdpedia: toggle;
-#X text 426 0 abbreviation: [tgl];
-#X obj 302 78 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
--1;
-#X obj 302 153 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
+#X text 21 296 (c) musil@iem.kug.ac.at;
+#X text 63 309 IEM KUG;
+#X text 115 41 click properties to;
+#X text 103 52 modify geometry \, colors \, etc.;
+#X obj 168 113 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
-1 -1;
-#X obj 302 103 s foo6_rcv;
-#X obj 302 127 r foo6_snd;
-#X obj 56 274 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+#X obj 168 179 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
+-1 -1;
+#X obj 168 133 s foo6_rcv;
+#X obj 168 159 r foo6_snd;
+#X text 153 14 gui-toggle:;
+#X obj 26 270 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
-1;
-#X obj 26 124 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+#X obj 10 117 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
-1;
-#X msg 29 65 33;
-#X obj 56 184 tgl 60 1 foo6_snd foo6_rcv big_toggle 66 27 2 13 -228992
+#X msg 26 39 33;
+#X obj 26 180 tgl 60 1 foo6_snd foo6_rcv big_toggle 63 20 194 13 -228992
-4033 -34 1 1;
-#X msg 72 87 1;
-#X msg 79 109 0;
-#X floatatom 56 253 4 0 0 0 - - -;
-#X msg 63 65 -0.001;
-#X msg 183 123 set 1;
-#X msg 188 145 set 0;
-#X obj 20 159 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
-1;
-#X obj 95 253 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1
+#X msg 42 79 1;
+#X msg 49 99 0;
+#X floatatom 26 249 4 0 0;
+#X msg 33 59 -0.001;
+#X msg 103 135 set 1;
+#X msg 108 157 set 0;
+#X obj 3 155 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1
+;
+#X obj 65 249 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1
1;
-#X msg 175 101 set -0.23;
-#X obj 323 59 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
+#X msg 95 114 set -0.23;
+#X obj 189 93 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0
1;
-#X obj 322 153 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1
+#X obj 188 179 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1
1;
-#X msg 173 79 0 3 4.55;
-#X msg 165 57 0.22 0 -5.44;
-#X msg 323 79 set \$1;
-#X text 345 151 [tgl] has settable send;
-#N canvas 47 373 428 173 tgl_without_gui 0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 2 [tgl] Build a toggle without a gui;
-#X obj 58 87 == 0;
-#X floatatom 22 138 3 0 0 0 - - -;
-#X obj 22 43 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X text 96 86 toggle;
-#X obj 22 87 f 1;
-#X text 95 69 This works like;
-#X text 97 105 without the gui.;
-#X connect 2 0 6 1;
+#X msg 93 93 0 3 4.55;
+#X msg 85 73 0.22 0 -5.44;
+#X msg 189 113 set \$1;
+#X text 96 222 UP- \, DOWN- \, LEFT- or RIGHT-key;
+#X text 95 233 for moving selected gui-objects;
+#N canvas 440 175 699 530 edit 0;
+#X msg 47 151 \; foo6_rcv color \$1 \$2 \$3;
+#X obj 47 126 pack 0 0 0;
+#X obj 47 98 f;
+#X msg 24 50 bang;
+#X floatatom 63 48 3 0 29;
+#X floatatom 79 68 3 0 29;
+#X floatatom 112 84 3 0 29;
+#X text 91 48 background;
+#X text 106 68 front-color;
+#X text 140 85 label-color;
+#X obj 49 223 f;
+#X msg 27 202 bang;
+#X floatatom 65 201 3 63 88;
+#X floatatom 100 223 3 0 37;
+#X obj 49 246 pack 0 0;
+#X text 127 223 y-label;
+#X text 93 201 x-label;
+#X msg 49 271 \; foo6_rcv label_pos \$1 \$2;
+#X floatatom 505 55 3 8 75;
+#X text 532 55 size;
+#X msg 505 76 \; foo6_rcv size \$1;
+#X obj 282 182 f;
+#X msg 260 161 bang;
+#X floatatom 298 160 3 -10 10;
+#X floatatom 333 182 3 -10 10;
+#X obj 282 205 pack 0 0;
+#X msg 282 230 \; foo6_rcv delta \$1 \$2;
+#X obj 296 301 f;
+#X msg 274 280 bang;
+#X floatatom 312 279 3 20 60;
+#X floatatom 347 301 3 150 200;
+#X obj 296 324 pack 0 0;
+#X msg 296 349 \; foo6_rcv pos \$1 \$2;
+#X text 326 160 x-delta;
+#X text 360 182 y-delta;
+#X text 340 279 x-position;
+#X text 374 301 y-position;
+#X obj 305 423 f;
+#X msg 283 402 bang;
+#X floatatom 321 401 3 -10 10;
+#X floatatom 356 423 3 -10 10;
+#X obj 305 446 pack 0 0;
+#X text 383 423 y-label;
+#X text 349 401 x-label;
+#X msg 305 471 \; foo6_rcv delta \$1 \$2;
+#X msg 499 140 \; foo6_rcv send foo6a_snd;
+#X msg 499 178 \; foo6_rcv send foo6_snd;
+#X msg 494 216 \; foo6_rcv receive foo6a_rcv;
+#X msg 494 254 \; foo6a_rcv receive foo6_rcv;
+#X msg 41 448 \; foo6_rcv label blabla;
+#X msg 41 484 \; foo6_rcv label big_toggle;
+#X obj 69 338 f;
+#X msg 47 317 bang;
+#X floatatom 85 316 3 0 2;
+#X floatatom 120 338 3 4 36;
+#X obj 69 361 pack 0 0;
+#X msg 69 386 \; foo6_rcv label_font \$1 \$2;
+#X text 113 316 font;
+#X text 149 338 height;
+#X floatatom 498 307 5 -200 200;
+#X text 542 307 nonzero-value;
+#X msg 498 331 \; foo6_rcv nonzero \$1;
+#X msg 503 412 \; foo6_rcv init 0;
+#X msg 510 479 \; foo6_rcv init 1;
+#X text 524 393 no init;
+#X text 500 461 init value on loadbang;
+#X msg 285 47 back;
+#X msg 285 67 front;
+#X msg 285 87 label;
+#X msg 247 47 bang;
+#N canvas 15 207 606 448 RGB_____________ 0;
+#X obj 97 56 inlet;
+#X obj 262 53 inlet;
+#X obj 339 55 inlet;
+#X obj 405 56 inlet;
+#X obj 97 270 bang;
+#X msg 77 295 0;
+#X msg 104 295 1;
+#X obj 146 268 bang;
+#X msg 132 295 0;
+#X msg 160 295 1;
+#X obj 196 269 bang;
+#X msg 187 295 0;
+#X msg 214 295 1;
+#X obj 265 313 spigot;
+#X obj 312 313 spigot;
+#X obj 359 313 spigot;
+#X obj 249 385 outlet;
+#X text 93 33 select;
+#X text 267 28 red;
+#X text 337 30 green;
+#X text 409 30 blue;
+#X obj 405 102 t b f;
+#X obj 339 160 +;
+#X obj 339 185 t b f;
+#X obj 339 216 +;
+#X obj 296 385 outlet;
+#X obj 343 385 outlet;
+#X obj 28 180 loadbang;
+#X obj 97 135 route back front label bang;
+#X obj 343 362 f;
+#X obj 296 361 f;
+#X obj 249 361 f;
+#X obj 262 79 * -65536;
+#X obj 339 80 * -256;
+#X obj 405 80 * -1;
+#X obj 339 247 - 1;
+#X obj 235 168 t b b b b;
+#X connect 0 0 28 0;
+#X connect 1 0 32 0;
+#X connect 2 0 33 0;
+#X connect 3 0 34 0;
+#X connect 4 0 5 0;
#X connect 4 0 6 0;
-#X connect 6 0 2 0;
-#X connect 6 0 3 0;
-#X restore 100 552 pd tgl_without_gui;
-#X text 98 316 bang;
-#X text 168 316 - toggle between zero and the non-zero value.;
-#X text 98 331 float;
-#X text 98 346 list;
-#X text 168 346 - a list will be concatenated to the first item.;
-#X text 168 331 - output the value.;
-#X text 98 431 float;
-#N canvas 80 194 428 314 tgl_creation_arguments 0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 7 2 [tgl] Creation Arguments and Dynamic Patching;
-#X text 19 38 "tgl" can be called with 14 creation arguments. These
-are not "optional" - all parameters must be filled or the gui-bng will
-not instantiate correctly.;
-#X text 21 127 It's unclear what the Unknown value is for- it is necessary
-to have it so you can specify the non-zero value.;
-#X text 22 164 Click the msg-box to dynamically create a tgl:;
-#X text 21 82 tgl creation arguments: Size Init sendName receiveName
-Label labelXOff labelYOff Font# fontSize bgColor foregroundColor LblColor
-initValue non-zeroValue;
-#X obj 23 231 s pd-tgl_creation_arguments;
-#X msg 23 186 obj 160 270 tgl 25 0 tgl-snd tgl-rcv Pleione 30 14 0
-20 5 18 13 0 1 \;;
-#X connect 7 0 6 0;
-#X restore 170 519 pd tgl_creation_arguments;
-#X text 11 23 gui-toggle between zero and a non-zero value;
-#X text 215 551 (c) musil@iem.kug.ac.at;
-#X text 257 564 IEM KUG;
-#X text 232 576 graz \, austria 2002;
-#X text 98 463 14;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X connect 22 0 24 0;
-#X connect 25 0 23 0;
-#X connect 25 0 40 0;
-#X connect 27 0 29 0;
-#X connect 28 0 29 0;
-#X connect 29 0 32 0;
-#X connect 29 0 37 0;
-#X connect 30 0 29 0;
-#X connect 31 0 29 0;
-#X connect 32 0 26 0;
-#X connect 33 0 29 0;
-#X connect 34 0 29 0;
-#X connect 35 0 29 0;
-#X connect 36 0 29 0;
-#X connect 38 0 29 0;
-#X connect 39 0 43 0;
-#X connect 41 0 29 0;
-#X connect 42 0 29 0;
-#X connect 43 0 24 0;
+#X connect 5 0 14 1;
+#X connect 5 0 15 1;
+#X connect 6 0 13 1;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 13 1;
+#X connect 8 0 15 1;
+#X connect 9 0 14 1;
+#X connect 10 0 11 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 1;
+#X connect 11 0 14 1;
+#X connect 12 0 15 1;
+#X connect 13 0 31 1;
+#X connect 14 0 30 1;
+#X connect 15 0 29 1;
+#X connect 21 0 22 0;
+#X connect 21 1 22 1;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 23 1 24 1;
+#X connect 24 0 35 0;
+#X connect 27 0 6 0;
+#X connect 28 0 4 0;
+#X connect 28 1 7 0;
+#X connect 28 2 10 0;
+#X connect 28 3 36 0;
+#X connect 29 0 26 0;
+#X connect 30 0 25 0;
+#X connect 31 0 16 0;
+#X connect 32 0 24 0;
+#X connect 33 0 22 0;
+#X connect 34 0 21 0;
+#X connect 35 0 15 0;
+#X connect 35 0 14 0;
+#X connect 35 0 13 0;
+#X connect 36 0 31 0;
+#X connect 36 1 30 0;
+#X connect 36 2 29 0;
+#X connect 36 3 35 0;
+#X restore 285 108 pd RGB_____________;
+#X floatatom 327 77 3 0 255;
+#X floatatom 370 77 3 0 255;
+#X floatatom 413 78 3 0 255;
+#X text 34 22 preset-colors;
+#X text 296 19 RGB-colors;
+#X text 327 59 red;
+#X text 363 58 green;
+#X text 411 58 blue;
+#X connect 1 0 0 0;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 4 0 2 1;
+#X connect 5 0 1 1;
+#X connect 6 0 1 2;
+#X connect 10 0 14 0;
+#X connect 11 0 10 0;
+#X connect 12 0 10 1;
+#X connect 13 0 14 1;
+#X connect 14 0 17 0;
+#X connect 18 0 20 0;
+#X connect 21 0 25 0;
+#X connect 22 0 21 0;
+#X connect 23 0 21 1;
+#X connect 24 0 25 1;
+#X connect 25 0 26 0;
+#X connect 27 0 31 0;
+#X connect 28 0 27 0;
+#X connect 29 0 27 1;
+#X connect 30 0 31 1;
+#X connect 31 0 32 0;
+#X connect 37 0 41 0;
+#X connect 38 0 37 0;
+#X connect 39 0 37 1;
+#X connect 40 0 41 1;
+#X connect 41 0 44 0;
+#X connect 51 0 55 0;
+#X connect 52 0 51 0;
+#X connect 53 0 51 1;
+#X connect 54 0 55 1;
+#X connect 55 0 56 0;
+#X connect 59 0 61 0;
+#X connect 66 0 70 0;
+#X connect 67 0 70 0;
+#X connect 68 0 70 0;
+#X connect 69 0 70 0;
+#X connect 70 0 1 0;
+#X connect 70 1 1 1;
+#X connect 70 2 1 2;
+#X connect 71 0 70 1;
+#X connect 72 0 70 2;
+#X connect 73 0 70 3;
+#X restore 278 136 pd edit;
+#X obj 222 276 tgl 15 0 bbb bbb empty 20 8 192 8 -262144 -1 -1 1 1
+;
+#X text 191 320 updated for Pd version 0.35;
+#X text 38 321 graz \, austria 2002;
+#X obj 127 255 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X connect 5 0 7 0;
+#X connect 8 0 6 0;
+#X connect 8 0 24 0;
+#X connect 11 0 13 0;
+#X connect 12 0 13 0;
+#X connect 13 0 16 0;
+#X connect 13 0 21 0;
+#X connect 14 0 13 0;
+#X connect 15 0 13 0;
+#X connect 16 0 10 0;
+#X connect 17 0 13 0;
+#X connect 18 0 13 0;
+#X connect 19 0 13 0;
+#X connect 20 0 13 0;
+#X connect 22 0 13 0;
+#X connect 23 0 27 0;
+#X connect 25 0 13 0;
+#X connect 26 0 13 0;
+#X connect 27 0 7 0;
diff --git a/externals/vanilla/vslider-help.pd b/externals/vanilla/vslider-help.pd
index 8e88d26d..69452ad6 100644
--- a/externals/vanilla/vslider-help.pd
+++ b/externals/vanilla/vslider-help.pd
@@ -1,434 +1,302 @@
-#N canvas 0 0 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 vslider 3 12 0 18
--204280 -1 0;
-#X obj 0 306 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 52 226 494 387 META 0;
-#X text 12 135 LIBRARY internal;
-#X text 12 175 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 45 LICENSE SIBSD;
-#X text 12 155 AUTHOR Miller Puckette;
-#X text 12 215 HELP_PATCH_AUTHORS This help patch was updated for Pd
-version 0.35 test 28 by Dave Sabine as part of a project called pddp
-proposed by Krzysztof Czaja to build comprehensive documentation for
-Pd. Jonathan Wilkes revised the patch to conform to the PDDP template
-for Pd version 0.42.;
-#X text 12 25 KEYWORDS control storage GUI nonlocal;
-#X text 12 65 DESCRIPTION vertical gui-slider;
-#X text 12 5 ALIAS vsl;
-#X text 12 85 INLET_0 float bang size range log init steady receive
-send label label_pos label_font color pos delta;
-#X text 12 115 OUTLET_0 float;
-#X text 12 195 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 436 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 490 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 574 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X obj 78 315 cnv 17 3 106 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#N canvas 68 461 428 129 Related_objects 0;
-#X obj 20 53 x_all_guis bng tgl vsl hsl hradio vradio vu cnv nbx;
-#X text 18 29 All iem-gui objects:;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [vslider] Related Objects;
-#X restore 100 597 pd Related_objects;
-#X obj 78 445 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 98 314 float;
-#X text 98 445 float;
-#X text 54 259 Use the UP- \, DOWN- \, LEFT- or RIGHT-key to move a
-selected gui-object. Right-click and choose "Properties" to modify
-its appearance.;
-#X text 168 445 - when the slider value is changed by clicking \, dragging
-\, or sending a float to the inlet \, the new slider value is sent
-to the outlet.;
-#N canvas 53 19 464 608 Setting_slider_properties_through_messages
-0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X floatatom 12 189 1 0 1 0 - #0-soc -;
-#X text 324 35 no init;
-#X text 9 170 steady-on-click;
-#X text 11 309 label;
-#X msg 11 329 label blabla;
-#X msg 324 54 init 0;
-#X msg 12 222 steady \$1;
-#X msg 235 74 lin;
-#X msg 245 106 log;
-#X text 231 35 linear/;
-#X text 231 50 logarithmical;
-#X text 333 74 init value;
-#X text 334 89 on loadbang;
-#X text 235 170 change send name;
-#X text 108 170 change receive name;
-#X obj 122 245 s z_rcv;
-#X msg 110 192 receive z_rcv;
-#X msg 21 381 label mySlider;
-#X msg 122 222 receive hsl_rcv;
-#X msg 237 193 send hsl1_snd;
-#X msg 246 222 send hsl_snd;
-#N canvas 234 255 161 292 init 0;
-#X obj 16 11 loadbang;
-#X obj 16 42 f \$0;
-#X msg 16 73 \; \$1-xpos 391 \; \$1-ypos 200 \; \$1-xlabel -2 \; \$1-ylabel
--8 \; \$1-soc 1 \; \$1-font-size 10 \; \$1-width 15 \; \$1-height 128
-\; \$1-bottom 0 \; \$1-top 127 \; \$1-bg 0 \; \$1-front 12 \; \$1-label
-12;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X restore 400 586 pd init;
-#X msg 334 110 init 1;
-#X msg 12 106 size \$1 \$2;
-#X text 61 57 1.width;
-#X text 61 78 2.height;
-#X text 173 57 1.bottom;
-#X text 173 78 2.top;
-#X text 121 35 output-range;
-#X msg 124 106 range \$1 \$2;
-#X text 242 308 font properties;
-#X msg 244 380 label_font \$1 \$2;
-#X text 293 330 1.font(0-2);
-#X text 293 351 2.height;
-#X text 120 309 label position;
-#X msg 122 380 label_pos \$1 \$2;
-#X text 171 330 1.x-offset;
-#X text 171 351 2.y-offset;
-#X obj 375 184 cnv 15 67 172 empty empty empty 20 12 0 14 -1 -66577
-0;
-#X obj 376 185 cnv 15 65 170 empty empty empty 20 12 0 14 -261682 -66577
-0;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-width empty
-0 -8 0 12 -262144 -1 -1 15 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-height empty
-0 -8 0 12 -262144 -1 -1 128 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 12 56 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-bottom empty
-0 -8 0 12 -262144 -1 -1 0 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-top empty 0
--8 0 12 -262144 -1 -1 127 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 124 56 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-xlabel empty
-0 -8 0 12 -262144 -1 -1 -2 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-ylabel empty
-0 -8 0 12 -262144 -1 -1 -8 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 122 329 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 0 2 0 0 \$0-dummy \$0-font empty 0 -8 0 12
--262144 -1 -1 0 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-font-size empty
-0 -8 0 12 -262144 -1 -1 10 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 244 329 pd flash-time;
-#X text 9 449 preset-colors;
-#X text 105 449 RGB-colors;
-#X msg 12 555 color \$1 \$2 \$3;
-#N canvas 364 205 306 317 flash-time 0;
-#X obj 69 196 t b a;
-#X obj 33 262 outlet;
-#X obj 33 237 pack 0 0 0;
-#X obj 120 197 t b a;
-#X obj 103 104 nbx 3 14 0 29 0 0 \$0-dummy \$0-bg empty 0 -8 0 12 -262144
--1 -1 0 256;
-#X obj 103 124 nbx 3 14 0 29 0 0 \$0-dummy \$0-front empty 0 -8 0 12
--262144 -1 -1 12 256;
-#X obj 103 144 nbx 3 14 0 29 0 0 \$0-dummy \$0-label empty 0 -8 0 12
--262144 -1 -1 12 256;
-#X connect 0 0 2 0;
-#X connect 0 1 2 1;
-#X connect 2 0 1 0;
-#X connect 3 0 2 0;
-#X connect 3 1 2 2;
-#X connect 4 0 2 0;
-#X connect 5 0 0 0;
-#X connect 6 0 3 0;
-#X coords 0 -1 1 1 48 62 2 100 100;
-#X restore 12 470 pd flash-time;
-#N canvas 0 0 306 317 flash-time 0;
-#X obj 96 521 outlet;
-#X obj 162 230 t b f;
-#X obj 96 268 +;
-#X obj 96 293 t b f;
-#X obj 96 324 +;
-#X obj 19 208 * -65536;
-#X obj 96 208 * -256;
-#X obj 162 208 * -1;
-#X obj 96 355 - 1;
-#X obj 96 385 list prepend 0;
-#X obj 96 410 route 0 1 2;
-#X obj 96 497 pack 0 0 0;
-#X obj 115 456 t b a;
-#X obj 168 455 t b a;
-#X obj 104 124 vradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144
--1 -1 0;
-#X text 120 120 1.bg;
-#X text 120 137 2.front;
-#X text 120 153 3.label;
-#X obj 103 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-r empty 0 -8 0 10 -262144
--258113 -1 0 256;
-#X obj 133 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-g empty 0 -8 0 10 -262144
--13381 -1 0 256;
-#X obj 163 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-b empty 0 -8 0 10 -262144
--4160 -1 0 256;
-#X connect 1 0 2 0;
-#X connect 1 1 2 1;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 3 1 4 1;
-#X connect 4 0 8 0;
-#X connect 5 0 4 0;
-#X connect 6 0 2 0;
-#X connect 7 0 1 0;
-#X connect 8 0 9 0;
-#X connect 9 0 10 0;
+#N canvas 147 201 617 416 10;
+#X obj 1 1 cnv 8 100 60 empty empty vslider=vsl 20 20 1 18 -262144
+-1109 0;
+#X floatatom 38 300 9 0 0;
+#X msg 47 84 set \$1;
+#X floatatom 38 43 7 0 0;
+#X text 25 363 (c) musil@iem.kug.ac.at;
+#X text 67 376 IEM KUG;
+#X obj 38 324 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X obj 18 47 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
+-1;
+#X floatatom 47 63 7 0 0;
+#X floatatom 116 324 9 0 0;
+#X floatatom 106 42 7 0 0;
+#X floatatom 147 113 7 0 0;
+#X obj 75 249 ftom;
+#X floatatom 75 271 9 0 0;
+#X floatatom 111 244 9 0 0;
+#X floatatom 185 266 9 0 0;
+#X text 181 151 click properties to;
+#X floatatom 75 112 9 0 0;
+#X obj 75 134 mtof;
+#X text 166 12 gui-vertical-slider:;
+#X obj 38 162 vsl 15 101 100 300 0 1 foo3_snd foo3_rcv empty 8 -8 192
+10 -225280 -1109 -1 2500 1;
+#X obj 75 168 vsl 15 73 55 3520 1 1 goo4_snd goo4_rcv log.freq. 11
+-6 192 10 -261681 -260818 -90881 0 1;
+#X obj 185 244 r goo4_snd;
+#X obj 147 133 s goo4_rcv;
+#X text 202 65 (0.01 pixels);
+#X text 57 99 ------------------------------------------;
+#X text 57 286 --------------------------------------------;
+#X text 169 162 modify geometry \, colors \, etc.;
+#X obj 106 84 s foo3_rcv;
+#X obj 116 302 r foo3_snd;
+#X msg 106 63 set \$1;
+#X text 188 44 shift-click & drag;
+#X text 194 54 for fine-tuning;
+#X text 119 192 UP- \, DOWN- \, LEFT- or RIGHT-key;
+#X text 118 203 for moving selected gui-objects;
+#N canvas 239 379 699 530 edit 0;
+#X obj 37 233 f;
+#X msg 15 212 bang;
+#X floatatom 53 211 3 6 88;
+#X floatatom 88 233 3 -20 37;
+#X obj 37 256 pack 0 0;
+#X text 115 233 y-label;
+#X text 81 211 x-label;
+#X obj 287 271 f;
+#X msg 265 250 bang;
+#X floatatom 303 249 3 -10 10;
+#X floatatom 338 271 3 -10 10;
+#X obj 287 294 pack 0 0;
+#X obj 299 381 f;
+#X msg 277 360 bang;
+#X floatatom 315 359 3 20 90;
+#X floatatom 350 381 3 150 200;
+#X obj 299 404 pack 0 0;
+#X text 331 249 x-delta;
+#X text 365 271 y-delta;
+#X text 343 359 x-position;
+#X text 377 381 y-position;
+#X obj 57 348 f;
+#X msg 35 327 bang;
+#X floatatom 73 326 3 0 2;
+#X floatatom 108 348 3 4 36;
+#X obj 57 371 pack 0 0;
+#X text 101 326 font;
+#X text 137 348 height;
+#X floatatom 476 188 1 0 1;
+#X text 523 401 no init;
+#X text 493 453 init value on loadbang;
+#X text 520 188 steady;
+#X obj 486 291 f;
+#X msg 464 270 bang;
+#X floatatom 502 269 4 55 440;
+#X floatatom 537 291 6 440 3520;
+#X obj 486 314 pack 0 0;
+#X text 269 469 linear / logarithmical;
+#X msg 47 158 \; goo4_rcv color \$1 \$2 \$3;
+#X msg 37 281 \; goo4_rcv label_pos \$1 \$2;
+#X msg 57 396 \; goo4_rcv label_font \$1 \$2;
+#X msg 40 442 \; goo4_rcv label blabla;
+#X msg 269 487 \; goo4_rcv lin;
+#X msg 363 486 \; goo4_rcv log;
+#X msg 299 429 \; goo4_rcv pos \$1 \$2;
+#X msg 287 319 \; goo4_rcv delta \$1 \$2;
+#X msg 475 21 \; goo4_rcv send goo4a_snd;
+#X msg 475 59 \; goo4_rcv send goo4_snd;
+#X msg 476 105 \; goo4_rcv receive goo4a_rcv;
+#X msg 476 143 \; goo4a_rcv receive goo4_rcv;
+#X msg 486 339 \; goo4_rcv range \$1 \$2;
+#X msg 502 420 \; goo4_rcv init 0;
+#X msg 503 471 \; goo4_rcv init 1;
+#X text 539 270 bottom-range-bound;
+#X text 586 292 top-range-bound;
+#X obj 286 160 f;
+#X msg 264 139 bang;
+#X floatatom 302 138 3 4 55;
+#X floatatom 337 160 3 15 73;
+#X obj 286 183 pack 0 0;
+#X msg 286 208 \; goo4_rcv size \$1 \$2;
+#X text 330 138 width;
+#X text 368 161 height;
+#X msg 41 478 \; goo4_rcv label log.freq.;
+#X msg 476 212 \; goo4_rcv steady \$1;
+#X obj 47 116 pack 0 0 0;
+#X obj 47 88 f;
+#X msg 24 40 bang;
+#X floatatom 63 38 3 0 29;
+#X floatatom 79 58 3 0 29;
+#X floatatom 112 74 3 0 29;
+#X text 91 38 background;
+#X text 106 58 front-color;
+#X text 140 75 label-color;
+#X msg 285 37 back;
+#X msg 285 57 front;
+#X msg 285 77 label;
+#X msg 247 37 bang;
+#N canvas 15 207 606 448 RGB_____________ 0;
+#X obj 97 56 inlet;
+#X obj 262 53 inlet;
+#X obj 339 55 inlet;
+#X obj 405 56 inlet;
+#X obj 97 270 bang;
+#X msg 77 295 0;
+#X msg 104 295 1;
+#X obj 146 268 bang;
+#X msg 132 295 0;
+#X msg 160 295 1;
+#X obj 196 269 bang;
+#X msg 187 295 0;
+#X msg 214 295 1;
+#X obj 265 313 spigot;
+#X obj 312 313 spigot;
+#X obj 359 313 spigot;
+#X obj 249 385 outlet;
+#X text 93 33 select;
+#X text 267 28 red;
+#X text 337 30 green;
+#X text 409 30 blue;
+#X obj 405 102 t b f;
+#X obj 339 160 +;
+#X obj 339 185 t b f;
+#X obj 339 216 +;
+#X obj 296 385 outlet;
+#X obj 343 385 outlet;
+#X obj 28 180 loadbang;
+#X obj 97 135 route back front label bang;
+#X obj 343 362 f;
+#X obj 296 361 f;
+#X obj 249 361 f;
+#X obj 262 79 * -65536;
+#X obj 339 80 * -256;
+#X obj 405 80 * -1;
+#X obj 339 247 - 1;
+#X obj 235 168 t b b b b;
+#X connect 0 0 28 0;
+#X connect 1 0 32 0;
+#X connect 2 0 33 0;
+#X connect 3 0 34 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 14 1;
+#X connect 5 0 15 1;
+#X connect 6 0 13 1;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 13 1;
+#X connect 8 0 15 1;
+#X connect 9 0 14 1;
#X connect 10 0 11 0;
-#X connect 10 1 12 0;
-#X connect 10 2 13 0;
-#X connect 11 0 0 0;
-#X connect 12 0 11 0;
-#X connect 12 1 11 1;
-#X connect 13 0 11 0;
-#X connect 13 1 11 2;
-#X connect 14 0 9 1;
-#X connect 18 0 5 0;
-#X connect 19 0 6 0;
-#X connect 20 0 7 0;
-#X coords 0 -1 1 1 102 74 2 100 100;
-#X restore 109 470 pd flash-time;
-#X text 61 472 1.bg;
-#X text 61 492 2.front;
-#X text 61 513 3.label;
-#X text 318 449 delta;
-#X text 218 449 position;
-#X msg 219 541 pos \$1 \$2;
-#X msg 319 541 delta \$1 \$2;
-#X obj 319 518 list;
-#X obj 319 471 bng 20 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X text 398 470 1.x-delta;
-#X text 398 492 2.y-delta;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-xpos empty 0
--8 0 12 -262144 -1 -1 391 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-ypos empty 0
--8 0 12 -262144 -1 -1 200 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 219 471 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -20 20 0 0 \$0-dummy \$0-xdelta empty 0 -8
-0 12 -262144 -1 -1 0 256;
-#X obj 103 124 nbx 3 14 -20 20 0 0 \$0-dummy \$0-ydelta empty 0 -8
-0 12 -262144 -1 -1 0 256;
-#X connect 0 0 2 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 1;
+#X connect 11 0 14 1;
+#X connect 12 0 15 1;
+#X connect 13 0 31 1;
+#X connect 14 0 30 1;
+#X connect 15 0 29 1;
+#X connect 21 0 22 0;
+#X connect 21 1 22 1;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 23 1 24 1;
+#X connect 24 0 35 0;
+#X connect 27 0 6 0;
+#X connect 28 0 4 0;
+#X connect 28 1 7 0;
+#X connect 28 2 10 0;
+#X connect 28 3 36 0;
+#X connect 29 0 26 0;
+#X connect 30 0 25 0;
+#X connect 31 0 16 0;
+#X connect 32 0 24 0;
+#X connect 33 0 22 0;
+#X connect 34 0 21 0;
+#X connect 35 0 15 0;
+#X connect 35 0 14 0;
+#X connect 35 0 13 0;
+#X connect 36 0 31 0;
+#X connect 36 1 30 0;
+#X connect 36 2 29 0;
+#X connect 36 3 35 0;
+#X restore 285 98 pd RGB_____________;
+#X floatatom 327 67 3 0 255;
+#X floatatom 370 67 3 0 255;
+#X floatatom 413 68 3 0 255;
+#X text 34 12 preset-colors;
+#X text 296 9 RGB-colors;
+#X text 327 49 red;
+#X text 363 48 green;
+#X text 411 48 blue;
+#X connect 0 0 4 0;
#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 348 471 pd flash-time;
-#X floatatom 392 337 5 0 0 0 - - -;
-#X text 11 36 dimensions;
-#X text 267 470 1.x-pos;
-#X text 267 492 2.y-pos;
-#X obj 12 135 s vsl_rcv;
-#X obj 124 135 s vsl_rcv;
-#X obj 235 135 s vsl_rcv;
-#X obj 324 135 s vsl_rcv;
-#X obj 12 270 s vsl_rcv;
-#X obj 110 270 s vsl_rcv;
-#X obj 237 270 s vsl_rcv;
-#X obj 11 409 s vsl_rcv;
-#X obj 122 409 s vsl_rcv;
-#X obj 244 405 s vsl_rcv;
-#X obj 12 580 s vsl_rcv;
-#X obj 219 566 s vsl_rcv;
-#X obj 319 566 s vsl_rcv;
-#X obj 391 200 vsl 15 128 0 127 0 0 vsl_snd vsl_rcv mySlider -2 -8
-0 10 -262144 -33289 -33289 0 1;
-#X text 8 2 [vslider] Set Properties through Messages;
-#X connect 1 0 7 0;
-#X connect 5 0 74 0;
-#X connect 6 0 70 0;
-#X connect 7 0 71 0;
-#X connect 8 0 69 0;
-#X connect 9 0 69 0;
-#X connect 17 0 72 0;
-#X connect 18 0 74 0;
-#X connect 19 0 16 0;
-#X connect 20 0 73 0;
-#X connect 21 0 73 0;
-#X connect 23 0 70 0;
-#X connect 24 0 67 0;
-#X connect 30 0 68 0;
-#X connect 32 0 76 0;
-#X connect 36 0 75 0;
-#X connect 41 0 24 0;
-#X connect 42 0 30 0;
-#X connect 43 0 36 0;
-#X connect 44 0 32 0;
-#X connect 47 0 77 0;
-#X connect 48 0 47 0;
-#X connect 49 0 47 0;
-#X connect 55 0 78 0;
-#X connect 56 0 79 0;
-#X connect 57 0 56 0;
-#X connect 58 0 57 0;
-#X connect 61 0 55 0;
-#X connect 62 0 57 1;
-#X connect 80 0 63 0;
-#X restore 101 406 pd Setting_slider_properties_through_messages;
-#X text 430 3 abbreviation: [vsl];
-#X obj 455 20 pddp/pddplink http://wiki.puredata.info/en/vsl -text
-pdpedia: vsl;
-#X obj 57 213 ftom;
-#X floatatom 57 237 9 0 0 0 - - -;
-#X floatatom 104 213 9 0 0 0 - - -;
-#X floatatom 57 84 9 0 0 0 - - -;
-#X obj 57 106 mtof;
-#X text 97 177 (0.01 pixels);
-#X text 99 148 shift-click & drag;
-#X text 99 163 for fine-tuning;
-#X obj 57 132 vsl 15 73 55 3520 1 1 goo4_snd goo4_rcv log.freq. 20
-6 0 10 -261681 -260818 -90881 2244 1;
-#X text 380 170 names. Right-click and;
-#X text 380 155 send and receive names.;
-#X text 379 186 choose "Properties" to;
-#X text 380 200 set them \, or change them;
-#X text 380 214 with messages (see below);
-#X floatatom 250 216 4 0 0 0 - - -;
-#X msg 309 69 set \$1;
-#X floatatom 270 47 4 0 0 0 - - -;
-#X obj 250 240 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144
--1 -1;
-#X obj 250 47 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1
--1;
-#X floatatom 309 48 4 0 0 0 - - -;
-#X floatatom 310 191 4 0 0 0 - - -;
-#X floatatom 309 100 4 0 0 0 - - -;
-#X obj 250 102 vsl 15 101 100 300 0 1 foo3_snd foo3_rcv empty 8 -8
-0 10 -225280 -1109 -1 5350 1;
-#X obj 309 143 s foo3_rcv;
-#X obj 310 169 r foo3_snd;
-#X msg 309 121 set \$1;
-#X obj 294 240 print;
+#X connect 2 0 0 1;
+#X connect 3 0 4 1;
+#X connect 4 0 39 0;
+#X connect 7 0 11 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 1;
+#X connect 10 0 11 1;
+#X connect 11 0 45 0;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 1;
+#X connect 15 0 16 1;
+#X connect 16 0 44 0;
+#X connect 21 0 25 0;
+#X connect 22 0 21 0;
+#X connect 23 0 21 1;
+#X connect 24 0 25 1;
+#X connect 25 0 40 0;
+#X connect 28 0 64 0;
+#X connect 32 0 36 0;
+#X connect 33 0 32 0;
+#X connect 34 0 32 1;
+#X connect 35 0 36 1;
+#X connect 36 0 50 0;
+#X connect 55 0 59 0;
+#X connect 56 0 55 0;
+#X connect 57 0 55 1;
+#X connect 58 0 59 1;
+#X connect 59 0 60 0;
+#X connect 65 0 38 0;
+#X connect 66 0 65 0;
+#X connect 67 0 66 0;
+#X connect 68 0 66 1;
+#X connect 69 0 65 1;
+#X connect 70 0 65 2;
+#X connect 74 0 78 0;
+#X connect 75 0 78 0;
+#X connect 76 0 78 0;
+#X connect 77 0 78 0;
+#X connect 78 0 65 0;
+#X connect 78 1 65 1;
+#X connect 78 2 65 2;
+#X connect 79 0 78 1;
+#X connect 80 0 78 2;
+#X connect 81 0 78 3;
+#X restore 327 48 pd edit;
+#X obj 61 345 print;
#N canvas 276 200 290 224 once 0;
+#X obj 38 47 t b b f;
+#X msg 56 85 1;
+#X obj 31 108 f 0;
+#X obj 31 131 pack 0 0;
+#X obj 31 156 route 0;
#X obj 38 24 inlet;
-#X obj 38 91 outlet;
-#X obj 38 69 t a b;
-#X obj 38 47 spigot 1;
-#X obj 97 47 0;
-#X connect 0 0 3 0;
-#X connect 2 0 1 0;
-#X connect 2 1 4 0;
-#X connect 3 0 2 0;
-#X connect 4 0 3 1;
-#X restore 294 216 pd once;
-#X text 98 374 Special messages can be sent to [vslider] to change
-its properties:;
-#N canvas 65 102 428 434 vsl-creation-arguments 0;
-#X text 22 226 For example \, click the msg-box to dynamically create
-a hsl:;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [vslider] Creation Arguments and Dynamic Patching;
-#X obj 23 290 s pd-vsl-creation-arguments;
-#X text 21 38 "vsl" can be called with 18 creation arguments. These
-are not "optional" - all parameters must be filled or the gui-bng will
-not instantiate correctly.;
-#X text 21 85 vsl creation arguments: xSize ySize rangeBtm rangeTop
-Logarithmic Init sendName receiveName Label labelXOff labelYOff Font#
-fontSize bgColor foregroundColor lblColor sliderPosition steadyOnClick
-;
-#X text 22 143 note: sliderPosition is not the same as the initialization
-value. To dynamically instantiate an hsl that initializes with a desired
-value \, save an hsl in a patch and view it in a text editor to get
-the right value for sliderPosition. Or \, refer to hslider_set in g_vslider.c
-for conversion between sliderPosition and slider value.;
-#X msg 23 248 obj 150 335 vsl 75 75 -1 1 0 1 send receive Merope 15
--9 0 12 7 13 21 4400 0;
-#X connect 7 0 3 0;
-#X restore 170 546 pd vsl-creation-arguments;
-#X text 379 139 vslider has settable;
-#X text 11 21 vertical gui-slider;
-#X text 98 494 18;
-#X text 168 494 - creating a [vslider] object without arguments sets
-default values for its gui-properties. See the subpatch below to learn
-how to dynamically instantiate a [bng] object with custom properties:
-;
-#X text 168 314 - a float updates the slider value and is sent to the
-outlet.;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X text 98 356 list;
-#X text 168 356 - a list is truncated to the first element.;
-#X text 98 339 bang;
-#X text 168 339 - output the current slider value.;
+#X obj 31 180 outlet;
+#X connect 0 0 1 0;
+#X connect 0 1 2 0;
+#X connect 0 2 3 1;
+#X connect 1 0 2 1;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 6 0;
+#X connect 5 0 0 0;
+#X restore 61 322 pd once;
+#X obj 377 110 vsl 15 128 0 127 0 0 ccc ccc empty 20 8 192 8 -262144
+-1 -1 4200 1;
+#X obj 249 87 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X text 218 387 updated for Pd version 0.35;
+#X text 42 388 graz \, austria 2002;
+#X connect 1 0 6 0;
+#X connect 2 0 20 0;
+#X connect 3 0 20 0;
+#X connect 7 0 20 0;
+#X connect 8 0 2 0;
+#X connect 10 0 30 0;
+#X connect 11 0 23 0;
+#X connect 12 0 13 0;
#X connect 17 0 18 0;
-#X connect 20 0 21 0;
-#X connect 21 0 25 0;
-#X connect 25 0 17 0;
-#X connect 25 0 19 0;
-#X connect 31 0 34 0;
-#X connect 32 0 39 0;
-#X connect 33 0 39 0;
-#X connect 35 0 39 0;
-#X connect 36 0 32 0;
-#X connect 38 0 42 0;
-#X connect 39 0 31 0;
-#X connect 39 0 44 0;
-#X connect 41 0 37 0;
-#X connect 42 0 40 0;
-#X connect 44 0 43 0;
+#X connect 18 0 21 0;
+#X connect 20 0 1 0;
+#X connect 20 0 37 0;
+#X connect 21 0 14 0;
+#X connect 21 0 12 0;
+#X connect 22 0 15 0;
+#X connect 29 0 9 0;
+#X connect 30 0 28 0;
+#X connect 37 0 36 0;
diff --git a/externals/vanilla/vu-help.pd b/externals/vanilla/vu-help.pd
index 1615cdb2..3c94ba52 100644
--- a/externals/vanilla/vu-help.pd
+++ b/externals/vanilla/vu-help.pd
@@ -1,326 +1,210 @@
-#N canvas 0 0 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 vu 3 12 0 18 -204280
--1 0;
-#X obj 0 287 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 53 246 494 344 META 0;
-#X text 12 155 LIBRARY internal;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 175 AUTHOR Thomas Musil;
-#X text 12 195 WEBSITE;
-#X text 12 5 KEYWORDS control GUI nonlocal;
-#X text 12 45 DESCRIPTION gui-vu-meter-display;
-#X text 12 65 INLET_0 float list bang size scale receive label label_pos
-label_font color pos delta;
-#X text 12 95 INLET_1 float;
-#X text 12 115 OUTLET_0 float;
-#X text 12 135 OUTLET_1 float;
-#X text 12 215 RELEASE_DATE 2002;
-#X text 12 235 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
-to conform to the PDDP template for Pd version 0.42.;
-#X restore 500 597 pd META;
-#X obj 0 435 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 489 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 572 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#N canvas 81 462 428 126 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 text 8 2 [vu] Related Objects;
-#X obj 22 91 x_all_guis bng tgl vsl hsl hradio vradio vu cnv nbx;
-#X text 20 67 All iem-gui objects:;
-#X obj 23 43 env~;
-#X restore 102 597 pd Related_objects;
-#X obj 78 296 cnv 17 3 90 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X text 98 295 float;
-#X obj 78 444 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 396 cnv 17 3 30 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
--162280 0;
-#X obj 465 20 pddp/pddplink http://wiki.puredata.info/en/vu -text pdpedia:
-vu;
-#X text 98 312 list;
-#X text 98 396 float;
-#X text 98 412 list;
-#X text 168 312 - a 2-item list will be distributed to the two inlets
+#N canvas 171 210 549 418 10;
+#X obj 1 1 cnv 8 100 60 empty empty vu 20 20 1 18 -262144 -1109 0;
+#X text 19 363 (c) musil@iem.kug.ac.at;
+#X text 61 376 IEM KUG;
+#X floatatom 177 129 7 -110 20;
+#X text 202 41 click properties to;
+#X text 190 52 modify geometry \, colors \, etc.;
+#X text 49 13 gui-vu-meter-display:;
+#X obj 99 39 tgl 15 1 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1
;
-#X text 98 444 float;
-#X obj 78 466 cnv 17 3 17 empty \$0-pddp.cnv.let.1 1 5 9 0 16 -228856
--162280 0;
-#X text 98 466 float;
-#N canvas 76 117 428 416 vu-creation-arguments 0;
-#X obj 25 237 s pd-vu-creation-arguments;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X text 8 2 [vu] Creation Arguments;
-#X text 22 163 For example \, click the msg-box to dynamically create
-a [vu]:;
-#X text 23 98 [vu] creation arguments: xSize ySize receiveName Label
-labelXOff labelYOff font# fontSize bgColor labelColor Scale Unknown(0)
-;
-#X text 22 38 [vu] can be called with 12 creation arguments. These
-are not "optional" - all parameters must be filled or the gui-bng will
-not instantiate correctly.;
-#X msg 25 195 obj 160 280 vu 15 120 fff Elektra -15 -12 0 12 26 12
-0 0;
-#X connect 6 0 0 0;
-#X restore 170 549 pd vu-creation-arguments;
-#N canvas 75 10 428 611 Changing_GUI_Properties 0;
-#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
-14 -204280 -1 0;
-#X floatatom 130 62 1 0 1 0 - #0-scale -;
-#X text 124 38 display scale;
-#X msg 130 116 scale \$1;
-#X obj 130 141 s vu_rcv;
-#X text 213 38 change receive name;
-#X obj 215 141 s vu_rcv;
-#X msg 215 62 receive vu12_rcv;
-#X obj 231 114 s vu12_rcv;
-#X msg 231 89 receive vu_rcv;
-#X msg 339 61 label blabla;
-#X obj 339 141 s vu_rcv;
-#X text 339 38 label;
-#N canvas 378 326 151 256 init 0;
-#X obj 16 11 loadbang;
-#X obj 16 42 f \$0;
-#X msg 16 73 \; \$1-xpos 330 \; \$1-ypos 245 \; \$1-scale 1 \; \$1-xlabel
--1 \; \$1-ylabel -8 \; \$1-label 12 \; \$1-font-size 10 \; \$1-width
-15 \; \$1-height 120 \; \$1-font 0 \; \$1-bg 12 \; \$1-bg 12;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X restore 352 404 pd init;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-width empty
-0 -8 0 12 -262144 -1 -1 15 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-height empty
-0 -8 0 12 -262144 -1 -1 120 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 22 59 pd flash-time;
-#X text 19 38 dimensions;
-#X text 71 61 1.width;
-#X text 71 81 2.height;
-#X msg 22 116 size \$1 \$2;
-#X obj 22 141 s vu_rcv;
-#X text 20 175 label position;
-#X text 152 175 font properties;
-#X msg 22 250 label_pos \$1 \$2;
-#X msg 154 250 label_font \$1 \$2;
-#X text 203 199 1.font(0-2);
-#X text 203 220 2.height;
-#X text 71 198 1.x-offset;
-#X text 71 219 2.y-offset;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-xlabel empty
-0 -8 0 12 -262144 -1 -1 -1 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-ylabel empty
-0 -8 0 12 -262144 -1 -1 -8 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 22 197 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 0 2 0 0 \$0-dummy \$0-font empty 0 -8 0 12
--262144 -1 -1 0 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-font-size empty
-0 -8 0 12 -262144 -1 -1 10 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 154 197 pd flash-time;
-#X text 22 310 preset-colors;
-#X text 131 310 RGB-colors;
-#N canvas 364 205 169 292 flash-time 0;
-#X obj 69 196 t b a;
-#X obj 33 262 outlet;
-#X obj 103 104 nbx 3 14 0 29 0 0 \$0-dummy \$0-bg empty 0 -8 0 12 -262144
--1 -1 12 256;
-#X obj 103 124 nbx 3 14 0 29 0 0 \$0-dummy \$0-label empty 0 -8 0 12
--262144 -1 -1 12 256;
-#X obj 33 237 pack 0 0;
-#X connect 0 0 4 0;
-#X connect 0 1 4 1;
-#X connect 2 0 4 0;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 22 332 pd flash-time;
-#N canvas 0 0 306 317 flash-time 0;
-#X obj 96 521 outlet;
-#X obj 162 230 t b f;
-#X obj 96 268 +;
-#X obj 96 293 t b f;
-#X obj 96 324 +;
-#X obj 19 208 * -65536;
-#X obj 96 208 * -256;
-#X obj 162 208 * -1;
-#X obj 96 355 - 1;
-#X obj 96 385 list prepend 0;
-#X obj 115 456 t b a;
-#X obj 104 124 vradio 15 1 0 2 empty empty empty 0 -8 0 10 -262144
--1 -1 0;
-#X text 120 120 1.bg;
-#X obj 103 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-r empty 0 -8 0 10 -262144
--258113 -1 0 256;
-#X obj 133 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-g empty 0 -8 0 10 -262144
--13381 -1 0 256;
-#X obj 163 105 nbx 3 14 0 255 0 0 \$0-dummy \$0-b empty 0 -8 0 10 -262144
--4160 -1 0 256;
-#X text 120 137 2.label;
-#X obj 96 410 route 0 1;
-#X obj 96 497 pack 0 0;
-#X connect 1 0 2 0;
-#X connect 1 1 2 1;
-#X connect 2 0 3 0;
-#X connect 3 0 4 0;
-#X connect 3 1 4 1;
-#X connect 4 0 8 0;
-#X connect 5 0 4 0;
-#X connect 6 0 2 0;
-#X connect 7 0 1 0;
-#X connect 8 0 9 0;
-#X connect 9 0 17 0;
-#X connect 10 0 18 0;
-#X connect 10 1 18 1;
-#X connect 11 0 9 1;
-#X connect 13 0 5 0;
-#X connect 14 0 6 0;
-#X connect 15 0 7 0;
+#X obj 12 179 vu 16 120 foo7_rcv vu-meter 60 0 64 10 -1 -355 1 0;
+#X floatatom 11 332 6 0 0;
+#X floatatom 22 310 6 0 0;
+#X text 75 309 dB;
+#X text 63 333 dB;
+#X text 71 128 dB;
+#X text 80 148 dB;
+#X text 103 146 peak-level;
+#X text 101 125 rms-level;
+#X text 96 308 peak-level;
+#X text 83 332 rms-level;
+#X text 108 99 <list> of rms \, peak;
+#X obj 177 231 s foo7_rcv;
+#X obj 177 211 pack 0 0;
+#X floatatom 195 150 7 -110 20;
+#X obj 195 191 t b f;
+#X text 236 129 dB;
+#X text 255 151 dB;
+#X text 71 258 UP- \, DOWN- \, LEFT- or RIGHT-key;
+#X text 70 269 for moving selected gui-objects;
+#X floatatom 11 128 7 -110 20;
+#X floatatom 22 149 7 -110 20;
+#N canvas 236 62 699 530 edit 0;
+#X obj 37 222 f;
+#X msg 15 201 bang;
+#X floatatom 53 200 3 50 88;
+#X floatatom 88 222 3 0 37;
+#X obj 37 245 pack 0 0;
+#X text 115 222 y-label;
+#X text 81 200 x-label;
+#X obj 292 313 f;
+#X msg 270 292 bang;
+#X floatatom 308 291 3 -10 10;
+#X floatatom 343 313 3 -10 10;
+#X obj 292 336 pack 0 0;
+#X obj 304 435 f;
+#X msg 282 414 bang;
+#X floatatom 320 413 3 20 140;
+#X floatatom 355 435 3 150 200;
+#X obj 304 458 pack 0 0;
+#X text 336 291 x-delta;
+#X text 370 313 y-delta;
+#X text 348 413 x-position;
+#X text 382 435 y-position;
+#X obj 57 337 f;
+#X msg 35 316 bang;
+#X floatatom 73 315 3 0 2;
+#X floatatom 108 337 3 8 36;
+#X obj 57 360 pack 0 0;
+#X text 101 315 font;
+#X text 137 337 height;
+#X floatatom 471 106 1 0 1;
+#X msg 52 131 \; foo7_rcv color \$1 \$2;
+#X msg 37 270 \; foo7_rcv label_pos \$1 \$2;
+#X msg 57 386 \; foo7_rcv label_font \$1 \$2;
+#X msg 37 427 \; foo7_rcv label blabla;
+#X msg 292 361 \; foo7_rcv delta \$1 \$2;
+#X msg 304 483 \; foo7_rcv pos \$1 \$2;
+#X msg 469 23 \; foo7_rcv receive foo7a_rcv;
+#X msg 469 60 \; foo7a_rcv receive foo7_rcv;
+#X text 492 106 display scale;
+#X msg 471 132 \; foo7_rcv scale \$1;
+#X obj 279 193 f;
+#X msg 257 172 bang;
+#X floatatom 295 171 3 8 50;
+#X floatatom 330 193 3 110 200;
+#X obj 279 216 pack 0 0;
+#X text 323 171 width;
+#X text 357 193 height;
+#X msg 279 241 \; foo7_rcv size \$1 \$2;
+#X msg 37 463 \; foo7_rcv label vu-meter;
+#X obj 52 79 f;
+#X msg 29 31 bang;
+#X floatatom 68 29 3 0 29;
+#X floatatom 103 47 3 0 29;
+#X text 96 29 background;
+#X text 131 48 label-color;
+#X msg 290 25 back;
+#X msg 290 49 label;
+#X msg 252 25 bang;
+#N canvas 15 207 606 448 RGB_____________ 0;
+#X obj 97 56 inlet;
+#X obj 262 53 inlet;
+#X obj 339 55 inlet;
+#X obj 405 56 inlet;
+#X obj 97 270 bang;
+#X msg 77 295 0;
+#X msg 104 295 1;
+#X obj 146 268 bang;
+#X msg 132 295 0;
+#X msg 160 295 1;
+#X obj 265 313 spigot;
+#X obj 312 313 spigot;
+#X obj 249 385 outlet;
+#X text 93 33 select;
+#X text 267 28 red;
+#X text 337 30 green;
+#X text 409 30 blue;
+#X obj 405 102 t b f;
+#X obj 339 160 +;
+#X obj 339 185 t b f;
+#X obj 339 216 +;
+#X obj 296 385 outlet;
+#X obj 28 180 loadbang;
+#X obj 296 361 f;
+#X obj 249 361 f;
+#X obj 262 79 * -65536;
+#X obj 339 80 * -256;
+#X obj 405 80 * -1;
+#X obj 339 247 - 1;
+#X obj 97 135 route back label bang;
+#X obj 235 168 t b b b;
+#X connect 0 0 29 0;
+#X connect 1 0 25 0;
+#X connect 2 0 26 0;
+#X connect 3 0 27 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 11 1;
+#X connect 6 0 10 1;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 8 0 10 1;
+#X connect 9 0 11 1;
+#X connect 10 0 24 1;
+#X connect 11 0 23 1;
#X connect 17 0 18 0;
-#X connect 17 1 10 0;
-#X connect 18 0 0 0;
-#X coords 0 -1 1 1 102 58 2 100 100;
-#X restore 132 332 pd flash-time;
-#X text 71 334 1.bg;
-#X text 71 354 2.label;
-#X msg 22 407 color \$1 \$2;
-#X text 153 463 delta;
-#X text 21 463 position;
-#X msg 22 560 pos \$1 \$2;
-#X msg 154 560 delta \$1 \$2;
-#X obj 154 536 list;
-#X obj 154 485 bng 20 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X text 70 484 1.x-position;
-#X text 70 506 2.y-position;
-#X text 233 484 1.x-delta;
-#X text 233 506 2.y-delta;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-xpos empty 0
--8 0 12 -262144 -1 -1 330 256;
-#X obj 103 124 nbx 3 14 -1e+37 1e+37 0 0 \$0-dummy \$0-ypos empty 0
--8 0 12 -262144 -1 -1 245 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 22 485 pd flash-time;
-#N canvas 366 206 174 259 flash-time 0;
-#X obj 68 180 pack;
-#X obj 103 149 t b a;
-#X obj 68 205 outlet;
-#X obj 103 104 nbx 3 14 -20 20 0 0 \$0-dummy \$0-xdelta empty 0 -8
-0 12 -262144 -1 -1 0 256;
-#X obj 103 124 nbx 3 14 -20 20 0 0 \$0-dummy \$0-ydelta empty 0 -8
-0 12 -262144 -1 -1 0 256;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 1 1 0 1;
-#X connect 3 0 0 0;
-#X connect 4 0 1 0;
-#X coords 0 -1 1 1 48 42 2 100 100;
-#X restore 183 485 pd flash-time;
-#X obj 296 213 cnv 15 102 177 empty empty empty 20 12 0 14 -1 -66577
-0;
-#X obj 297 214 cnv 15 100 175 empty empty empty 20 12 0 14 -261682
--66577 0;
-#X obj 22 275 s vu_rcv;
-#X obj 154 275 s vu_rcv;
-#X obj 22 432 s vu_rcv;
-#X obj 154 585 s vu_rcv;
-#X obj 22 585 s vu_rcv;
-#X text 6 2 [vu] Changing Properties through Messages;
-#X msg 349 114 label my-vu;
-#X obj 330 245 vu 15 120 vu_rcv my-vu -1 -8 0 10 -33289 -33289 1 0
-;
-#X connect 1 0 3 0;
-#X connect 3 0 4 0;
-#X connect 7 0 6 0;
-#X connect 9 0 8 0;
-#X connect 10 0 11 0;
-#X connect 14 0 18 0;
+#X connect 17 1 18 1;
#X connect 18 0 19 0;
-#X connect 22 0 51 0;
-#X connect 23 0 52 0;
-#X connect 28 0 22 0;
-#X connect 29 0 23 0;
-#X connect 32 0 36 0;
-#X connect 33 0 36 0;
-#X connect 36 0 53 0;
-#X connect 39 0 55 0;
-#X connect 40 0 54 0;
-#X connect 41 0 40 0;
-#X connect 42 0 41 0;
-#X connect 47 0 39 0;
-#X connect 48 0 41 1;
-#X connect 57 0 11 0;
-#X restore 172 375 pd Changing_GUI_Properties;
-#X text 97 345 see the following subpatch for messages that change
-the gui-properties of [vu]:;
-#X text 168 493 - creating a [vu] without any arguments will set default
-values for all gui-properties. See the subpatch below to learn how
-to dynamically instantiate a [vu] object with custom properties:;
-#X text 170 239 Use the UP- \, DOWN- \, LEFT- or RIGHT-key to move
-a selected gui-object. Right-click and choose "Properties" to modify
-its appearance.;
-#X text 341 111 and receive names. Right-;
-#X text 341 126 click and choose;
-#X text 340 142 "Properties" to set them \,;
-#X text 341 156 or change them with messages;
-#X text 341 170 (see the subpatch below);
-#X floatatom 259 90 7 -110 20 1 dB - -;
-#X obj 42 48 tgl 15 1 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1
-;
-#X obj 43 125 vu 15 120 foo7_rcv vu-meter 60 0 0 10 -1 -355 1 0;
-#X floatatom 42 259 6 0 0 1 dB - -;
-#X floatatom 104 259 6 0 0 1 dB - -;
-#X text 108 68 <list> of rms \, peak;
-#X obj 259 197 s foo7_rcv;
-#X obj 259 168 pack 0 0;
-#X floatatom 277 113 7 -110 20 1 dB - -;
-#X obj 277 138 t b f;
-#X floatatom 52 90 7 -110 20 1 dB - -;
-#X floatatom 120 90 7 -110 20 1 dB - -;
-#N canvas 44 136 290 278 source 0;
+#X connect 19 0 20 0;
+#X connect 19 1 20 1;
+#X connect 20 0 28 0;
+#X connect 22 0 6 0;
+#X connect 23 0 21 0;
+#X connect 24 0 12 0;
+#X connect 25 0 20 0;
+#X connect 26 0 18 0;
+#X connect 27 0 17 0;
+#X connect 28 0 11 0;
+#X connect 28 0 10 0;
+#X connect 29 0 4 0;
+#X connect 29 1 7 0;
+#X connect 29 2 30 0;
+#X connect 30 0 24 0;
+#X connect 30 1 23 0;
+#X connect 30 2 28 0;
+#X restore 290 86 pd RGB_____________;
+#X floatatom 332 55 3 0 255;
+#X floatatom 375 55 3 0 255;
+#X floatatom 418 56 3 0 255;
+#X text 39 3 preset-colors;
+#X text 301 0 RGB-colors;
+#X text 332 37 red;
+#X text 368 36 green;
+#X text 416 36 blue;
+#X obj 52 104 pack 0 0;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 1;
+#X connect 3 0 4 1;
+#X connect 4 0 30 0;
+#X connect 7 0 11 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 1;
+#X connect 10 0 11 1;
+#X connect 11 0 33 0;
+#X connect 12 0 16 0;
+#X connect 13 0 12 0;
+#X connect 14 0 12 1;
+#X connect 15 0 16 1;
+#X connect 16 0 34 0;
+#X connect 21 0 25 0;
+#X connect 22 0 21 0;
+#X connect 23 0 21 1;
+#X connect 24 0 25 1;
+#X connect 25 0 31 0;
+#X connect 28 0 38 0;
+#X connect 39 0 43 0;
+#X connect 40 0 39 0;
+#X connect 41 0 39 1;
+#X connect 42 0 43 1;
+#X connect 43 0 46 0;
+#X connect 48 0 66 0;
+#X connect 49 0 48 0;
+#X connect 50 0 48 1;
+#X connect 51 0 66 1;
+#X connect 54 0 57 0;
+#X connect 55 0 57 0;
+#X connect 56 0 57 0;
+#X connect 57 0 66 0;
+#X connect 57 1 66 1;
+#X connect 58 0 57 1;
+#X connect 59 0 57 2;
+#X connect 60 0 57 3;
+#X connect 66 0 29 0;
+#X restore 313 188 pd edit;
+#N canvas 147 336 290 278 source 0;
#X obj 40 95 random 102;
#X obj 40 171 - 101;
#X obj 40 205 pack 0 0;
@@ -331,14 +215,10 @@ its appearance.;
#X obj 91 147 +;
#X obj 91 172 - 101;
#X obj 40 21 inlet;
-#X obj 40 250 outlet;
-#X obj 100 249 s fff;
-#X obj 159 249 s vu_rcv;
+#X obj 40 230 outlet;
#X connect 0 0 6 0;
#X connect 1 0 2 0;
#X connect 2 0 10 0;
-#X connect 2 0 11 0;
-#X connect 2 0 12 0;
#X connect 3 0 4 0;
#X connect 4 0 0 0;
#X connect 4 1 5 0;
@@ -348,27 +228,20 @@ its appearance.;
#X connect 7 0 8 0;
#X connect 8 0 2 1;
#X connect 9 0 3 0;
-#X restore 42 68 pd source;
-#X text 340 95 [vu] has settable send;
-#X text 11 23 gui-vu-meter-display;
-#X text 98 493 12;
-#X text 168 295 - rms level.;
-#X text 168 396 - peak-level.;
-#X text 168 412 - a list will be truncated to the first element.;
-#X text 168 444 - rms level.;
-#X text 168 466 - peak-level.;
-#X text 98 328 bang;
-#X text 168 328 - a bang will output the current values of the inlets.
-;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X connect 30 0 37 0;
-#X connect 31 0 42 0;
-#X connect 32 0 33 0;
-#X connect 32 1 34 0;
-#X connect 37 0 36 0;
-#X connect 38 0 39 0;
-#X connect 39 0 37 0;
-#X connect 39 1 37 1;
-#X connect 40 0 32 0;
-#X connect 41 0 32 1;
-#X connect 42 0 32 0;
+#X restore 99 62 pd source;
+#X obj 263 94 s fff;
+#X obj 186 302 x_all_guis aaa bbb ccc ddd eee fff ggg hhh iii;
+#X text 210 386 updated for Pd version 0.35;
+#X text 36 388 graz \, austria 2002;
+#X connect 3 0 21 0;
+#X connect 7 0 31 0;
+#X connect 8 0 9 0;
+#X connect 8 1 10 0;
+#X connect 21 0 20 0;
+#X connect 22 0 23 0;
+#X connect 23 0 21 0;
+#X connect 23 1 21 1;
+#X connect 28 0 8 0;
+#X connect 29 0 8 1;
+#X connect 31 0 8 0;
+#X connect 31 0 32 0;
diff --git a/externals/vanilla/wrap~-help.pd b/externals/vanilla/wrap~-help.pd
index 6315e917..81681f30 100644
--- a/externals/vanilla/wrap~-help.pd
+++ b/externals/vanilla/wrap~-help.pd
@@ -1,70 +1,26 @@
-#N canvas 0 0 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 wrap~ 3 12 0 18
--204280 -1 0;
-#X obj 0 428 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
--228856 -1 0;
-#N canvas 50 243 494 344 META 0;
-#X text 12 105 LIBRARY internal;
-#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
-#X text 12 25 LICENSE SIBSD;
-#X text 12 125 AUTHOR Miller Puckette;
-#X text 12 185 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;
-#X text 12 45 DESCRIPTION remainder modulo 1;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 OUTLET_0 signal;
-#X text 12 165 RELEASE_DATE 1997;
-#X restore 500 597 pd META;
-#X obj 0 503 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
-13 -228856 -1 0;
-#X obj 0 540 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
-0 13 -228856 -1 0;
-#X obj 0 568 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
-0 13 -228856 -1 0;
-#X text 98 544 (none);
-#N canvas 104 481 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 wrap;
-#X text 8 2 [wrap~] Related Objects;
-#X restore 102 597 pd Related_objects;
-#X obj 78 437 cnv 17 3 55 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 78 512 cnv 17 3 17 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
--162280 0;
-#X obj 482 3 wrap~;
-#X obj 455 20 pddp/pddplink http://wiki.puredata.info/en/wrap~ -text
-pdpedia: wrap~;
-#X obj 94 243 metro 500;
-#X floatatom 78 144 0 0 0 0 - - -;
-#X floatatom 78 290 0 0 0 0 - - -;
-#X obj 78 267 snapshot~;
-#X obj 78 170 sig~;
-#X obj 78 194 wrap~;
-#X obj 94 218 loadbang;
-#X text 111 144 <- shift-drag here to get non-integers to try;
-#X text 98 436 signal;
-#X text 98 457 float;
-#X text 98 477 list;
-#X text 168 477 - a list will be truncated to the first item.;
-#X text 98 511 signal;
-#X text 11 23 remainder modulo 1;
-#X text 168 436 - the incoming signal.;
-#X text 168 457 - a float will automatically be converted to a signal.
-;
-#X text 74 317 [wrap~] gives the difference between the input and the
+#N canvas 182 132 703 319 12;
+#X obj 58 220 metro 500;
+#X obj 58 195 r metro;
+#X msg 575 106 \; metro 0;
+#X msg 574 48 \; pd dsp 1 \; metro 1;
+#X floatatom 42 121 0 0 0;
+#X floatatom 42 277 0 0 0;
+#X text 443 271 updated for Pd version 0.33;
+#X obj 574 21 loadbang;
+#X obj 42 244 snapshot~;
+#X obj 42 147 sig~;
+#X obj 36 16 wrap~;
+#X text 93 16 - remainder modulo 1;
+#X text 18 45 wrap~ gives the difference between the input and the
largest integer not exceeding it (for positive numbers this is the
fractional part).;
-#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
-#X obj 455 51 pddp/dsp-reminder;
-#X connect 13 0 16 0;
-#X connect 14 0 17 0;
-#X connect 16 0 15 0;
-#X connect 17 0 18 0;
-#X connect 18 0 16 0;
-#X connect 19 0 13 0;
-#X connect 19 0 13 0;
+#X obj 42 171 wrap~;
+#X text 127 123 <-- shift-drag here to get non-integers to try;
+#X connect 0 0 8 0;
+#X connect 1 0 0 0;
+#X connect 1 0 0 0;
+#X connect 4 0 9 0;
+#X connect 7 0 3 0;
+#X connect 8 0 5 0;
+#X connect 9 0 13 0;
+#X connect 13 0 8 0;
diff --git a/externals/vanilla/x_all_guis.pd b/externals/vanilla/x_all_guis.pd
new file mode 100644
index 00000000..3c18031b
--- /dev/null
+++ b/externals/vanilla/x_all_guis.pd
@@ -0,0 +1,20 @@
+#N canvas 209 342 290 271 10;
+#X obj 23 31 bng 15 250 50 532480 \$1 \$1 empty 20 8 192 8 -262144
+-1 -1;
+#X obj 23 63 tgl 15 1.06496e+06 \$2 \$2 empty 20 8 192 8 -262144 -1
+-1 0 1;
+#X obj 22 95 vsl 15 128 0 127 0 1.59744e+06 \$3 \$3 empty 20 8 192
+8 -262144 -1 -1 0 1;
+#X obj 65 30 hsl 128 15 0 127 0 2.12992e+06 \$4 \$4 empty 20 8 192
+8 -262144 -1 -1 0 1;
+#X obj 63 63 hdl 15 1 2.6624e+06 8 \$5 \$5 empty 20 8 192 8 -262144
+-1 -1 0;
+#X obj 62 99 vu 15 120 \$6 empty 35 8 64 8 -66577 -1 1 49152;
+#X obj 115 99 cnv 15 100 60 \$7 \$7 \$7 20 12 917696 14 -233017 -66577
+3.72736e+06;
+#X obj 41 308 inlet;
+#X obj 41 334 outlet;
+#X obj 227 30 vdl 15 1 4.79232e+06 8 \$9 \$9 empty 20 8 192 8 -262144
+-1 -1 0;
+#X obj 116 176 nbx 5 14 -1e+37 1e+37 0 4.25984e+06 \$8 \$8 empty 45
+7 192 10 -262144 -1 -1 0;