aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/pddp/all_about_acoustic_conversions.pd94
-rw-r--r--doc/pddp/all_about_atom_conversion.pd105
-rw-r--r--doc/pddp/all_about_data_types.pd119
-rw-r--r--doc/pddp/all_about_haptics.pd12
-rw-r--r--doc/pddp/all_about_hid.pd96
-rw-r--r--doc/pddp/all_about_lists_vs_anythings.pd99
-rw-r--r--doc/pddp/all_about_looping.pd168
-rw-r--r--doc/pddp/all_about_symbol_construction.pd76
8 files changed, 382 insertions, 387 deletions
diff --git a/doc/pddp/all_about_acoustic_conversions.pd b/doc/pddp/all_about_acoustic_conversions.pd
index abd16d58..4a6b6868 100644
--- a/doc/pddp/all_about_acoustic_conversions.pd
+++ b/doc/pddp/all_about_acoustic_conversions.pd
@@ -1,9 +1,9 @@
-#N canvas 48 140 862 639 10;
-#X obj 12 82 mtof;
-#X floatatom 12 105 0 0 0 0 - - -;
-#X obj 12 129 ftom;
-#X floatatom 12 150 0 0 0 0 - - -;
-#X text 47 82 -- MIDI note number to frequency converter.;
+#N canvas 13 30 762 530 10;
+#X obj 22 62 mtof;
+#X floatatom 22 85 0 0 0 0 - - -;
+#X obj 22 109 ftom;
+#X floatatom 22 130 0 0 0 0 - - -;
+#X text 57 62 -- MIDI note number to frequency converter.;
#N canvas 37 22 899 659 understanding_mtof 0;
#X text 20 13 [mtof] will convert MIDI note numbers to Wave Freqeuency.
This object exists in Pd for the sake of convenience and speed of processing.
@@ -193,8 +193,8 @@ achive microtonal pitches.;
#X connect 39 0 38 0;
#X connect 49 0 31 1;
#X connect 50 0 34 1;
-#X restore 175 99 pd understanding_mtof;
-#X text 47 129 -- Frequency to MIDI note number converter.;
+#X restore 185 79 pd understanding_mtof;
+#X text 57 109 -- Frequency to MIDI note number converter.;
#N canvas 118 22 919 630 understanding_ftom 0;
#X floatatom 38 86 5 0 0 0 - - -;
#X floatatom 38 131 5 0 0 0 - - -;
@@ -297,13 +297,13 @@ microtonal control?;
#X connect 34 0 36 1;
#X connect 35 0 36 0;
#X connect 36 0 37 0;
-#X restore 174 145 pd understanding_ftom;
-#X floatatom 12 61 0 0 0 0 - - -;
-#X floatatom 12 231 0 0 0 0 - - -;
-#X floatatom 12 276 0 0 0 0 - - -;
-#X floatatom 12 187 0 0 0 0 - - -;
-#X obj 12 208 dbtorms;
-#X obj 12 255 rmstodb;
+#X restore 184 125 pd understanding_ftom;
+#X floatatom 22 41 0 0 0 0 - - -;
+#X floatatom 22 211 0 0 0 0 - - -;
+#X floatatom 22 256 0 0 0 0 - - -;
+#X floatatom 22 167 0 0 0 0 - - -;
+#X obj 22 188 dbtorms;
+#X obj 22 235 rmstodb;
#N canvas 65 78 423 452 understanding_dbtorms 0;
#N canvas 0 22 452 302 What_is_a_decibel? 0;
#X text 24 94 The difficulty in measuring the volume of an instrument
@@ -364,14 +364,14 @@ produces exponential values between 0 and 1;
#X connect 15 0 4 0;
#X connect 16 0 6 0;
#X connect 16 1 7 0;
-#X restore 155 227 pd understanding_dbtorms;
-#X text 66 209 -- Decibels to RMS converter.;
-#X text 66 256 -- RMS to Decibels converter.;
-#X floatatom 12 357 0 0 0 0 - - -;
-#X floatatom 12 402 0 0 0 0 - - -;
-#X floatatom 12 313 0 0 0 0 - - -;
-#X obj 12 334 dbtopow;
-#X obj 12 381 powtodb;
+#X restore 165 207 pd understanding_dbtorms;
+#X text 76 189 -- Decibels to RMS converter.;
+#X text 76 236 -- RMS to Decibels converter.;
+#X floatatom 22 337 0 0 0 0 - - -;
+#X floatatom 22 382 0 0 0 0 - - -;
+#X floatatom 22 293 0 0 0 0 - - -;
+#X obj 22 314 dbtopow;
+#X obj 22 361 powtodb;
#N canvas 349 60 423 452 understanding_rmstodb 0;
#N canvas 0 22 452 302 What_is_a_decibel? 0;
#X text 24 94 The difficulty in measuring the volume of an instrument
@@ -430,9 +430,9 @@ also be produced.;
#X connect 15 0 9 0;
#X connect 15 0 10 0;
#X connect 16 0 15 0;
-#X restore 153 273 pd understanding_rmstodb;
-#X text 66 335 -- Decibels to power converter.;
-#X text 66 382 -- power to Decibels converter.;
+#X restore 163 253 pd understanding_rmstodb;
+#X text 76 315 -- Decibels to power converter.;
+#X text 76 362 -- power to Decibels converter.;
#N canvas 460 106 429 458 understanding_dbtopow 0;
#N canvas 0 22 452 302 What_is_a_decibel? 0;
#X text 24 94 The difficulty in measuring the volume of an instrument
@@ -478,7 +478,7 @@ are considered overflow or underflow and are clipped/ignored.;
#X connect 7 0 8 0;
#X connect 8 0 10 0;
#X connect 10 0 2 0;
-#X restore 154 354 pd understanding_dbtopow;
+#X restore 164 334 pd understanding_dbtopow;
#N canvas 348 60 429 458 understanding_powtodb 0;
#N canvas 0 22 452 302 What_is_a_decibel? 0;
#X text 24 94 The difficulty in measuring the volume of an instrument
@@ -525,16 +525,16 @@ and are clipped/ignored.;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 3 0;
-#X restore 154 401 pd understanding_powtodb;
-#X text 13 439 RELATED OBJECTS;
-#X obj 14 458 dbtopow~;
-#X obj 68 458 dbtorms~;
-#X obj 123 458 rmstodb~;
-#X obj 178 458 powtodb~;
-#X obj 233 458 mtof~;
-#X obj 270 458 ftom~;
-#X obj 14 483 expr;
-#X obj 46 483 expr~;
+#X restore 164 381 pd understanding_powtodb;
+#X text 23 419 RELATED OBJECTS;
+#X obj 24 438 dbtopow~;
+#X obj 78 438 dbtorms~;
+#X obj 133 438 rmstodb~;
+#X obj 188 438 powtodb~;
+#X obj 243 438 mtof~;
+#X obj 280 438 ftom~;
+#X obj 24 463 expr;
+#X obj 56 463 expr~;
#N canvas 0 22 452 302 other_objects_from_related_libraries 0;
#X obj 26 39 db2v;
#X obj 65 38 f2note;
@@ -551,15 +551,16 @@ is:;
;
#X text 15 183 or;
#X text 16 197 iem.kug.ac.at/pdb/;
-#X restore 14 518 pd other_objects_from_related_libraries;
-#X obj 90 483 rmstopow~;
-#X obj 154 485 powtorms~;
-#X obj 220 485 sig~;
-#X obj 254 485 snapshot~;
-#X obj 5 2 cnv 15 850 20 empty empty all_about_acoustic_conversions
+#X restore 24 498 pd other_objects_from_related_libraries;
+#X obj 100 463 rmstopow~;
+#X obj 164 465 powtorms~;
+#X obj 230 465 sig~;
+#X obj 264 465 snapshot~;
+#X obj 5 2 cnv 15 750 20 empty empty all_about_acoustic_conversions
20 10 1 18 -233017 -66577 0;
-#X obj 821 3 pddp/pddplink http://puredata.info/dev/pddp -text pddp;
-#X text 439 41 Please note: I have no idea why it's necessary for Pd
+#X obj 721 3 pddp/pddplink http://puredata.info/dev/pddp -text pddp
+;
+#X text 389 41 Please note: I have no idea why it's necessary for Pd
to measure decibels \, rms \, or power. It seems to me that RMS and
Power are extremely important in the analog world (so that an engineer
doesn't blow up a transistor)...but in Pd \, these things are just
@@ -568,9 +569,6 @@ I would really appreciate if somebody could help me understand these
concepts and finish this document. Why are these objects present in
Pd? WHY should they be used and what benefits to they produce in a
digital process?;
-#X text 14 574 This document was updated for Pd version 0.35 test 29
-by Dave Sabine as part of a project called pddp proposed to build comprehensive
-documentation for Pd.;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
diff --git a/doc/pddp/all_about_atom_conversion.pd b/doc/pddp/all_about_atom_conversion.pd
index f72ff22b..ea1ec8fc 100644
--- a/doc/pddp/all_about_atom_conversion.pd
+++ b/doc/pddp/all_about_atom_conversion.pd
@@ -1,67 +1,72 @@
-#N canvas 91 99 882 611 10;
-#X obj 4 2 cnv 15 850 20 empty empty all_about_atom_conversion 20 10
+#N canvas 32 32 763 478 10;
+#X obj 4 2 cnv 15 750 20 empty empty all_about_atom_conversion 20 10
1 18 -233017 -66577 0;
-#X obj 821 3 pddp/pddplink http://puredata.info/dev/pddp -text pddp;
-#X obj 47 364 list2int;
-#X obj 111 363 l2i;
-#X obj 113 389 a2l;
-#X obj 46 390 any2list;
-#X obj 46 340 lister;
-#X obj 46 416 list2symbol;
-#X obj 46 437 symbol2list;
-#X obj 135 416 l2s;
-#X obj 135 436 s2l;
-#X obj 179 417 tosymbol;
-#X obj 179 436 fromsymbol;
-#X obj 548 410 glue;
-#X obj 609 437 pack;
-#X obj 608 411 list2symbol;
-#X obj 718 410 tosymbol;
-#X text 525 384 making "lists" from untyped inputs:;
-#X obj 484 410 repack;
-#X obj 47 318 list;
-#X obj 46 293 any;
-#X obj 75 293 pipe;
-#X text 499 46 a set that is not a "list" has an undefined type:;
-#X text 7 39 SPECIAL CASES OF "LISTS".;
-#X obj 513 560 pddp/pddplink all_about_data_types.pd -text all_about_data_types;
-#X obj 513 517 pddp/pddplink all_about_lists_vs_anythings.pd -text all_about_lists_vs_anythings;
-#X obj 514 135 bng 15 250 50 0 empty empty bang 0 20 1 9 -262144 -1
+#X obj 721 3 pddp/pddplink http://puredata.info/dev/pddp -text pddp
+;
+#X obj 27 354 list2int;
+#X obj 91 353 l2i;
+#X obj 93 379 a2l;
+#X obj 26 380 any2list;
+#X obj 26 330 lister;
+#X obj 26 406 list2symbol;
+#X obj 26 427 symbol2list;
+#X obj 115 406 l2s;
+#X obj 115 426 s2l;
+#X obj 159 407 tosymbol;
+#X obj 159 426 fromsymbol;
+#X obj 508 290 glue;
+#X obj 569 317 pack;
+#X obj 568 291 list2symbol;
+#X obj 678 290 tosymbol;
+#X text 485 264 making "lists" from untyped inputs:;
+#X obj 444 290 repack;
+#X obj 27 308 list;
+#X obj 26 283 any;
+#X obj 55 283 pipe;
+#X text 439 66 a set that is not a "list" has an undefined type:;
+#X text 17 39 SPECIAL CASES OF "LISTS".;
+#X obj 473 420 pddp/pddplink all_about_data_types.pd -text all_about_data_types
+;
+#X obj 473 397 pddp/pddplink all_about_lists_vs_anythings.pd -text
+all_about_lists_vs_anythings;
+#X obj 454 155 bng 15 250 50 0 empty empty bang 0 20 1 9 -262144 -1
-1;
-#X obj 563 135 bng 15 250 50 0 empty empty float 0 21 1 9 -262144 -1
+#X obj 503 155 bng 15 250 50 0 empty empty float 0 21 1 9 -262144 -1
-1;
-#X obj 612 135 bng 15 250 50 0 empty empty symbol 0 21 1 9 -262144
+#X obj 552 155 bng 15 250 50 0 empty empty symbol 0 21 1 9 -262144
-1 -1;
-#X msg 516 73 list this is a set with a cast;
-#X msg 523 92 this is a set withOUT a cast;
-#X obj 711 135 bng 15 250 50 0 empty empty list 0 21 1 9 -262144 -1
+#X msg 456 93 list this is a set with a cast;
+#X msg 463 112 this is a set withOUT a cast;
+#X obj 651 155 bng 15 250 50 0 empty empty list 0 21 1 9 -262144 -1
-1;
-#X obj 761 135 bng 15 250 50 0 empty empty UNDEFINED 0 21 1 9 -262144
+#X obj 701 155 bng 15 250 50 0 empty empty UNDEFINED 0 21 1 9 -262144
-1 -1;
-#X obj 514 115 route bang float symbol pointer list;
-#X obj 662 135 bng 15 250 50 0 empty empty pointer 0 21 1 9 -262144
+#X obj 454 135 route bang float symbol pointer list;
+#X obj 602 155 bng 15 250 50 0 empty empty pointer 0 21 1 9 -262144
-1 -1;
-#X msg 10 63 list;
-#X symbolatom 32 129 10 0 0 0 - - -;
-#X msg 17 83 list 25;
-#X msg 24 103 list foo;
-#X text 87 104 A "list" of one "symbol" is converted to a "symbol"
+#X msg 20 63 list;
+#X symbolatom 42 129 10 0 0 0 - - -;
+#X msg 27 83 list 25;
+#X msg 34 103 list foo;
+#X text 97 104 A "list" of one "symbol" is converted to a "symbol"
;
-#X text 72 83 A "list" of one "float" is converted to a "float";
-#X text 50 63 An empty "list" is converted to a "bang";
-#X obj 11 169 bng 15 250 50 0 empty empty bang 0 20 1 9 -262144 -1
+#X text 82 83 A "list" of one "float" is converted to a "float";
+#X text 60 63 An empty "list" is converted to a "bang";
+#X obj 21 169 bng 15 250 50 0 empty empty bang 0 20 1 9 -262144 -1
-1;
-#X obj 60 169 bng 15 250 50 0 empty empty float 0 21 1 9 -262144 -1
+#X obj 70 169 bng 15 250 50 0 empty empty float 0 21 1 9 -262144 -1
-1;
-#X obj 109 169 bng 15 250 50 0 empty empty symbol 0 21 1 9 -262144
+#X obj 119 169 bng 15 250 50 0 empty empty symbol 0 21 1 9 -262144
-1 -1;
-#X obj 208 169 bng 15 250 50 0 empty empty list 0 21 1 9 -262144 -1
+#X obj 218 169 bng 15 250 50 0 empty empty list 0 21 1 9 -262144 -1
-1;
-#X obj 258 169 bng 15 250 50 0 empty empty UNDEFINED 0 21 1 9 -262144
+#X obj 268 169 bng 15 250 50 0 empty empty UNDEFINED 0 21 1 9 -262144
-1 -1;
-#X obj 11 149 route bang float symbol pointer list;
-#X obj 159 169 bng 15 250 50 0 empty empty pointer 0 21 1 9 -262144
+#X obj 21 149 route bang float symbol pointer list;
+#X obj 169 169 bng 15 250 50 0 empty empty pointer 0 21 1 9 -262144
-1 -1;
+#X text 13 233 There are many ways to store \, manipulate. and convert
+atoms and lists. Here is a sampling;
#X connect 15 0 14 0;
#X connect 29 0 33 0;
#X connect 30 0 33 0;
diff --git a/doc/pddp/all_about_data_types.pd b/doc/pddp/all_about_data_types.pd
index 5dba6b3d..ab1d6406 100644
--- a/doc/pddp/all_about_data_types.pd
+++ b/doc/pddp/all_about_data_types.pd
@@ -1,5 +1,5 @@
-#N canvas 246 35 862 651 10;
-#X obj 453 446 route;
+#N canvas 30 22 763 615 10;
+#X obj 413 439 route;
#X floatatom 93 115 5 0 0 1 "float" - -;
#X symbolatom 184 115 10 0 0 1 "symbol" - -;
#X obj 96 211 symbol;
@@ -8,7 +8,7 @@
#X msg 96 193 test;
#X msg 79 171 symbol this;
#X text 170 170 set type directly;
-#X text 144 236 does not work (check console messages);
+#X text 137 235 does not work (check console messages);
#X floatatom 15 233 5 0 0 0 - - -;
#X msg 20 212 12;
#X msg 3 192 float 83;
@@ -29,23 +29,24 @@
#X obj 247 138 l2s;
#X obj 247 158 s2l;
#X obj 123 252 list;
-#X restore 467 591 pd Related_Objects;
-#X text 427 232 Many objects cast the data they receive when they output
+#X restore 427 584 pd Related_Objects;
+#X text 387 225 Many objects cast the data they receive when they output
it:;
-#X text 546 313 Some objects do not cast the data:;
-#X obj 444 284 trigger anything;
-#X msg 444 259 this is a list without a cast;
-#X obj 444 307 print;
-#X text 430 347 Some objects need to have the data explicitly declared
+#X text 506 306 Some objects do not cast the data:;
+#X obj 404 277 trigger anything;
+#X msg 404 252 this is a list without a cast;
+#X obj 404 300 print;
+#X text 390 340 Some objects need to have the data explicitly declared
in order to handle it. These are mostly symbol handling objects.;
-#X text 430 413 Objects which route data generally can handle explicitly
+#X text 390 406 Objects which route data generally can handle explicitly
or implicitly defined data.;
-#X obj 500 446 trigger;
-#X obj 558 446 niagara;
-#X obj 446 390 select;
-#X obj -5 -2 cnv 15 850 20 empty empty all_about_data_types 20 10 1
+#X obj 460 439 trigger;
+#X obj 518 439 niagara;
+#X obj 406 383 select;
+#X obj -5 -2 cnv 15 750 20 empty empty all_about_data_types 20 10 1
18 -233017 -66577 0;
-#X obj 811 -1 pddp/pddplink http://puredata.info/dev/pddp -text pddp;
+#X obj 711 -1 pddp/pddplink http://puredata.info/dev/pddp -text pddp
+;
#X text -9 291 "anything";
#X text -9 407 "list";
#X text -9 393 "float";
@@ -65,62 +66,60 @@ or implicitly defined data.;
and "symbol" atoms have 'atom boxes' for realtime display and control
from within a patch. "pointer" atoms are used for accessing data stored
in graphical data structures.;
-#X obj 441 184 int;
-#X obj 449 164 / 5.23;
-#X floatatom 449 136 5 0 0 0 - - -;
-#X floatatom 482 204 5 0 0 0 - - -;
-#X floatatom 441 204 5 0 0 0 - - -;
-#X obj 531 134 tosymbol;
-#X obj 595 135 fromsymbol;
-#X obj 678 134 list2symbol;
-#X obj 682 176 ftos;
-#X obj 637 43 symbol;
-#X obj 600 87 int;
-#X obj 719 43 pointer;
-#X obj 460 87 bang;
-#X obj 498 88 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X obj 401 177 int;
+#X obj 409 157 / 5.23;
+#X floatatom 409 129 5 0 0 0 - - -;
+#X floatatom 442 197 5 0 0 0 - - -;
+#X floatatom 401 197 5 0 0 0 - - -;
+#X obj 491 127 tosymbol;
+#X obj 555 128 fromsymbol;
+#X obj 638 127 list2symbol;
+#X obj 642 169 ftos;
+#X obj 597 36 symbol;
+#X obj 560 80 int;
+#X obj 679 36 pointer;
+#X obj 420 80 bang;
+#X obj 458 81 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 519 43 float;
+#X obj 479 36 float;
#X text 1 527 There a number of objects which are used for storing
messages \, or casting messages as a specific data type \, sometimes
converting from one data type to another. The right inlet on these
objects is stores that value \, which can be later output using a bang.
;
-#X obj 628 87 lister;
-#X text 560 44 aka;
-#X obj 586 43 f;
-#X text 22 613 (C) Copyright 2004 Hans-Christoph Steiner <hans@at.or.at>
+#X obj 588 80 lister;
+#X text 520 37 aka;
+#X obj 546 36 f;
+#X obj 450 511 pddp/pddplink all_about_lists_vs_anythings.pd -text
+all_about_lists_vs_anythings;
+#X obj 450 532 pddp/pddplink all_about_symbol_construction.pd -text
+all_about_symbol_construction;
+#X obj 450 553 pddp/pddplink all_about_data_structures.pd -text all_about_data_structures
;
-#X text 239 627 released under the GNU GPL;
-#X text 435 614 $Revision: 1.5 $$Date: 2005-07-28 19:45:58 $;
-#X text 436 627 $Author: eighthave $;
-#X obj 490 518 pddp/pddplink all_about_lists_vs_anythings.pd -text all_about_lists_vs_anythings;
-#X obj 490 539 pddp/pddplink all_about_symbol_construction.pd -text all_about_symbol_construction;
-#X obj 490 560 pddp/pddplink all_about_data_structures.pd -text all_about_data_structures;
-#X text 515 88 (aka [bng]);
+#X text 475 81 (aka [bng]);
#X text 3 304 "anything" allows anything to pass through unchanged.
It is not a data type tho.;
#X text -6 143 "symbols" need to be declared explicitly. "floats" do
not need to be declared explicitly \, but can be:;
#X text 153 212 casting as a "symbol";
#X text 1 509 CASTING AND STORAGE OBJECTS;
-#X text 431 474 FOR MORE INFO:;
-#X text 430 114 EXAMPLES OF CASTING;
-#X text 425 43 atom objects:;
-#X text 432 65 other data types:;
+#X text 391 467 FOR MORE INFO:;
+#X text 390 107 EXAMPLES OF CASTING;
+#X text 385 36 atom objects:;
+#X text 392 58 other data types:;
#X text -9 420 "pointer";
#X obj 24 460 trigger anything bang float list pointer symbol;
#X obj 24 480 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 88 480 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X obj 78 480 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 152 479 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X obj 134 479 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 218 480 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X obj 191 480 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 283 479 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X obj 247 479 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X obj 348 480 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X obj 303 480 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 193 35 "float" \, "symbol" \, "pointer";
#N canvas 0 22 505 381 float/list 0;
@@ -159,7 +158,7 @@ cut to one element.;
#X connect 12 4 11 0;
#X connect 14 0 12 0;
#X connect 15 0 12 0;
-#X restore 465 493 pd float/list conversion;
+#X restore 425 486 pd float/list conversion;
#N canvas 0 22 479 361 empty 0;
#X obj 78 268 bng 15 250 50 0 empty empty bang 0 20 1 9 -262144 -1
-1;
@@ -192,8 +191,8 @@ to 0;
#X connect 9 2 11 0;
#X connect 9 3 3 0;
#X connect 9 4 4 0;
-#X restore 656 493 pd empty data types;
-#X text 635 597 updated for Pd version 0.38.4;
+#X restore 616 486 pd empty data types;
+#X text 548 584 updated for Pd version 0.38.4;
#X connect 3 0 4 0;
#X connect 5 0 4 0;
#X connect 6 0 3 0;
@@ -212,9 +211,9 @@ to 0;
#X connect 41 0 40 0;
#X connect 41 0 43 0;
#X connect 42 0 41 0;
-#X connect 76 0 77 0;
-#X connect 76 1 78 0;
-#X connect 76 2 79 0;
-#X connect 76 3 80 0;
-#X connect 76 4 81 0;
-#X connect 76 5 82 0;
+#X connect 72 0 73 0;
+#X connect 72 1 74 0;
+#X connect 72 2 75 0;
+#X connect 72 3 76 0;
+#X connect 72 4 77 0;
+#X connect 72 5 78 0;
diff --git a/doc/pddp/all_about_haptics.pd b/doc/pddp/all_about_haptics.pd
index 6a8537ce..080378a1 100644
--- a/doc/pddp/all_about_haptics.pd
+++ b/doc/pddp/all_about_haptics.pd
@@ -1,4 +1,4 @@
-#N canvas 252 88 514 634 10;
+#N canvas 147 26 511 606 10;
#X obj 12 346 ff-gain;
#X obj 12 385 ff-autocenter;
#X obj 12 425 ff-spring;
@@ -7,19 +7,20 @@
#X obj 13 547 ff-constant;
#X obj 4 4 cnv 15 500 20 empty empty all_about_haptics 20 10 1 18 -233017
-66577 0;
-#X obj 471 5 pddp/pddplink http://puredata.info/dev/pddp -text pddp;
+#X obj 471 5 pddp/pddplink http://puredata.info/dev/pddp -text pddp
+;
#X obj 12 304 ifeel;
#X text 20 33 "Haptic" means relating to the sense of touch. Haptic
feedback relates to the sense of touch at the skin level \, and the
feeling of forces in the muscles and joints. Vibrations stimulate the
sense of touch while various forces stimulate the muscles.;
-#X text 20 110 There are many haptic devices available \, from a US$35
+#X text 20 110 There are many haptic devices available \, from a US\$35
Logitech iFeel mouse \, to the massive \, extremely expensive haptic
devices used for remote control surgery. Immersion \, Inc. has almost
a monopoly on this technology due to a number of patents. These objects
all work with Immersion technology \, generally known as "TouchSense".
;
-#X text 15 606 updated for Pd version 0.37.1;
+#X text 15 576 updated for Pd version 0.37.1;
#X text 107 301 Control the pulses and vibrations of a TouchSense (aka
iFeel) mouse;
#X text 110 349 Set the overall gain for all force effects;
@@ -38,6 +39,3 @@ and others make TouchSense game controllers.;
#X text 21 261 Currently \, these objects only work on GNU/Linux. For
info on how to get it working \, see: http://at.or.at/hans/haptics
;
-#X text 88 585 (C) Copyright 2004 Hans-Christoph Steiner <hans@at.or.at>
-;
-#X text 305 599 released under the GNU GPL;
diff --git a/doc/pddp/all_about_hid.pd b/doc/pddp/all_about_hid.pd
index 7c36ba5a..6bfab2e2 100644
--- a/doc/pddp/all_about_hid.pd
+++ b/doc/pddp/all_about_hid.pd
@@ -1,24 +1,20 @@
-#N canvas 22 63 884 614 10;
-#X obj 5 2 cnv 15 850 20 empty empty all_about_hid 20 10 1 18 -233017
+#N canvas 21 40 773 566 10;
+#X obj 5 2 cnv 15 750 20 empty empty all_about_hid 20 10 1 18 -233017
-66577 0;
-#X obj 821 3 pddp/pddplink http://puredata.info/dev/pddp -text pddp;
+#X obj 725 3 pddp/pddplink http://puredata.info/dev/pddp -text pddp
+;
#X text 5 29 "HID" stands for "Human Interface Device". A HID is any
device that is meant to allow humans to interact with a computer. Usually
\, HIDs are mice \, keyboards \, joysticks \, tablets \, gamepads \,
etc. There a number of unusual HIDs \, like the Griffin PowerMate on
the low end \, or the SensAble PHANTOM 6DOF on the high end.;
-#X obj 595 437 gemmouse;
+#X obj 545 437 gemmouse;
#X text 0 214 KEYBOARDS;
#X obj 11 233 key;
#X obj 43 233 keyup;
-#X obj 431 437 gemkeyboard;
-#X obj 517 437 gemkeyname;
+#X obj 381 437 gemkeyboard;
+#X obj 467 437 gemkeyname;
#X obj 88 233 keyname;
-#X text 16 557 (C) Copyright 2004 Hans-Christoph Steiner <hans@at.or.at>
-;
-#X text 233 571 released under the GNU GPL;
-#X text 429 558 $Revision: 1.6 $$Date: 2005-12-19 21:00:31 $;
-#X text 430 571 $Author: eighthave $;
#N canvas 0 22 671 475 deprecated 0;
#X text 35 38 The use of these objects is deprecated since the functionality
that they provide is available in the [hid] object \, which is a unified
@@ -42,34 +38,34 @@ that they provide is available in the [hid] object \, which is a unified
#X text 26 97 GEM;
#X obj 33 117 gemtablet;
#X obj 104 117 gemorb;
-#X restore 438 533 pd deprecated HID objects;
-#X text 425 415 USING HIDs WITH GEM;
-#X text 435 478 There are quite a few objects that support HIDs from
+#X restore 388 533 pd deprecated HID objects;
+#X text 375 415 USING HIDs WITH GEM;
+#X text 385 478 There are quite a few objects that support HIDs from
many different sources. Here are a bunch whose functionality is available
in the [hid] object \, so it is recommended that you do not use these
objects any more.;
-#X text 436 176 device type;
-#X text 674 160 latency;
-#X text 765 176 (Hz);
-#X text 685 176 (ms);
-#X text 435 186 --------------------------------------------------------
+#X text 386 176 device type;
+#X text 624 160 latency;
+#X text 715 176 (Hz);
+#X text 635 176 (ms);
+#X text 385 186 --------------------------------------------------------
;
-#X text 685 201 15.5;
-#X text 765 201 64;
-#X text 685 216 8-10;
-#X text 765 216 100-125;
-#X text 435 231 USB mice on GNU/Linux;
-#X text 685 231 1-10;
-#X text 765 231 100-1000;
-#X text 435 246 USB wireless mice;
-#X text 685 246 12-20;
-#X text 765 246 50-80;
-#X text 434 334 While it does not make sense to use a poll rate that
+#X text 635 201 15.5;
+#X text 715 201 64;
+#X text 635 216 8-10;
+#X text 715 216 100-125;
+#X text 385 231 USB mice on GNU/Linux;
+#X text 635 231 1-10;
+#X text 715 231 100-1000;
+#X text 385 246 USB wireless mice;
+#X text 635 246 12-20;
+#X text 715 246 50-80;
+#X text 384 334 While it does not make sense to use a poll rate that
is much faster than the refresh rate of the device \, it does make
sense to make the poll rate somewhat faster. If you poll at the same
rate as the device refreshes \, you could get up to double the latency
\, i.e. if [hid] polls right before the event is reported.;
-#X text 425 461 DEPRECATED OBJECTS;
+#X text 375 461 DEPRECATED OBJECTS;
#X text 5 117 When talking about HIDs \, "DOF" is often mentioned.
"DOF" stands for "degrees of freedom". A degree of freedom is one dimension
in which that HID can give information. A mouse generally had 2DOFs:
@@ -81,27 +77,27 @@ The PHANTOM 6DOF device has six degrees of freedom: X \, Y \, Z movement
#X text 159 424 [joystick];
#X text 243 424 [tablet];
#X text 313 424 [gamepad];
-#X text 435 201 ADB (Apple Desktop Bus) devices;
-#X text 435 303 P5 Glove;
-#X text 685 303 22;
-#X text 765 303 45;
-#X text 765 289 40;
-#X text 685 289 25;
+#X text 385 201 ADB (Apple Desktop Bus) devices;
+#X text 385 303 P5 Glove;
+#X text 635 303 22;
+#X text 715 303 45;
+#X text 715 289 40;
+#X text 635 289 25;
#X text 12 424 [keyboard];
-#X text 685 275 5-25;
-#X text 765 275 40-200;
-#X text 435 261 Generic USB Devices;
-#X text 685 261 10;
-#X text 765 261 100;
-#X text 435 275 PS/2 mice;
-#X text 435 289 Serial mice;
-#X text 425 23 LATENCY AND POLLING;
-#X text 425 156 REFRESH RATES OF VARIOUS DEVICES;
+#X text 635 275 5-25;
+#X text 715 275 40-200;
+#X text 385 261 Generic USB Devices;
+#X text 635 261 10;
+#X text 715 261 100;
+#X text 385 275 PS/2 mice;
+#X text 385 289 Serial mice;
+#X text 375 23 LATENCY AND POLLING;
+#X text 375 156 REFRESH RATES OF VARIOUS DEVICES;
#X text 11 369 Basically any device that is supported by the various
HID layers on each OS is supported by the [hid] object. So any of those
devices can be used as controllers with Pd. There already exists a
number of objects for more common HIDs:;
-#X text 434 39 An essential detail to making an usable instrument is
+#X text 384 39 An essential detail to making an usable instrument is
the latency between when you perform an action and the sound it produces.
If the latency is too large \, it will make the instrument annoying
to play \, or even unplayable. So the aim is to have as low latency
@@ -109,7 +105,7 @@ as possible. To put it into perspective \, if you were playing an electric
guitar and the amp was 3m (10ft) away from you \, there would be a
9ms delay between when you plucked the string and when you heard the
sound.;
-#X text 435 314 --------------------------------------------------------
+#X text 385 314 --------------------------------------------------------
;
#X text 3 453 PLATFORM-SPECIFIC HID OBJECTS;
#X text 15 470 To get full access to some devices \, you need to use
@@ -121,9 +117,9 @@ They only receive key events when Pd has focus \; they output alternating
1s and 0s to represent auto-repeat \; [key] and [heyup] are limited
to the 'printing' characters. [keyname] reports Shift \, Ctrl \, Alt
\, Meta \, etc.;
-#X text 435 216 USB mice on Windows or MacOS X;
+#X text 385 216 USB mice on Windows or MacOS X;
#X text 85 527 [darwinhid];
#X text 166 527 [windowshid];
-#X text 742 160 refresh rate;
+#X text 692 160 refresh rate;
#X text 12 527 [linuxhid];
#X obj 11 347 hid;
diff --git a/doc/pddp/all_about_lists_vs_anythings.pd b/doc/pddp/all_about_lists_vs_anythings.pd
index 48f75791..0579c050 100644
--- a/doc/pddp/all_about_lists_vs_anythings.pd
+++ b/doc/pddp/all_about_lists_vs_anythings.pd
@@ -1,10 +1,10 @@
-#N canvas 268 58 889 635 10;
+#N canvas 63 22 763 581 10;
#X msg 95 298 1 2 3;
#X obj 125 329 route list;
#X msg 62 278 list 1 2 3;
#X msg 10 63 list;
#X symbolatom 32 129 10 0 0 0 - - -;
-#X obj 4 2 cnv 15 850 20 empty empty all_about_lists_vs_anythings 20
+#X obj 4 2 cnv 15 750 20 empty empty all_about_lists_vs_anythings 20
10 1 18 -233017 -66577 0;
#X text 7 39 SPECIAL CASES OF "LISTS".;
#X obj 125 348 bng 15 250 50 0 empty empty list -20 7 1 10 -262144
@@ -13,15 +13,15 @@
-1 -1;
#X msg 184 277 list this is a set with a cast;
#X msg 191 296 this is a set withOUT a cast;
-#X obj 484 135 bng 15 250 50 0 empty empty bang 0 20 1 9 -262144 -1
+#X obj 441 135 bng 15 250 50 0 empty empty bang 0 20 1 9 -262144 -1
-1;
-#X obj 533 135 bng 15 250 50 0 empty empty float 0 21 1 9 -262144 -1
+#X obj 490 135 bng 15 250 50 0 empty empty float 0 21 1 9 -262144 -1
-1;
-#X obj 582 135 bng 15 250 50 0 empty empty symbol 0 21 1 9 -262144
+#X obj 539 135 bng 15 250 50 0 empty empty symbol 0 21 1 9 -262144
-1 -1;
-#X msg 486 73 list this is a set with a cast;
-#X msg 493 92 this is a set withOUT a cast;
-#X obj 681 135 bng 15 250 50 0 empty empty list 0 21 1 9 -262144 -1
+#X msg 443 73 list this is a set with a cast;
+#X msg 450 92 this is a set withOUT a cast;
+#X obj 638 135 bng 15 250 50 0 empty empty list 0 21 1 9 -262144 -1
-1;
#X obj 120 527 route list;
#X obj 120 546 bng 15 250 50 0 empty empty list -20 7 1 10 -262144
@@ -39,33 +39,30 @@
;
#X text 72 83 A "list" of one "float" is converted to a "float";
#X text 50 63 An empty "list" is converted to a "bang";
-#X obj 520 514 pddp/pddplink all_about_atom_conversion.pd -text all_about_atom_conversion;
-#X obj 821 3 pddp/pddplink http://puredata.info/dev/pddp -text pddp;
+#X obj 477 514 pddp/pddplink all_about_atom_conversion.pd -text all_about_atom_conversion
+;
+#X obj 721 3 pddp/pddplink http://puredata.info/dev/pddp -text pddp
+;
#X text 11 400 Sets of mixed atoms are defined based on what the "selector"
(the first element of a set). If the "selector" is a "float" \, then
the set is a "list". If the "selector" is the word "list" \, then the
set is a "list". If the "selector" is a "symbol" \, then the set is
NOT a "list":;
-#X text 22 575 (C) Copyright 2004 Hans-Christoph Steiner <hans@at.or.at>
-;
-#X text 239 589 released under the GNU GPL;
-#X text 445 576 $Revision: 1.8 $$Date: 2006-02-06 04:31:31 $;
-#X text 446 589 $Author: matju $;
-#X text 673 551 updated for Pd 0.38-2;
-#X obj 731 135 bng 15 250 50 0 empty empty UNDEFINED 0 21 1 9 -262144
+#X text 600 551 updated for Pd 0.38-2;
+#X obj 688 135 bng 15 250 50 0 empty empty UNDEFINED 0 21 1 9 -262144
-1 -1;
-#X msg 502 286 1 1;
-#X obj 495 312 +;
-#X floatatom 495 334 5 0 0 0 - - -;
-#X msg 467 286 1 3;
-#X text 459 46 A set that is not a "list" has an undefined type:;
-#X msg 494 267 list 1 2;
-#X text 445 208 If you send a "list" of arguments to the first inlet
+#X msg 459 286 1 1;
+#X obj 452 312 +;
+#X floatatom 452 334 5 0 0 0 - - -;
+#X msg 424 286 1 3;
+#X text 416 46 A set that is not a "list" has an undefined type:;
+#X msg 451 267 list 1 2;
+#X text 402 208 If you send a "list" of arguments to the first inlet
of an object \, the elements of that "list" will be applied to the
respective inlet. This does not apply to sets that are NOT "lists".
;
-#X text 443 192 "LISTS" MAP TO INLETS;
-#X text 450 367 WORKING WITH MIXED SETS;
+#X text 400 192 "LISTS" MAP TO INLETS;
+#X text 407 367 WORKING WITH MIXED SETS;
#X text 11 381 SETS OF MIXED "ATOMS";
#X text 9 218 A message having more than one atom starting with a "float"
is implicitly considered a list. A message having more than one atom
@@ -198,12 +195,12 @@ symbol] outputs a symbol from its left outlet.;
#X connect 53 0 54 0;
#X connect 54 0 48 0;
#X connect 54 1 49 0;
-#X restore 486 453 pd has some odd cases of list handling;
-#X text 450 389 When working with sets that might be either "lists"
+#X restore 443 453 pd has some odd cases of list handling;
+#X text 407 389 When working with sets that might be either "lists"
or undefined \, use [prepend]. Many of the "list" handling objects
in Pd have odd quirks which can make things difficult.;
-#X obj 484 115 route bang float symbol pointer list;
-#X obj 632 135 bng 15 250 50 0 empty empty pointer 0 21 1 9 -262144
+#X obj 441 115 route bang float symbol pointer list;
+#X obj 589 135 bng 15 250 50 0 empty empty pointer 0 21 1 9 -262144
-1 -1;
#X obj 11 169 bng 15 250 50 0 empty empty bang 0 20 1 9 -262144 -1
-1;
@@ -222,33 +219,33 @@ in Pd have odd quirks which can make things difficult.;
#X connect 1 0 7 0;
#X connect 1 1 8 0;
#X connect 2 0 1 0;
-#X connect 3 0 59 0;
+#X connect 3 0 55 0;
#X connect 9 0 1 0;
#X connect 10 0 1 0;
-#X connect 14 0 52 0;
-#X connect 15 0 52 0;
+#X connect 14 0 48 0;
+#X connect 15 0 48 0;
#X connect 17 0 18 0;
#X connect 17 1 19 0;
#X connect 20 0 17 0;
#X connect 21 0 17 0;
#X connect 23 0 17 0;
#X connect 24 0 17 0;
-#X connect 25 0 59 0;
+#X connect 25 0 55 0;
#X connect 26 0 4 0;
-#X connect 26 0 59 0;
-#X connect 39 0 40 0;
-#X connect 40 0 41 0;
-#X connect 42 0 40 0;
-#X connect 44 0 40 0;
-#X connect 52 0 11 0;
-#X connect 52 1 12 0;
-#X connect 52 2 13 0;
-#X connect 52 3 53 0;
-#X connect 52 4 16 0;
-#X connect 52 5 38 0;
-#X connect 59 0 54 0;
-#X connect 59 1 55 0;
-#X connect 59 2 56 0;
-#X connect 59 3 60 0;
-#X connect 59 4 57 0;
-#X connect 59 5 58 0;
+#X connect 26 0 55 0;
+#X connect 35 0 36 0;
+#X connect 36 0 37 0;
+#X connect 38 0 36 0;
+#X connect 40 0 36 0;
+#X connect 48 0 11 0;
+#X connect 48 1 12 0;
+#X connect 48 2 13 0;
+#X connect 48 3 49 0;
+#X connect 48 4 16 0;
+#X connect 48 5 34 0;
+#X connect 55 0 50 0;
+#X connect 55 1 51 0;
+#X connect 55 2 52 0;
+#X connect 55 3 56 0;
+#X connect 55 4 53 0;
+#X connect 55 5 54 0;
diff --git a/doc/pddp/all_about_looping.pd b/doc/pddp/all_about_looping.pd
index 443b3b7d..99b76d4a 100644
--- a/doc/pddp/all_about_looping.pd
+++ b/doc/pddp/all_about_looping.pd
@@ -1,32 +1,32 @@
-#N canvas 255 95 868 635 10;
-#X text 460 79 looping objects:;
-#X obj 462 101 until;
-#X obj 520 101 loop;
-#X obj 437 504 susloop~;
-#X obj 506 504 loop~;
-#X text 434 483 for looping samples:;
-#X obj 0 2 cnv 15 850 20 empty empty all_about_looping 20 10 1 18 -233017
+#N canvas 35 22 757 548 10;
+#X text 440 49 looping objects:;
+#X obj 442 71 until;
+#X obj 500 71 loop;
+#X obj 417 474 susloop~;
+#X obj 486 474 loop~;
+#X text 414 453 for looping samples:;
+#X obj 0 2 cnv 15 750 20 empty empty all_about_looping 20 10 1 18 -233017
-66577 0;
-#X obj 816 3 pddp/pddplink http://puredata.info/dev/pddp -text pddp;
-#X obj 461 127 counter;
-#X obj 519 127 gem_counter;
-#X obj 604 127 cxc.counter;
-#X obj 442 551 pdp_loop;
-#X obj 513 551 pdp_qtloop~;
-#X obj 551 504 loopsampler;
-#X obj 429 424 test-loop~;
-#X obj 695 126 for++;
-#X obj 90 167 +;
-#X floatatom 119 170 5 0 0 0 - - -;
-#X msg 89 138 1;
-#X obj 169 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X obj 716 3 pddp/pddplink http://puredata.info/dev/pddp -text pddp
+;
+#X obj 441 97 counter;
+#X obj 499 97 gem_counter;
+#X obj 584 97 cxc.counter;
+#X obj 422 521 pdp_loop;
+#X obj 493 521 pdp_qtloop~;
+#X obj 531 474 loopsampler;
+#X obj 675 96 for++;
+#X obj 82 167 +;
+#X floatatom 111 170 5 0 0 0 - - -;
+#X msg 81 138 1;
+#X obj 161 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
-#X msg 128 138 0;
-#X obj 90 209 t f f;
-#X text 214 302 X;
-#X text 76 306 Y;
-#X obj 60 289 t b f;
-#N canvas 0 22 450 300 graph2 0;
+#X msg 120 138 0;
+#X obj 82 209 t f f;
+#X text 206 302 X;
+#X text 68 306 Y;
+#X obj 52 289 t b f;
+#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-array 100 float 1;
#A 0 0 0.946674 0.967388 0.983095 0.993714 0.999191 0.999497 0.99463
0.984615 0.969505 0.949378 0.924337 0.894513 0.860059 0.821154 0.778
@@ -46,77 +46,73 @@
0.000796274 0.000796274 0.000796274;
#X coords 0 1 99 -1 300 100 1;
#X restore 82 405 graph;
-#X obj 90 314 tabwrite \$0-array;
-#X obj 90 186 moses 100;
-#X obj 89 111 bng 20 250 50 0 empty empty start 0 -6 1 10 -4033 -1
+#X obj 82 314 tabwrite \$0-array;
+#X obj 82 186 moses 100;
+#X obj 81 111 bng 20 250 50 0 empty empty start 0 -6 1 10 -4033 -1
-1;
-#X text 166 166 <-- counter;
-#X text 188 186 <-- split at array size to stop;
-#X text 216 199 and reset counter to 0;
-#X text 57 336 ^--bang for next step;
-#X obj 60 249 expr abs(cos( min (1.57 \, ($f1 / $f2 - 0.4)) ) );
-#X obj 263 227 hsl 128 15 1 127 0 1 empty empty change_graph_shape
+#X text 158 166 <-- counter;
+#X text 180 186 <-- split at array size to stop;
+#X text 208 199 and reset counter to 0;
+#X text 49 336 ^--bang for next step;
+#X obj 52 249 expr abs(cos( min (1.57 \, ($f1 / $f2 - 0.4)) ) );
+#X obj 255 227 hsl 128 15 1 127 0 1 empty empty change_graph_shape
-130 8 1 12 -208896 -1 -1 1300 0;
#X text 13 362 In this example \, the "bang" from [t b f] continues
the loop. The [moses 100] ends the loop.;
-#X text 155 138 <-- stop;
-#X text 430 466 There are also specific loops for samples and video:
+#X text 147 138 <-- stop;
+#X text 410 436 There are also specific loops for samples and video:
;
-#X text 437 530 video looping:;
-#X obj 639 504 xgroove~;
-#X obj 619 373 readsf~;
-#X obj 619 306 spigot;
-#X obj 656 284 tgl 15 0 empty empty allow_looping 17 7 0 10 -4033 -1
+#X text 417 500 video looping:;
+#X obj 619 474 xgroove~;
+#X obj 539 343 readsf~;
+#X obj 539 276 spigot;
+#X obj 576 254 tgl 15 0 empty empty allow_looping 17 7 0 10 -4033 -1
-1 0 1;
-#X text 429 251 For the most basic looping of samples \, you can use
+#X text 409 181 For the most basic looping of samples \, you can use
[readsf~]:;
-#X msg 628 350 open ../sound/voice.wav;
-#X text 664 393 ^- "bang"ed when complete;
-#X msg 592 350 1;
-#X obj 611 405 dac~;
-#X obj 592 328 t b b;
-#X obj 592 285 bng 20 250 50 0 empty empty start 0 -6 1 10 -4033 -1
+#X msg 548 320 open ../sound/voice.wav;
+#X text 584 363 ^- "bang"ed when complete;
+#X msg 512 320 1;
+#X obj 531 375 dac~;
+#X obj 512 298 t b b;
+#X obj 512 255 bng 20 250 50 0 empty empty start 0 -6 1 10 -4033 -1
-1;
-#X text 226 608 released under the GNU GPL;
-#X text 9 594 (C) Copyright 2005 Hans-Christoph Steiner <hans@at.or.at>
-;
-#X text 629 603 updated for Pd version 0.38.2;
-#X obj 38 201 bang;
+#X text 31 525 updated for Pd version 0.38.2;
+#X obj 30 201 bang;
#X text 2 137 continue -->;
#X text 7 29 Programming with Pd is a different way of thinking that
standard procedural or object-oriented programming. Looping illustrates
this. Instead of setting up a C-like [counter] or [for++] \, set up
a condition to continue the loop \, and a condition that stops the
loop.;
-#X text 429 395 other examples:;
-#X obj 705 504 count~;
-#X obj 557 101 modulo_counter;
-#X obj 665 101 count;
-#X obj 709 101 countund;
-#X connect 16 0 17 0;
-#X connect 16 0 27 0;
-#X connect 17 0 16 1;
-#X connect 18 0 16 0;
-#X connect 19 0 20 0;
-#X connect 20 0 17 0;
-#X connect 20 0 16 1;
-#X connect 21 0 33 0;
-#X connect 21 1 26 1;
-#X connect 24 0 53 0;
-#X connect 24 1 26 0;
-#X connect 27 0 21 0;
-#X connect 27 1 19 0;
-#X connect 28 0 18 0;
-#X connect 33 0 24 0;
-#X connect 34 0 33 1;
+#X obj 685 474 count~;
+#X obj 537 71 modulo_counter;
+#X obj 645 71 count;
+#X obj 689 71 countund;
+#X connect 15 0 16 0;
+#X connect 15 0 26 0;
+#X connect 16 0 15 1;
+#X connect 17 0 15 0;
+#X connect 18 0 19 0;
+#X connect 19 0 16 0;
+#X connect 19 0 15 1;
+#X connect 20 0 32 0;
+#X connect 20 1 25 1;
+#X connect 23 0 50 0;
+#X connect 23 1 25 0;
+#X connect 26 0 20 0;
+#X connect 26 1 18 0;
+#X connect 27 0 17 0;
+#X connect 32 0 23 0;
+#X connect 33 0 32 1;
+#X connect 39 0 46 0;
+#X connect 39 0 46 1;
+#X connect 39 1 40 0;
#X connect 40 0 47 0;
-#X connect 40 0 47 1;
-#X connect 40 1 41 0;
-#X connect 41 0 48 0;
-#X connect 42 0 41 1;
-#X connect 44 0 40 0;
-#X connect 46 0 40 0;
-#X connect 48 0 46 0;
-#X connect 48 1 44 0;
-#X connect 49 0 48 0;
-#X connect 53 0 18 0;
+#X connect 41 0 40 1;
+#X connect 43 0 39 0;
+#X connect 45 0 39 0;
+#X connect 47 0 45 0;
+#X connect 47 1 43 0;
+#X connect 48 0 47 0;
+#X connect 50 0 17 0;
diff --git a/doc/pddp/all_about_symbol_construction.pd b/doc/pddp/all_about_symbol_construction.pd
index 4bc37a92..a50c85ca 100644
--- a/doc/pddp/all_about_symbol_construction.pd
+++ b/doc/pddp/all_about_symbol_construction.pd
@@ -1,44 +1,50 @@
-#N canvas 180 74 863 635 10;
-#X obj 0 2 cnv 15 850 20 empty empty all_about_symbol_construction
+#N canvas 86 22 759 427 10;
+#X obj 0 2 cnv 15 750 20 empty empty all_about_symbol_construction
20 10 1 18 -233017 -66577 0;
-#X obj 816 3 pddp/pddplink http://puredata.info/dev/pddp -text pddp;
-#X text 17 601 by Hans-Christoph Steiner <hans@at.or.at>;
-#X text 629 603 updated for Pd version 0.37.1;
-#X obj 452 550 sprintf;
-#X obj 751 550 makesymbol;
-#X obj 659 550 makefilename;
-#X obj 574 550 list2symbol;
-#X symbolatom 456 177 55 0 0 0 - - -;
-#X obj 456 151 list2symbol;
-#X symbolatom 528 129 6 0 0 0 - - -;
-#X msg 528 103 symbol -;
-#X msg 456 73 make these into one symbol with no spaces;
-#X text 445 35 By setting a symbol on the right inlet of [list2symbol]
+#X obj 716 3 pddp/pddplink http://puredata.info/dev/pddp -text pddp
+;
+#X text 23 389 updated for Pd version 0.37.1;
+#X obj 372 390 sprintf;
+#X obj 671 390 makesymbol;
+#X obj 579 390 makefilename;
+#X obj 494 390 list2symbol;
+#X symbolatom 396 177 55 0 0 0 - - -;
+#X obj 396 151 list2symbol;
+#X symbolatom 468 129 6 0 0 0 - - -;
+#X msg 468 103 symbol -;
+#X msg 396 73 make these into one symbol with no spaces;
+#X text 385 35 By setting a symbol on the right inlet of [list2symbol]
\, you can create symbols without spaces:;
-#X text 592 102 <- click here to use "-";
-#X text 613 115 instead of spaces;
+#X text 532 102 <- click here to use "-";
+#X text 553 115 instead of spaces;
#X text 9 85 There are many different ways of constructing symbols
from various parts. You can turn lists into symbols by replacing the
spaces with other characters or you can use objects with "format strings"
that allow you to create symbols with more flexibility;
-#X obj 510 550 tosymbol;
-#X text 442 211 [tosymbol] works in a very similar way:;
+#X obj 430 390 tosymbol;
+#X text 382 211 [tosymbol] works in a very similar way:;
#X text 9 40 Many times you need to dynamically create different symbols.
For example \, if you are working with many files \, you might want
to name them with a sequential number.;
-#X symbolatom 455 316 55 0 0 0 - - -;
-#X msg 455 232 make these into one symbol with no spaces;
-#X text 638 274 instead of spaces;
-#X obj 455 292 tosymbol;
-#X text 546 144 ^-- or type here and hit enter;
-#X text 446 523 Related objects:;
-#X msg 517 260 separator -|-;
-#X text 616 261 <- click here to use "-|-";
-#X obj 452 575 concat;
-#X connect 9 0 8 0;
-#X connect 10 0 9 1;
-#X connect 11 0 10 0;
-#X connect 12 0 9 0;
-#X connect 21 0 23 0;
-#X connect 23 0 20 0;
-#X connect 26 0 23 0;
+#X symbolatom 395 316 55 0 0 0 - - -;
+#X msg 395 232 make these into one symbol with no spaces;
+#X text 578 274 instead of spaces;
+#X obj 395 292 tosymbol;
+#X text 486 144 ^-- or type here and hit enter;
+#X text 366 363 Related objects:;
+#X msg 457 260 separator -|-;
+#X text 556 261 <- click here to use "-|-";
+#X msg 18 258 list you can have up to ten members in your list.;
+#X obj 18 282 makesymbol 1%s_2%s_3%s_4%s_5%s_6%s_7%s_8%s_9%s_10%s;
+#X symbolatom 18 305 55 0 0 0 - - -;
+#X text 16 211 Using zexy's makesymbol \, you can build symbols by
+plugging lists into printf-style patterns:;
+#X connect 8 0 7 0;
+#X connect 9 0 8 1;
+#X connect 10 0 9 0;
+#X connect 11 0 8 0;
+#X connect 20 0 22 0;
+#X connect 22 0 19 0;
+#X connect 25 0 22 0;
+#X connect 27 0 28 0;
+#X connect 28 0 29 0;