aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/tutorials/intro/01.hello_world.pd2
-rw-r--r--doc/tutorials/intro/05.objects.pd2
-rw-r--r--doc/tutorials/intro/06.connections.pd2
-rw-r--r--doc/tutorials/intro/07.messages.pd2
-rw-r--r--doc/tutorials/intro/08.EXERCISE-make_your_first_patch.pd2
-rw-r--r--doc/tutorials/intro/09.the_basic_atoms.pd38
-rw-r--r--doc/tutorials/intro/10.bang.pd (renamed from doc/tutorials/intro/09.bang.pd)2
-rw-r--r--doc/tutorials/intro/11.event_driven_processing.pd (renamed from doc/tutorials/intro/10.event_driven_processing.pd)2
-rw-r--r--doc/tutorials/intro/12.counters.pd (renamed from doc/tutorials/intro/11.counters.pd)2
-rw-r--r--doc/tutorials/intro/13.hot_and_cold_inlets.pd (renamed from doc/tutorials/intro/12.hot_and_cold_inlets.pd)2
-rw-r--r--doc/tutorials/intro/14.right_to_left_order.pd2
-rw-r--r--doc/tutorials/intro/15.ordering_messages.pd2
-rw-r--r--doc/tutorials/intro/16.ordering_messages.pd46
-rw-r--r--doc/tutorials/intro/16.top_to_bottom.pd44
-rw-r--r--doc/tutorials/intro/17.depth_first.pd (renamed from doc/tutorials/intro/16.depth_first.pd)2
-rw-r--r--doc/tutorials/intro/17.inlets_and_outlets.pd42
-rw-r--r--doc/tutorials/intro/18.inlets_and_outlets.pd (renamed from doc/tutorials/intro/23.inlets_and_outlets.pd)6
-rw-r--r--doc/tutorials/intro/19.atoms.pd34
-rw-r--r--doc/tutorials/intro/19.storage_objects.pd (renamed from doc/tutorials/intro/18.storage_objects.pd)2
-rw-r--r--doc/tutorials/intro/20.creation_arguments.pd34
-rw-r--r--doc/tutorials/intro/21.atomic_messages.pd (renamed from doc/tutorials/intro/20.atomic_messages.pd)2
-rw-r--r--doc/tutorials/intro/22.selectors.pd (renamed from doc/tutorials/intro/21.selectors.pd)2
-rw-r--r--doc/tutorials/intro/23.subpatches.pd (renamed from doc/tutorials/intro/22.subpatches.pd)2
-rw-r--r--doc/tutorials/intro/25.Example-all_just_data.pd4
-rw-r--r--doc/tutorials/intro/26.EXERCISE-hmmm.pd2
-rw-r--r--doc/tutorials/intro/26.creation_arguments.pd59
-rw-r--r--doc/tutorials/intro/27.creation_arguments.pd (renamed from doc/tutorials/intro/creation_arguments.pd)2
-rw-r--r--doc/tutorials/intro/28.turning_on_and_off.pd (renamed from doc/tutorials/intro/27.turning_on_and_off.pd)2
-rw-r--r--doc/tutorials/intro/29.properties.pd (renamed from doc/tutorials/intro/28.properties.pd)0
-rw-r--r--doc/tutorials/intro/30.sliders.pd (renamed from doc/tutorials/intro/29.sliders.pd)2
-rw-r--r--doc/tutorials/intro/31.gui_objects.pd (renamed from doc/tutorials/intro/30.gui_objects.pd)2
-rw-r--r--doc/tutorials/intro/31.guis.pd813
-rw-r--r--doc/tutorials/intro/32.guis.pd (renamed from doc/tutorials/intro/30.guis.pd)2
-rw-r--r--doc/tutorials/intro/33.nervous_guis.pd (renamed from doc/tutorials/intro/31.nervous_guis.pd)6
-rw-r--r--doc/tutorials/intro/33.selecting_events.pd54
-rw-r--r--doc/tutorials/intro/34.EXERCISE-make_a_gui_object_dynamic.pd (renamed from doc/tutorials/intro/32.EXERCISE-make_a_gui_object_dynamic.pd)2
-rw-r--r--doc/tutorials/intro/34.comparing_numbers.pd55
-rw-r--r--doc/tutorials/intro/35.selecting_events.pd54
-rw-r--r--doc/tutorials/intro/36.comparing_numbers.pd (renamed from doc/tutorials/intro/comparing_numbers.pd)2
-rw-r--r--doc/tutorials/intro/36.init_to_0.pd39
-rw-r--r--doc/tutorials/intro/37.math.pd (renamed from doc/tutorials/intro/35.math.pd)10
-rw-r--r--doc/tutorials/intro/38.init_to_0.pd2
-rw-r--r--doc/tutorials/intro/39.math_expr.pd (renamed from doc/tutorials/intro/37.math_expr.pd)2
-rw-r--r--doc/tutorials/intro/40.number_limitations.pd22
-rw-r--r--doc/tutorials/intro/40.using_lists.pd17
-rw-r--r--doc/tutorials/intro/41.floats_and_ints.pd23
-rw-r--r--doc/tutorials/intro/42.EXERCISE-help_americans.pd (renamed from doc/tutorials/intro/38.EXERCISE-help_americans.pd)2
-rw-r--r--doc/tutorials/intro/43.building_lists.pd (renamed from doc/tutorials/intro/39.building_lists.pd)2
-rw-r--r--doc/tutorials/intro/44.multiple_messages.pd18
-rw-r--r--doc/tutorials/intro/44.using_lists.pd (renamed from doc/tutorials/intro/using_lists.pd)2
-rw-r--r--doc/tutorials/intro/45.send_messages_to_pd.pd26
-rw-r--r--doc/tutorials/intro/45.sorting_messages_by_type.pd (renamed from doc/tutorials/intro/41.sorting_messages_by_type.pd)2
-rw-r--r--doc/tutorials/intro/46.trigger_conversion.pd (renamed from doc/tutorials/intro/42.trigger_conversion.pd)2
-rw-r--r--doc/tutorials/intro/47.grabbing_keystrokes.pd (renamed from doc/tutorials/intro/43.grabbing_keystrokes.pd)4
-rw-r--r--doc/tutorials/intro/48.building_messages.pd (renamed from doc/tutorials/intro/13.building_messages.pd)2
-rw-r--r--doc/tutorials/intro/49.pure_data_files.pd (renamed from doc/tutorials/intro/46.pure_data_files.pd)4
-rw-r--r--doc/tutorials/intro/50.multiple_messages.pd (renamed from doc/tutorials/intro/multiple_messages.pd)2
-rw-r--r--doc/tutorials/intro/51.send_messages_to_pd.pd (renamed from doc/tutorials/intro/47.send_messages_to_pd.pd)2
-rw-r--r--doc/tutorials/intro/building_lists.pd31
-rw-r--r--doc/tutorials/intro/floats_and_ints.pd23
-rw-r--r--doc/tutorials/intro/init_to_0.pd31
-rw-r--r--doc/tutorials/intro/number_limitations.pd24
-rw-r--r--doc/tutorials/intro/pure_data_files.pd54
-rw-r--r--doc/tutorials/intro/selecting_events.pd27
-rw-r--r--doc/tutorials/intro/send_messages_to_pd.pd26
65 files changed, 266 insertions, 1470 deletions
diff --git a/doc/tutorials/intro/01.hello_world.pd b/doc/tutorials/intro/01.hello_world.pd
index 0cefdcc8..530139dc 100644
--- a/doc/tutorials/intro/01.hello_world.pd
+++ b/doc/tutorials/intro/01.hello_world.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 632 472 12;
+#N canvas 10 40 620 460 12;
#X msg 235 167 Hello world!;
#X text 238 216 <-- connection \, aka "cord";
#X text 17 32 In Pd \, programming is done with boxes which are connected
diff --git a/doc/tutorials/intro/05.objects.pd b/doc/tutorials/intro/05.objects.pd
index c43a5e17..d06c6afa 100644
--- a/doc/tutorials/intro/05.objects.pd
+++ b/doc/tutorials/intro/05.objects.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 624 464 12;
+#N canvas 10 40 620 460 12;
#X obj 28 151 float;
#X text 10 61 The fundamental building block of a Pd program is the
object. Each object is itself like a tiny program that does a very
diff --git a/doc/tutorials/intro/06.connections.pd b/doc/tutorials/intro/06.connections.pd
index 44666eb0..5477f86c 100644
--- a/doc/tutorials/intro/06.connections.pd
+++ b/doc/tutorials/intro/06.connections.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 628 468 12;
+#N canvas 10 40 620 460 12;
#X text 12 132 Pd patches are always running and changes take effect
immediately.;
#X floatatom 25 277 5 0 0 0 - - -;
diff --git a/doc/tutorials/intro/07.messages.pd b/doc/tutorials/intro/07.messages.pd
index ea95c05c..084f20ce 100644
--- a/doc/tutorials/intro/07.messages.pd
+++ b/doc/tutorials/intro/07.messages.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 624 464 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty messages 20 12 0 24 -228992
-66577 0;
#X msg 354 162 say hello;
diff --git a/doc/tutorials/intro/08.EXERCISE-make_your_first_patch.pd b/doc/tutorials/intro/08.EXERCISE-make_your_first_patch.pd
index eb4ed1cf..566e4cdf 100644
--- a/doc/tutorials/intro/08.EXERCISE-make_your_first_patch.pd
+++ b/doc/tutorials/intro/08.EXERCISE-make_your_first_patch.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 624 464 12;
+#N canvas 10 40 620 460 12;
#X obj 8 10 cnv 15 600 40 empty empty EXERCISE-make_your_first_patch
20 12 0 24 -262131 -66577 0;
#X text 15 71 Its time to make your first patch. Follow the instructions
diff --git a/doc/tutorials/intro/09.the_basic_atoms.pd b/doc/tutorials/intro/09.the_basic_atoms.pd
new file mode 100644
index 00000000..0863ec05
--- /dev/null
+++ b/doc/tutorials/intro/09.the_basic_atoms.pd
@@ -0,0 +1,38 @@
+#N canvas 10 40 620 460 12;
+#X obj 12 211 cnv 15 600 70 empty empty empty 20 12 0 14 -262134 -66577
+0;
+#X obj 10 12 cnv 15 400 40 empty empty the_basic_atoms 20 12 0 24 -228992
+-66577 0;
+#X text 56 209 1;
+#X text 81 240 0;
+#X text 138 213 1.14234e+34;
+#X text 429 244 3.14159;
+#X text 333 211 -999999;
+#X text 335 244 45;
+#X text 195 243 -12;
+#X text 512 221 1824.53;
+#X text 28 237 3;
+#X obj 13 377 cnv 15 600 70 empty empty empty 20 12 0 14 -262134 -66577
+0;
+#X text 33 377 word;
+#X text 94 409 number5;
+#X text 204 380 3..2;
+#X text 558 414 --44;
+#X text 240 412 label;
+#X text 486 375 reset;
+#X text 337 375 5++;
+#X text 404 407 trigger;
+#X text 11 68 The essential data types of Pd are called "atoms". An
+atom is a piece of data that cannot be broken down into smaller parts.
+The two most basic atom types are numeric and symbol \, also known
+as "float" and "symbol".;
+#X obj 12 151 cnv 15 15 15 empty empty numeric_atom 0 8 0 14 -262144
+-66577 0;
+#X obj 12 301 cnv 15 15 15 empty empty symbolic_atom 0 8 0 14 -262144
+-66577 0;
+#X text 30 332 A symbolic atom is any element that is not a functional
+representation of a number \, usually in the form of words:;
+#X text 124 300 = anything that is not a number;
+#X text 24 170 A numeric atom is any element that can be interpreted
+as a number;
+#X text 114 150 = a number;
diff --git a/doc/tutorials/intro/09.bang.pd b/doc/tutorials/intro/10.bang.pd
index 3fa1813c..39460122 100644
--- a/doc/tutorials/intro/09.bang.pd
+++ b/doc/tutorials/intro/10.bang.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 640 480 12;
+#N canvas 10 40 620 460 12;
#X obj 18 191 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 18 269 bang;
diff --git a/doc/tutorials/intro/10.event_driven_processing.pd b/doc/tutorials/intro/11.event_driven_processing.pd
index e705b58d..31ccdacd 100644
--- a/doc/tutorials/intro/10.event_driven_processing.pd
+++ b/doc/tutorials/intro/11.event_driven_processing.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 628 468 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty event_driven_processing 20 12
0 24 -228992 -66577 0;
#X text 18 65 Message processing is driven by events \, nothing happens
diff --git a/doc/tutorials/intro/11.counters.pd b/doc/tutorials/intro/12.counters.pd
index 7a1b70c0..a18cb2f7 100644
--- a/doc/tutorials/intro/11.counters.pd
+++ b/doc/tutorials/intro/12.counters.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 628 468 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty counters 20 12 0 24 -228992
-66577 0;
#X obj 156 362 cnv 15 100 60 empty empty empty 20 12 0 14 -261039 -66577
diff --git a/doc/tutorials/intro/12.hot_and_cold_inlets.pd b/doc/tutorials/intro/13.hot_and_cold_inlets.pd
index ab820ade..b2f34fb1 100644
--- a/doc/tutorials/intro/12.hot_and_cold_inlets.pd
+++ b/doc/tutorials/intro/13.hot_and_cold_inlets.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 628 468 12;
+#N canvas 10 40 620 460 12;
#X obj 19 252 +;
#X floatatom 19 281 5 0 0 0 - - -;
#X msg 19 188 1;
diff --git a/doc/tutorials/intro/14.right_to_left_order.pd b/doc/tutorials/intro/14.right_to_left_order.pd
index 32379786..36ab0561 100644
--- a/doc/tutorials/intro/14.right_to_left_order.pd
+++ b/doc/tutorials/intro/14.right_to_left_order.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 628 468 12;
+#N canvas 10 40 620 460 12;
#X obj 165 185 bng 25 250 50 0 empty empty empty -2 -8 1 10 -24198
-1 -1;
#X obj 165 225 trigger bang bang bang;
diff --git a/doc/tutorials/intro/15.ordering_messages.pd b/doc/tutorials/intro/15.ordering_messages.pd
index e52981a5..8a2100db 100644
--- a/doc/tutorials/intro/15.ordering_messages.pd
+++ b/doc/tutorials/intro/15.ordering_messages.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 628 468 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty ordering_messages 20 12 0 24
-228992 -66577 0;
#X text 10 393 look here for the result -->;
diff --git a/doc/tutorials/intro/16.ordering_messages.pd b/doc/tutorials/intro/16.ordering_messages.pd
deleted file mode 100644
index 8a2100db..00000000
--- a/doc/tutorials/intro/16.ordering_messages.pd
+++ /dev/null
@@ -1,46 +0,0 @@
-#N canvas 10 40 620 460 12;
-#X obj 10 10 cnv 15 400 40 empty empty ordering_messages 20 12 0 24
--228992 -66577 0;
-#X text 10 393 look here for the result -->;
-#X text 10 62 Officially \, the execution order in Pd is undefined.
-;
-#X text 10 88 The [trigger] object allows you to specify the order
-of messages are sent. If you need to make sure that one thing runs
-before another \, use [trigger]:;
-#X obj 3 174 cnv 15 80 25 empty empty empty 20 12 0 14 -225271 -66577
-0;
-#X obj 142 149 cnv 15 80 25 empty empty empty 20 12 0 14 -225271 -66577
-0;
-#X msg 395 249 now;
-#X msg 316 250 this;
-#X msg 237 250 makes;
-#X msg 158 250 sense;
-#X msg 80 250 !;
-#X obj 157 292 symbol;
-#X msg 159 151 bang;
-#X msg 19 177 bang;
-#X msg 157 316 add2 \$1;
-#X msg 478 248 set;
-#X obj 160 178 trigger bang bang bang bang bang bang;
-#X msg 296 391;
-#X connect 6 0 11 0;
-#X connect 7 0 11 0;
-#X connect 8 0 11 0;
-#X connect 9 0 11 0;
-#X connect 10 0 11 0;
-#X connect 11 0 14 0;
-#X connect 12 0 16 0;
-#X connect 13 0 8 0;
-#X connect 13 0 10 0;
-#X connect 13 0 15 0;
-#X connect 13 0 9 0;
-#X connect 13 0 6 0;
-#X connect 13 0 7 0;
-#X connect 14 0 17 0;
-#X connect 15 0 17 0;
-#X connect 16 0 10 0;
-#X connect 16 1 9 0;
-#X connect 16 2 8 0;
-#X connect 16 3 7 0;
-#X connect 16 4 6 0;
-#X connect 16 5 15 0;
diff --git a/doc/tutorials/intro/16.top_to_bottom.pd b/doc/tutorials/intro/16.top_to_bottom.pd
new file mode 100644
index 00000000..2b875a39
--- /dev/null
+++ b/doc/tutorials/intro/16.top_to_bottom.pd
@@ -0,0 +1,44 @@
+#N canvas 10 40 620 460 12;
+#X obj 10 10 cnv 15 400 40 empty empty top_to_bottom 20 12 0 24 -228992
+-66577 0;
+#X msg 495 137 1;
+#X obj 495 164 + 1;
+#X floatatom 502 190 5 0 0 0 - - -;
+#X obj 495 214 + 1;
+#X floatatom 502 240 5 0 0 0 - - -;
+#X obj 495 264 + 1;
+#X floatatom 502 290 5 0 0 0 - - -;
+#X obj 495 314 + 1;
+#X floatatom 502 340 5 0 0 0 - - -;
+#X msg 106 273 1;
+#X obj 113 319 + 1;
+#X floatatom 148 272 5 0 0 0 - - -;
+#X obj 211 275 + 1;
+#X floatatom 239 329 5 0 0 0 - - -;
+#X obj 184 310 + 1;
+#X floatatom 289 281 5 0 0 0 - - -;
+#X obj 282 305 + 1;
+#X floatatom 289 331 5 0 0 0 - - -;
+#X text 15 175 The example below is just as functional as the example
+on the right. But the example on the right clearly shows the flow of
+the messages.;
+#X text 16 81 Messages flow from the top to the bottom of a patch \,
+always flowing from the outlets on the bottom to inlets on the top.
+Therefore it is also a good idea to structure your patch to represent
+that.;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 6 0 7 0;
+#X connect 6 0 8 0;
+#X connect 8 0 9 0;
+#X connect 10 0 11 0;
+#X connect 11 0 12 0;
+#X connect 11 0 13 0;
+#X connect 13 0 14 0;
+#X connect 13 0 15 0;
+#X connect 15 0 16 0;
+#X connect 15 0 17 0;
+#X connect 17 0 18 0;
diff --git a/doc/tutorials/intro/16.depth_first.pd b/doc/tutorials/intro/17.depth_first.pd
index c42bbd68..eab2677e 100644
--- a/doc/tutorials/intro/16.depth_first.pd
+++ b/doc/tutorials/intro/17.depth_first.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 632 472 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty depth_first 20 12 0 24 -228992
-66577 0;
#X obj 265 229 trigger bang bang;
diff --git a/doc/tutorials/intro/17.inlets_and_outlets.pd b/doc/tutorials/intro/17.inlets_and_outlets.pd
deleted file mode 100644
index 9e6187d6..00000000
--- a/doc/tutorials/intro/17.inlets_and_outlets.pd
+++ /dev/null
@@ -1,42 +0,0 @@
-#N canvas 14 57 624 464 12;
-#N canvas 10 40 620 460 object 0;
-#X obj 175 99 inlet;
-#X obj 174 206 outlet;
-#X text 14 39 this object does nothing but pass data thru;
-#X connect 0 0 1 0;
-#X restore 366 208 pd object;
-#N canvas 10 40 628 468 another 0;
-#X obj 17 94 inlet;
-#X obj 471 382 outlet;
-#X obj 16 386 print;
-#X msg 16 354 hi from inside [pd another object]!;
-#X obj 16 182 trigger bang anything;
-#X text 9 28 This object first passes the data thru \, then says hi
-in the Pd window.;
-#X connect 0 0 4 0;
-#X connect 3 0 2 0;
-#X connect 4 0 3 0;
-#X connect 4 1 1 0;
-#X restore 365 254 pd another object;
-#X obj 12 13 cnv 15 400 40 empty empty inlets_and_outlets 20 12 0 24
--228992 -66577 0;
-#X text 14 76 When making your own objects \, you can make your own
-inlets and outlets \, whether in a subpatch or an abstraction.;
-#X msg 333 162 bang;
-#X obj 327 297 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 30 154 cnv 15 220 180 empty empty empty 20 12 0 14 -233017 -66577
-0;
-#X obj 43 177 inlet;
-#X obj 43 283 outlet;
-#X text 98 177 take in data;
-#X text 60 227 do some stuff here;
-#X text 113 282 output data;
-#X msg 391 161 what's in here?;
-#X obj 373 301 print;
-#X connect 0 0 1 0;
-#X connect 1 0 5 0;
-#X connect 1 0 13 0;
-#X connect 4 0 0 0;
-#X connect 7 0 8 0;
-#X connect 12 0 0 0;
diff --git a/doc/tutorials/intro/23.inlets_and_outlets.pd b/doc/tutorials/intro/18.inlets_and_outlets.pd
index adce1718..5dfe8371 100644
--- a/doc/tutorials/intro/23.inlets_and_outlets.pd
+++ b/doc/tutorials/intro/18.inlets_and_outlets.pd
@@ -1,7 +1,7 @@
-#N canvas 606 22 628 468 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty inlets_and_outlets 20 12 0 24
-228992 -66577 0;
-#N canvas 10 40 628 468 look 0;
+#N canvas 10 40 620 460 look 0;
#X obj 24 34 inlet;
#X obj 238 47 inlet;
#X obj 469 41 inlet;
@@ -23,7 +23,7 @@
-1;
#X obj 197 129 bng 20 250 50 0 empty empty empty 0 -6 0 8 -24198 -1
-1;
-#N canvas 10 40 644 484 look 0;
+#N canvas 10 40 620 460 look 0;
#X obj 20 34 inlet;
#X obj 334 33 inlet;
#X obj 528 35 inlet;
diff --git a/doc/tutorials/intro/19.atoms.pd b/doc/tutorials/intro/19.atoms.pd
deleted file mode 100644
index d0d56010..00000000
--- a/doc/tutorials/intro/19.atoms.pd
+++ /dev/null
@@ -1,34 +0,0 @@
-#N canvas 10 40 624 464 12;
-#X obj 8 192 cnv 15 600 70 empty empty empty 20 12 0 14 -262134 -66577
-0;
-#X obj 10 12 cnv 15 400 40 empty empty atoms 20 12 0 24 -228992 -66577
-0;
-#X text 52 190 1;
-#X text 77 221 0;
-#X text 15 68 The basic data types of Pd are called "atoms". An atom
-is a piece of data that cannot be broken down into smaller parts. There
-are three atom types: "float" \, "symbol" \, and "pointer".;
-#X text 134 194 1.14234e+34;
-#X text 425 225 3.14159;
-#X text 329 192 -999999;
-#X text 331 225 45;
-#X text 191 224 -12;
-#X text 18 147 A numeric atom is any element that can be interpreted
-as a number:;
-#X text 488 192 1824.53;
-#X text 24 218 3;
-#X text 16 259 A symbolic atom is any element that is not a functional
-representation of a number \, usually in the form of words:;
-#X obj 8 306 cnv 15 600 70 empty empty empty 20 12 0 14 -262134 -66577
-0;
-#X text 28 306 word;
-#X text 89 338 number5;
-#X text 199 309 3..2;
-#X text 553 343 --44;
-#X text 235 341 label;
-#X text 481 304 reset;
-#X text 332 304 5++;
-#X text 399 336 trigger;
-#X text 15 381 A pointer is a very specific type of atom. It is only
-used as a reference to a position in a data structure. There is not
-visualization of a pointer.;
diff --git a/doc/tutorials/intro/18.storage_objects.pd b/doc/tutorials/intro/19.storage_objects.pd
index 04f171c6..57ac4f24 100644
--- a/doc/tutorials/intro/18.storage_objects.pd
+++ b/doc/tutorials/intro/19.storage_objects.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 624 464 12;
+#N canvas 10 40 620 460 12;
#X obj 277 25 import iemlib;
#X obj 122 89 symbol;
#X obj 63 89 bang;
diff --git a/doc/tutorials/intro/20.creation_arguments.pd b/doc/tutorials/intro/20.creation_arguments.pd
new file mode 100644
index 00000000..7ae6a356
--- /dev/null
+++ b/doc/tutorials/intro/20.creation_arguments.pd
@@ -0,0 +1,34 @@
+#N canvas 10 40 620 460 10;
+#X obj 170 105 float;
+#X text 23 62 Many objects can accept "arguments" to define their behavior.
+Here is a plain [float] object:;
+#X text 26 135 Here is a [float] object with an argument of "5.5":
+;
+#X obj 168 166 float 5.5;
+#X obj 178 266 float 5.5;
+#X obj 178 248 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 178 287 5 0 0 0 - - -;
+#X text 25 197 Here \, the argument of "5.5" makes this [float] store
+the value 5.5 by default. Clicking the bang makes [float] output the
+value that it is currently storing:;
+#X obj 164 389 select 5;
+#X floatatom 216 410 5 0 0 1 everything_else - -;
+#X obj 165 410 bng 15 250 50 0 empty empty matched -52 9 0 12 -262144
+-1 -1;
+#X msg 163 366 5;
+#X msg 132 366 3;
+#X msg 195 366 7;
+#X text 24 313 Some objects need to have some arguments in order to
+do anything useful. For example \, you can tell [select] which number
+to look for with an argument:;
+#X obj 10 10 cnv 15 400 40 empty empty creation_arguments 20 12 0 24
+-228992 -66577 0;
+#X obj 68 454 pddp/pddplink crca;
+#X connect 4 0 6 0;
+#X connect 5 0 4 0;
+#X connect 8 0 10 0;
+#X connect 8 1 9 0;
+#X connect 11 0 8 0;
+#X connect 12 0 8 0;
+#X connect 13 0 8 0;
diff --git a/doc/tutorials/intro/20.atomic_messages.pd b/doc/tutorials/intro/21.atomic_messages.pd
index 49d64edc..c7524b11 100644
--- a/doc/tutorials/intro/20.atomic_messages.pd
+++ b/doc/tutorials/intro/21.atomic_messages.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 624 464 12;
+#N canvas 10 40 620 460 12;
#X obj 10 12 cnv 15 400 40 empty empty atomic_messages 20 12 0 24 -228992
-66577 0;
#X msg 69 191 symbol atom;
diff --git a/doc/tutorials/intro/21.selectors.pd b/doc/tutorials/intro/22.selectors.pd
index eafd6f32..4eacd33d 100644
--- a/doc/tutorials/intro/21.selectors.pd
+++ b/doc/tutorials/intro/22.selectors.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 628 468 12;
+#N canvas 10 40 620 460 12;
#X obj 8 -33 cnv 15 400 40 empty empty selectors 20 12 0 24 -228992
-66577 0;
#N canvas 10 40 620 460 object 0;
diff --git a/doc/tutorials/intro/22.subpatches.pd b/doc/tutorials/intro/23.subpatches.pd
index f7fe424a..fc4ead01 100644
--- a/doc/tutorials/intro/22.subpatches.pd
+++ b/doc/tutorials/intro/23.subpatches.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 624 464 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty subpatches 20 12 0 24 -228992
-66577 0;
#X text 12 69 Encapsulation is a key concept in Pd programming. Each
diff --git a/doc/tutorials/intro/25.Example-all_just_data.pd b/doc/tutorials/intro/25.Example-all_just_data.pd
index 1e8a7141..d39319e2 100644
--- a/doc/tutorials/intro/25.Example-all_just_data.pd
+++ b/doc/tutorials/intro/25.Example-all_just_data.pd
@@ -1,4 +1,4 @@
-#N canvas 28 39 628 462 12;
+#N canvas 10 40 620 460 12;
#X obj 208 229 import unauthorized Gem;
#X text 217 160 caught you peeking!!;
#X text 197 255 (this just makes sure the;
@@ -11,7 +11,7 @@
#X obj 386 371 nbx 5 24 -1e+37 1e+37 0 0 empty empty Y -15 12 1 18
-166441 -1 -1 0 256;
#X text 40 207 this box ------->;
-#N canvas 649 35 635 469 open 0;
+#N canvas 10 40 620 460 open 0;
#X obj 314 7 cnv 15 300 40 empty empty Y_input 120 20 0 14 -228856
-66577 0;
#X obj 8 7 cnv 15 300 40 empty empty X_input 120 20 0 14 -228856 -66577
diff --git a/doc/tutorials/intro/26.EXERCISE-hmmm.pd b/doc/tutorials/intro/26.EXERCISE-hmmm.pd
index 3e6b3850..4c657683 100644
--- a/doc/tutorials/intro/26.EXERCISE-hmmm.pd
+++ b/doc/tutorials/intro/26.EXERCISE-hmmm.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 624 464 12;
+#N canvas 10 40 620 460 12;
#N canvas 10 40 620 460 guts 0;
#X msg 280 45 \; pd filename exercise-patch.pd /tmp \; #N canvas \;
#X pop 1 \;;
diff --git a/doc/tutorials/intro/26.creation_arguments.pd b/doc/tutorials/intro/26.creation_arguments.pd
deleted file mode 100644
index eb26924d..00000000
--- a/doc/tutorials/intro/26.creation_arguments.pd
+++ /dev/null
@@ -1,59 +0,0 @@
-#N canvas 224 22 443 587 10;
-#X text 10 4 arguments;
-#X obj 158 68 float;
-#X text 11 25 Many objects can accept "arguments" to define their behavior.
-Here is a plain [float] object:;
-#X text 14 98 Here is a [float] object with an argument of "5.5":;
-#X obj 156 129 float 5.5;
-#X obj 166 229 float 5.5;
-#X obj 166 211 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 166 250 5 0 0 0 - - -;
-#X text 13 160 Here \, the argument of "5.5" makes this [float] store
-the value 5.5 by default. Clicking the bang makes [float] output the
-value that it is currently storing:;
-#X floatatom 173 519 5 0 0 0 - - -;
-#X symbolatom 221 518 10 0 0 0 - - -;
-#X obj 126 539 bng 15 250 50 0 empty empty bang -6 23 1 12 -262144
--1 -1;
-#X obj 126 495 route bang float symbol list;
-#X obj 173 539 bng 15 250 50 0 empty empty float -4 23 1 12 -262144
--1 -1;
-#X obj 221 539 bng 15 250 50 0 empty empty symbol -12 23 1 12 -262144
--1 -1;
-#X obj 269 539 bng 15 250 50 0 empty empty list -2 23 1 12 -262144
--1 -1;
-#X msg 64 463 bang;
-#X msg 105 463 5;
-#X msg 141 463 symbol word;
-#X msg 232 463 list one two three;
-#X text 12 411 Some objects can accept many arguments at the same time.
-For example \, you need to tell [route] what kind of data you want
-\, and it will sort it based on the data type:;
-#X obj 152 352 select 5;
-#X floatatom 204 373 5 0 0 1 everything_else - -;
-#X obj 153 373 bng 15 250 50 0 empty empty matched -52 9 0 12 -262144
--1 -1;
-#X msg 151 329 5;
-#X msg 120 329 3;
-#X msg 183 329 7;
-#X text 12 276 Some objects need to have some arguments in order to
-do anything useful. For example \, you can tell [select] which number
-to look for with an argument:;
-#X connect 5 0 7 0;
-#X connect 6 0 5 0;
-#X connect 9 0 13 0;
-#X connect 10 0 14 0;
-#X connect 12 0 11 0;
-#X connect 12 1 9 0;
-#X connect 12 2 10 0;
-#X connect 12 3 15 0;
-#X connect 16 0 12 0;
-#X connect 17 0 12 0;
-#X connect 18 0 12 0;
-#X connect 19 0 12 0;
-#X connect 21 0 23 0;
-#X connect 21 1 22 0;
-#X connect 24 0 21 0;
-#X connect 25 0 21 0;
-#X connect 26 0 21 0;
diff --git a/doc/tutorials/intro/creation_arguments.pd b/doc/tutorials/intro/27.creation_arguments.pd
index eb26924d..09d4f6bb 100644
--- a/doc/tutorials/intro/creation_arguments.pd
+++ b/doc/tutorials/intro/27.creation_arguments.pd
@@ -1,4 +1,4 @@
-#N canvas 224 22 443 587 10;
+#N canvas 10 40 620 460 10;
#X text 10 4 arguments;
#X obj 158 68 float;
#X text 11 25 Many objects can accept "arguments" to define their behavior.
diff --git a/doc/tutorials/intro/27.turning_on_and_off.pd b/doc/tutorials/intro/28.turning_on_and_off.pd
index 087b2b70..52f49fd6 100644
--- a/doc/tutorials/intro/27.turning_on_and_off.pd
+++ b/doc/tutorials/intro/28.turning_on_and_off.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 624 464 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty turning_on_and_off 20 12 0 24
-228992 -66577 0;
#X obj 160 122 tgl 20 0 empty empty empty 0 -6 0 8 -24198 -1 -1 1 1
diff --git a/doc/tutorials/intro/28.properties.pd b/doc/tutorials/intro/29.properties.pd
index aaa3db98..aaa3db98 100644
--- a/doc/tutorials/intro/28.properties.pd
+++ b/doc/tutorials/intro/29.properties.pd
diff --git a/doc/tutorials/intro/29.sliders.pd b/doc/tutorials/intro/30.sliders.pd
index 7c9df971..e6742445 100644
--- a/doc/tutorials/intro/29.sliders.pd
+++ b/doc/tutorials/intro/30.sliders.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 624 464 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty sliders 20 12 0 24 -228992 -66577
0;
#X obj 120 105 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
diff --git a/doc/tutorials/intro/30.gui_objects.pd b/doc/tutorials/intro/31.gui_objects.pd
index fd39c212..f8248b0b 100644
--- a/doc/tutorials/intro/30.gui_objects.pd
+++ b/doc/tutorials/intro/31.gui_objects.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 644 484 10;
+#N canvas 10 40 620 460 10;
#X obj 420 33 import cyclone unauthorized;
#X obj 11 57 cnv 15 600 650 empty empty empty 20 12 0 14 -262131 -66577
0;
diff --git a/doc/tutorials/intro/31.guis.pd b/doc/tutorials/intro/31.guis.pd
deleted file mode 100644
index fc2f5aa9..00000000
--- a/doc/tutorials/intro/31.guis.pd
+++ /dev/null
@@ -1,813 +0,0 @@
-#N canvas 10 40 624 464 10;
-#X obj -4 -4 cnv 15 620 700 empty empty gui-INTRO 237 20 2 14 -261819
--143491 0;
-#X text 101 4 bng;
-#X obj 456 313 vsl 15 128 0 127 0 0 empty empty default_15x128 8 -8
-0 8 -262144 -1 -1 0 1;
-#X obj 354 42 tgl 100 1 empty empty 100_pix 8 -8 0 8 -250685 -24198
--42246 1 1;
-#X obj 57 251 hsl 128 15 0 127 0 0 empty empty default_128x15 8 -8
-0 8 -262144 -1 -1 0 1;
-#X obj 78 226 hsl 20 8 0 19 0 0 empty empty min_20x8 8 -8 0 8 -262144
--1 -1 0 1;
-#X obj 478 326 vsl 8 20 0 19 0 0 empty empty min_8x20 8 -8 0 8 -262144
--1 -1 0 1;
-#X obj 458 48 tgl 8 0 empty empty min_8 8 -8 0 8 -262144 -1 -1 0 1
-;
-#X obj 458 71 tgl 15 0 empty empty default_15 8 -8 0 8 -262144 -1 -1
-0 1;
-#X obj 459 109 tgl 30 0 empty empty 30_pix 8 -8 0 8 -262144 -1 -1 0
-1;
-#X obj 101 88 bng 30 250 50 0 empty empty 30_pix 8 -8 0 8 -262144 -1
--1;
-#X obj 412 304 vsl 30 250 0 249 0 1 empty empty 30x250 8 -8 0 8 -184301
--42886 -42246 21800 1;
-#X obj 7 271 hsl 251 30 0 250 0 1 empty empty 251x30 8 -8 0 8 -147456
--1109 -66577 12500 1;
-#X text 180 518 (c) musil@iem.kug.ac.at;
-#X text 222 531 IEM KUG;
-#X text 197 543 graz \, austria 2001;
-#X obj 40 343 vu 25 200 empty empty 8 -8 0 8 -1 -99865 1 0;
-#X obj 13 24 bng 75 5000 25 1 empty empty 75pix+init 8 -8 0 8 -262131
--261458 -123526;
-#X obj 100 376 vu 15 120 empty empty 8 -8 0 8 -66577 -1 1 0;
-#X obj 186 375 vu 10 80 empty empty 8 -8 0 8 -66577 -1 1 0;
-#X text 99 313 vu;
-#N canvas 10 40 620 460 animate_vu 0;
-#X obj 40 211 t f f;
-#X obj 65 233 + 6;
-#X obj 40 257 pack 0 0;
-#X obj 78 94 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1
-;
-#X obj 78 115 sel 0 1;
-#X obj 78 74 metro 4000;
-#X msg 100 137 30 3000;
-#X msg 78 167 -130 3000;
-#X obj 40 189 line -130 50;
-#X obj 78 51 inlet;
-#X obj 40 316 outlet;
-#X obj 87 316 outlet;
-#X obj 134 316 outlet;
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
-#X connect 1 0 2 1;
-#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 7 0;
-#X connect 4 1 6 0;
-#X connect 5 0 3 0;
-#X connect 6 0 8 0;
-#X connect 7 0 8 0;
-#X connect 8 0 0 0;
-#X connect 9 0 5 0;
-#X restore 99 349 pd animate_vu;
-#X obj 99 331 tgl 15 1 empty empty empty 8 -8 0 10 -262144 -1 -1 1
-1;
-#X text 360 8 toggle = tgl;
-#X text 68 198 hslider = hsl;
-#X text 430 271 vslider = vsl;
-#X obj 13 160 print initial_bang;
-#X obj 21 118 bng 15 250 50 0 empty empty default_15 8 -8 0 8 -262144
--1 -1;
-#X obj 104 48 bng 8 250 50 0 empty empty min_8 8 -8 0 10 -262144 -1
--1;
-#X obj 21 137 print no_initial_bang;
-#X obj 283 324 cnv 15 100 30 empty empty empty 20 12 2 20 -225271 -66577
-0;
-#X obj 283 355 cnv 15 100 30 empty empty empty 20 12 2 20 -225280 -66577
-0;
-#X obj 283 386 cnv 15 100 30 empty empty empty 20 12 2 20 -261681 -66577
-0;
-#X obj 283 417 cnv 15 100 30 empty empty empty 20 12 2 20 -257472 -66577
-0;
-#X obj 172 375 vu 10 80 empty empty 8 -8 0 8 -66577 -1 0 0;
-#X obj 310 203 hradio 15 1 1 8 empty empty default_8*15 8 -8 0 8 -262144
--1 -1 2;
-#X obj 254 223 hradio 25 1 1 12 empty empty 12*25 8 -8 0 8 -1433 -225280
--355 1;
-#N canvas 10 40 620 460 nervous 0;
-#X obj 10 23 tgl 55 1 empty start_nervously1 start_it 8 -8 0 10 -260818
--1 -250685 0 1;
-#X obj 131 141 bng 51 1200 50 0 empty nerv_bng bang 8 -8 0 10 -253378
--137031 -222091;
-#X obj 120 418 hsl 22 12 0 127 0 0 empty nerv_hsl h-slider 8 -8 0 10
--71033 -66198 -128091 0 1;
-#X obj 448 140 tgl 11 1 empty nerv_tgl toggle 8 -8 0 10 -141355 -82199
--51488 0 1;
-#X obj 447 383 vsl 15 111 0 127 0 0 empty nerv_vsl v-slider 8 -8 0
-10 -150187 -73940 -248863 0 1;
-#N canvas 10 40 620 460 control 0;
-#X obj 19 21 inlet;
-#X obj 19 50 t b f;
-#X obj 19 153 del 900;
-#X obj 19 212 del 900;
-#X obj 19 93 del 100;
-#X obj 19 283 del 900;
-#X obj 33 125 f;
-#X obj 33 180 f;
-#X obj 33 245 f;
-#X obj 33 309 f;
-#N canvas 10 40 620 460 bng 0;
-#X obj 114 260 - 0;
-#X obj 148 258 f;
-#X obj 147 222 t f b;
-#X obj 79 122 random 56789;
-#X obj 150 165 random 9876;
-#X obj 47 236 - 0;
-#X obj 81 234 f;
-#X obj 80 198 t f b;
-#X obj 150 192 % 50;
-#X obj 79 145 % 50;
-#X obj 64 289 pack 0 0;
-#X obj 85 53 t b b b;
-#X obj 234 368 pack 0 0 0;
-#X obj 250 29 metro 2000;
-#X obj 445 122 random 555666;
-#X obj 445 168 + 8;
-#X obj 445 145 % 120;
-#X obj 84 32 metro 100;
-#X obj 234 261 random 1.67772e+07;
-#X obj 266 283 random 1.67772e+07;
-#X obj 299 315 random 1.67772e+07;
-#X obj 84 11 inlet;
-#X msg 64 312 \; nerv_bng delta \$1 \$2;
-#X msg 234 390 \; nerv_bng color \$1 \$2 \$3;
-#X msg 445 192 \; nerv_bng size \$1;
-#X msg 250 51 \; nerv_bng bang;
-#X obj 234 340 * -1;
-#X obj 266 316 * -1;
-#X obj 299 342 * -1;
-#X connect 0 0 10 1;
-#X connect 1 0 0 1;
-#X connect 2 0 1 1;
-#X connect 2 0 0 0;
-#X connect 2 1 1 0;
-#X connect 3 0 9 0;
-#X connect 4 0 8 0;
-#X connect 5 0 10 0;
-#X connect 6 0 5 1;
-#X connect 7 0 6 1;
-#X connect 7 0 5 0;
-#X connect 7 1 6 0;
-#X connect 8 0 2 0;
-#X connect 9 0 7 0;
-#X connect 10 0 22 0;
-#X connect 11 0 3 0;
-#X connect 11 0 14 0;
-#X connect 11 0 18 0;
-#X connect 11 1 4 0;
-#X connect 11 1 19 0;
-#X connect 11 2 20 0;
-#X connect 12 0 23 0;
-#X connect 13 0 25 0;
-#X connect 14 0 16 0;
-#X connect 15 0 24 0;
-#X connect 16 0 15 0;
-#X connect 17 0 11 0;
-#X connect 18 0 26 0;
-#X connect 19 0 27 0;
-#X connect 20 0 28 0;
-#X connect 21 0 17 0;
-#X connect 21 0 13 0;
-#X connect 26 0 12 0;
-#X connect 27 0 12 1;
-#X connect 28 0 12 2;
-#X restore 114 143 pd bng;
-#N canvas 10 40 620 460 tgl 0;
-#X obj 114 260 - 0;
-#X obj 148 258 f;
-#X obj 147 222 t f b;
-#X obj 79 122 random 56789;
-#X obj 150 165 random 9876;
-#X obj 47 236 - 0;
-#X obj 81 234 f;
-#X obj 80 198 t f b;
-#X obj 150 192 % 50;
-#X obj 79 145 % 50;
-#X obj 64 289 pack 0 0;
-#X obj 85 53 t b b b;
-#X obj 445 122 random 555666;
-#X obj 445 168 + 8;
-#X obj 445 144 % 120;
-#X obj 85 31 metro 100;
-#X obj 264 28 metro 1000;
-#X obj 85 10 inlet;
-#X msg 64 312 \; nerv_tgl delta \$1 \$2;
-#X msg 226 322 \; nerv_tgl color \$1 \$2 \$3;
-#X msg 445 192 \; nerv_tgl size \$1;
-#X msg 264 51 \; nerv_tgl bang;
-#X obj 226 298 pack 0 0 0;
-#X obj 226 191 random 1.67772e+07;
-#X obj 258 213 random 1.67772e+07;
-#X obj 291 245 random 1.67772e+07;
-#X obj 226 270 * -1;
-#X obj 258 246 * -1;
-#X obj 291 272 * -1;
-#X connect 0 0 10 1;
-#X connect 1 0 0 1;
-#X connect 2 0 1 1;
-#X connect 2 0 0 0;
-#X connect 2 1 1 0;
-#X connect 3 0 9 0;
-#X connect 4 0 8 0;
-#X connect 5 0 10 0;
-#X connect 6 0 5 1;
-#X connect 7 0 6 1;
-#X connect 7 0 5 0;
-#X connect 7 1 6 0;
-#X connect 8 0 2 0;
-#X connect 9 0 7 0;
-#X connect 10 0 18 0;
-#X connect 11 0 3 0;
-#X connect 11 0 12 0;
-#X connect 11 0 23 0;
-#X connect 11 1 4 0;
-#X connect 11 1 24 0;
-#X connect 11 2 25 0;
-#X connect 12 0 14 0;
-#X connect 13 0 20 0;
-#X connect 14 0 13 0;
-#X connect 15 0 11 0;
-#X connect 16 0 21 0;
-#X connect 17 0 15 0;
-#X connect 17 0 16 0;
-#X connect 22 0 19 0;
-#X connect 23 0 26 0;
-#X connect 24 0 27 0;
-#X connect 25 0 28 0;
-#X connect 26 0 22 0;
-#X connect 27 0 22 1;
-#X connect 28 0 22 2;
-#X restore 114 198 pd tgl;
-#N canvas 10 40 620 460 hsl 0;
-#X obj 114 260 - 0;
-#X obj 148 258 f;
-#X obj 147 222 t f b;
-#X obj 79 122 random 56789;
-#X obj 150 165 random 9876;
-#X obj 47 236 - 0;
-#X obj 81 234 f;
-#X obj 80 198 t f b;
-#X obj 150 192 % 50;
-#X obj 79 145 % 50;
-#X obj 64 289 pack 0 0;
-#X obj 85 53 t b b b;
-#X obj 445 122 random 555666;
-#X obj 560 188 + 8;
-#X obj 560 128 random 773322;
-#X obj 445 208 pack 0 0;
-#X obj 84 32 metro 100;
-#X obj 561 155 % 30;
-#X obj 445 183 + 20;
-#X obj 446 149 % 110;
-#X obj 254 305 metro 1000;
-#X obj 254 327 random 846352;
-#X obj 254 350 % 130;
-#X obj 84 11 inlet;
-#X msg 64 321 \; nerv_hsl delta \$1 \$2;
-#X msg 254 373 \; nerv_hsl set \$1;
-#X msg 445 231 \; nerv_hsl size \$1 \$2;
-#X obj 245 202 pack 0 0 0;
-#X obj 245 95 random 1.67772e+07;
-#X obj 277 117 random 1.67772e+07;
-#X obj 310 149 random 1.67772e+07;
-#X obj 245 174 * -1;
-#X obj 277 150 * -1;
-#X obj 310 176 * -1;
-#X msg 245 229 \; nerv_hsl color \$1 \$2 \$3;
-#X connect 0 0 10 1;
-#X connect 1 0 0 1;
-#X connect 2 0 1 1;
-#X connect 2 0 0 0;
-#X connect 2 1 1 0;
-#X connect 3 0 9 0;
-#X connect 4 0 8 0;
-#X connect 5 0 10 0;
-#X connect 6 0 5 1;
-#X connect 7 0 6 1;
-#X connect 7 0 5 0;
-#X connect 7 1 6 0;
-#X connect 8 0 2 0;
-#X connect 9 0 7 0;
-#X connect 10 0 24 0;
-#X connect 11 0 3 0;
-#X connect 11 0 12 0;
-#X connect 11 0 28 0;
-#X connect 11 1 4 0;
-#X connect 11 1 14 0;
-#X connect 11 1 29 0;
-#X connect 11 2 30 0;
-#X connect 12 0 19 0;
-#X connect 13 0 15 1;
-#X connect 14 0 17 0;
-#X connect 15 0 26 0;
-#X connect 16 0 11 0;
-#X connect 17 0 13 0;
-#X connect 18 0 15 0;
-#X connect 18 0 22 1;
-#X connect 19 0 18 0;
-#X connect 20 0 21 0;
-#X connect 21 0 22 0;
-#X connect 22 0 25 0;
-#X connect 23 0 16 0;
-#X connect 23 0 20 0;
-#X connect 27 0 34 0;
-#X connect 28 0 31 0;
-#X connect 29 0 32 0;
-#X connect 30 0 33 0;
-#X connect 31 0 27 0;
-#X connect 32 0 27 1;
-#X connect 33 0 27 2;
-#X restore 112 263 pd hsl;
-#N canvas 10 40 620 460 vsl 0;
-#X obj 114 260 - 0;
-#X obj 148 258 f;
-#X obj 147 222 t f b;
-#X obj 79 122 random 56789;
-#X obj 150 165 random 9876;
-#X obj 47 236 - 0;
-#X obj 81 234 f;
-#X obj 80 198 t f b;
-#X obj 150 192 % 50;
-#X obj 79 145 % 50;
-#X obj 64 289 pack 0 0;
-#X obj 85 53 t b b b;
-#X obj 445 122 random 555666;
-#X obj 560 128 random 773322;
-#X obj 445 208 pack 0 0;
-#X obj 84 32 metro 100;
-#X obj 241 299 metro 1000;
-#X obj 240 325 random 846352;
-#X obj 241 352 % 130;
-#X obj 561 155 % 110;
-#X obj 560 188 + 20;
-#X obj 446 149 % 30;
-#X obj 445 183 + 3;
-#X obj 84 11 inlet;
-#X msg 239 227 \; nerv_vsl color \$1 \$2 \$3;
-#X msg 445 231 \; nerv_vsl size \$1 \$2;
-#X msg 64 310 \; nerv_vsl delta \$1 \$2;
-#X msg 241 376 \; nerv_vsl set \$1;
-#X obj 239 203 pack 0 0 0;
-#X obj 239 96 random 1.67772e+07;
-#X obj 271 118 random 1.67772e+07;
-#X obj 304 150 random 1.67772e+07;
-#X obj 239 175 * -1;
-#X obj 271 151 * -1;
-#X obj 304 177 * -1;
-#X connect 0 0 10 1;
-#X connect 1 0 0 1;
-#X connect 2 0 1 1;
-#X connect 2 0 0 0;
-#X connect 2 1 1 0;
-#X connect 3 0 9 0;
-#X connect 4 0 8 0;
-#X connect 5 0 10 0;
-#X connect 6 0 5 1;
-#X connect 7 0 6 1;
-#X connect 7 0 5 0;
-#X connect 7 1 6 0;
-#X connect 8 0 2 0;
-#X connect 9 0 7 0;
-#X connect 10 0 26 0;
-#X connect 11 0 3 0;
-#X connect 11 0 12 0;
-#X connect 11 0 29 0;
-#X connect 11 1 4 0;
-#X connect 11 1 13 0;
-#X connect 11 1 30 0;
-#X connect 11 2 31 0;
-#X connect 12 0 21 0;
-#X connect 13 0 19 0;
-#X connect 14 0 25 0;
-#X connect 15 0 11 0;
-#X connect 16 0 17 0;
-#X connect 17 0 18 0;
-#X connect 18 0 27 0;
-#X connect 19 0 20 0;
-#X connect 20 0 14 1;
-#X connect 20 0 18 1;
-#X connect 21 0 22 0;
-#X connect 22 0 14 0;
-#X connect 23 0 15 0;
-#X connect 23 0 16 0;
-#X connect 28 0 24 0;
-#X connect 29 0 32 0;
-#X connect 30 0 33 0;
-#X connect 31 0 34 0;
-#X connect 32 0 28 0;
-#X connect 33 0 28 1;
-#X connect 34 0 28 2;
-#X restore 113 327 pd vsl;
-#X connect 0 0 1 0;
-#X connect 1 0 4 0;
-#X connect 1 1 6 1;
-#X connect 1 1 7 1;
-#X connect 1 1 8 1;
-#X connect 1 1 9 1;
-#X connect 2 0 3 0;
-#X connect 2 0 7 0;
-#X connect 3 0 5 0;
-#X connect 3 0 8 0;
-#X connect 4 0 2 0;
-#X connect 4 0 6 0;
-#X connect 5 0 9 0;
-#X connect 6 0 10 0;
-#X connect 7 0 11 0;
-#X connect 8 0 12 0;
-#X connect 9 0 13 0;
-#X restore 10 85 pd control;
-#X connect 0 0 5 0;
-#X restore 295 424 pd nervous;
-#X floatatom 239 84 4 0 0 0 - - -;
-#N canvas 10 40 620 460 properties 0;
-#X obj 2 1 cnv 8 870 590 empty empty about_gui_properties 290 20 2
-18 -225280 -1109 0;
-#X text 12 62 "selectable dimensions(pix): size:" = square-size of
-the;
-#X text 10 35 "dimensions(pix): size:" = square-size of the gui-objects
-;
-#X text 10 48 "dimensions(pix)(pix): width: height:" = width & height
-;
-#X text 11 177 "visible_rectangle(pix)(pix): width: height:" = width
-&;
-#X text 11 104 "flash-time(ms)(ms): intrrpt:" = flash-interrupt-time
-;
-#X text 411 62 selectable top-left corner of my_canvas in pixels.;
-#X text 415 35 in pixels.;
-#X text 11 76 "flash-time(ms)(ms): hold:" = flash-hold-time in msec
-=;
-#X text 405 76 duration of activity \, if a bang-object was activated
-;
-#X text 400 48 of the rectangular gui-object in pixels.;
-#X text 402 177 height of a visible \, deactivated rectangle in pixels.
-;
-#X text 14 224 "new&old" or "new-only" = the radiobutton-object changes
-its;
-#X text 441 224 state in 2 ways:;
-#X text 198 237 "new&old"-mode: output sends previous state off \,
-current;
-#X text 596 237 state on \;;
-#X text 197 250 "new-only"-mode: output sends only current state on.
-;
-#X text 14 280 "steady on click" or "jump on click" = the 2 slider-objects
-;
-#X text 481 322 immediately to new mouse-position \,;
-#X text 12 413 "label: font: fontsize:" = font-properties of label.
-;
-#X text 15 429 "colors:" = a click on radiobuttons "background:" \,
-;
-#X text 370 429 "front-color:" or "label-color:" activates the color-fields
-;
-#X text 174 193 if "init"-mode is selected \, the object displays and
-puts;
-#X text 15 266 "number:" = number of buttons of a radiobutton.;
-#X text 205 89 by any message-event or by a mouse-click.;
-#X text 388 104 in msec = duration of inactivity \, if an already;
-#X text 205 117 activated bang is activated once more.;
-#X text 11 132 "output-range: left: right:" = hslider-bounds;
-#X text 332 132 for input- as well as output-values.;
-#X text 332 146 for input- as well as output-values.;
-#X text 11 146 "output-range: bottom: top:" = vslider-bounds;
-#X text 12 193 "init" or "no init" =;
-#X text 571 193 out its previously saved value.;
-#X text 174 208 if "no init"-mode is selected \, nothing will happen.
-;
-#X text 433 280 react to mouse-click in 2 ways:;
-#X text 201 294 "steady on click"-mode: slider-knob stays in position
-\,;
-#X text 225 307 mouse and knob will move parallel \;;
-#X text 200 322 "jump on click"-mode: slider-knob jumps;
-#X text 224 338 positions of mouse and knob will be identical \;;
-#X text 402 353 receive-object with the same send-symbol-name.;
-#X text 11 368 "receive-symbol:" = a send-object with the same;
-#X text 11 353 "send-symbol:" = an output-message can be received by
-a;
-#X text 347 368 symbol-name can send an input-message to the gui-object.
-;
-#X text 13 383 "label: name:" = visible name of a gui-object \;;
-#X text 343 383 it will be moved together with the gui-object.;
-#X text 12 397 "label: x_off: y_off:" = coordinates of the label in
-;
-#X text 382 397 relation to top-left corner of gui-object.;
-#X text 207 444 on the right side which display the current color of
-the;
-#X text 605 444 item \;;
-#X text 11 161 "non-zero-value: value:" = toggle has 2;
-#X text 292 161 value-states: zero and this value.;
-#X text 208 460 to select a different color \, click on one of the
-30 small;
-#X text 614 459 preset-color-buttons \;;
-#X text 208 475 each color (background \, front \, label) can be tuned
-by its;
-#X text 235 490 RGB-values (0 .. 252 \, step 4) and a click on the
-set-button.;
-#X restore 287 361 pd properties;
-#N canvas 10 40 620 460 move 0;
-#X obj 0 0 cnv 8 460 120 empty empty how_to_move_gui_objects 100 18
-2 20 -225271 -42246 0;
-#X text 11 43 Select a gui-object \, then navigate the object by using
-the 4 direction-keys: UP \, DOWN \, LEFT or RIGHT.;
-#X text 12 70 If you press the SHIFT-Key too \, the object will move
-10 times faster.;
-#X restore 308 331 pd move;
-#N canvas 10 40 620 460 dollar 0;
-#X obj 0 0 cnv 8 560 160 empty empty the_dollar_thing 100 18 2 20 -261681
--123526 0;
-#X text 10 39 if you want to send to \, or to receive from gui-objects
-;
-#X text 394 39 in abstractions \,;
-#X text 36 52 you have to write into the property-entry:;
-#X text 44 67 #1-label (instead of \$1-label).;
-#X text 25 103 type #0-uniquelabel (instead of \$0-uniquelabel).;
-#X text 9 88 if you want a unique send-receive-symbolname:;
-#X restore 299 391 pd dollar;
-#X obj 283 448 cnv 15 100 30 empty empty empty 20 12 2 20 -228992 -66577
-0;
-#N canvas 10 40 620 460 messages 0;
-#X obj 1 1 cnv 8 870 640 empty empty about_gui_messages 200 20 2 18
--228992 -355 0;
-#X text 366 99 in pixels.;
-#X text 9 84 "size 15 128" = change width & height;
-#X text 9 159 "flashtime 50 600" = change flash-interrupt- and flash-hold
-;
-#X text 424 160 -time of bng-object.;
-#X text 9 174 "pos 150 170" = change the x-y-position of the top-left
-;
-#X text 400 173 corner of a gui-object in pixels \;;
-#X text 139 188 "pos 0 0" is the top-left corner of your window \;
-;
-#X text 143 204 the positive directions of x- and y-axes are right
-and down.;
-#X text 12 415 "receive togui" = change receive-name of object.;
-#X text 12 431 "label its_me" = change label-text of object.;
-#X text 12 446 "label_pos 20 8" = change offset-coordinates of label-text.
-;
-#X text 12 461 "label_font 0 10" = change font and fontsize of label-text.
-;
-#X text 12 340 "steady 1" change slider-knob-behaviour on mouse-click.
-;
-#X text 13 522 "lin" = change scale-mode of slider to linear.;
-#X text 14 537 "log" = change scale-mode of slider to logarithmical.
-;
-#X text 333 355 to output only the new state.;
-#X text 273 84 of sliders and vu in pixels.;
-#X text 12 477 "init 1" = change initial loadbang-mode of gui-objects
-;
-#X text 12 400 "send fromgui" = change send-name of gui-objects \,
-;
-#X text 12 325 "number 10" = change number of buttons of radio-button.
-;
-#X text 9 128 "range 0.1 10.0" = change slider-boundaries for;
-#X text 344 128 input- as well as output-values.;
-#X text 13 492 "set 64" = change only the inner state and display of
-gui-;
-#X text 11 33 all gui-objects (bng \, hsl \, vsl \, tgl \, rdb \, cnv
-and vu);
-#X text 9 113 "vis_size 800 600" = change width & height;
-#X text 309 113 of visual rectangle of my_canvas in pixels.;
-#X text 359 400 except vu and my_canvas.;
-#X text 395 477 except vu and cnv.;
-#X text 421 492 objects \, except bng and cnv \;;
-#X text 85 47 understand input-messages which change their properties.
-;
-#X text 11 222 "delta 15 17" = move the gui-object in relation to its
-;
-#X text 397 222 current position (in pixels).;
-#X text 333 371 to first release the previous button \,;
-#X text 144 385 then output the state of the new button.;
-#X text 12 371 "double_change" change radio-button-behaviour;
-#X text 12 355 "single_change" change radio-button-behaviour;
-#X text 147 507 no output will result.;
-#X text 9 99 "size 15" = change square-size of rdb \, bng and tgl;
-#X text 9 143 "nonzero 127.0" = change the nonzero-value of toggle.
-;
-#X text 15 552 "get_pos" = if my_canvas has a receive-name and a send-name
-;
-#X text 434 552 and you send the;
-#X text 272 237 front- and label-color of object with one of 30 presets.
-;
-#X text 277 252 label-color of vu and my_canvas with one of 30 presets.
-;
-#X text 504 282 (0 .. 255);
-#X text 558 568 coordinates.;
-#X text 149 568 message "get_pos" to it \, you receive the current
-x- and y-;
-#X text 85 59 except cnv has no inlet \, so you have to send messages
-;
-#X text 85 71 to its receive-label (edit properties).;
-#X text 11 237 "color 0 22 22" = change background- \,;
-#X text 11 252 "color 0 22" = change background- and;
-#X text 13 268 "color -1.67772e+07 (-1) -1" = change background- \,
-;
-#X text 364 267 (front-) and label-color of object with RGB-values.
-;
-#X text 149 283 the RGB-value will be calculated: -65536*RED-value
-;
-#X text 592 309 - 1;
-#X text 422 309 - BLUE-value (0 .. 255);
-#X text 394 296 - 256*GREEN-value (0 .. 255);
-#X restore 294 453 pd messages;
-#X obj 225 259 cnv 1 350 1 empty empty empty 20 12 2 20 -258699 -66577
-0;
-#X obj 4 308 cnv 1 268 1 empty empty empty 20 12 2 20 -258699 -66577
-0;
-#X obj 4 186 cnv 1 220 1 empty empty empty 20 12 2 20 -258699 -66577
-0;
-#X obj 225 151 cnv 1 350 1 empty empty empty 20 12 2 20 -258699 -66577
-0;
-#X obj 271 261 cnv 1 1 48 empty empty empty 20 12 2 20 -258699 -66577
-0;
-#X obj 232 308 cnv 1 1 200 empty empty empty 20 12 2 20 -258699 -66577
-0;
-#X obj 339 3 cnv 1 1 149 empty empty empty 20 12 2 20 -258699 -66577
-0;
-#X obj 398 260 cnv 1 1 310 empty empty empty 20 12 2 20 -258699 -66577
-0;
-#X obj 225 3 cnv 1 1 255 empty empty empty 20 12 2 20 -258699 -66577
-0;
-#X floatatom 276 84 4 0 0 0 - - -;
-#X obj 239 43 tgl 15 0 empty dsp_tgl empty 20 8 0 10 -370 -262144 -1
-0 1;
-#N canvas 10 40 620 460 dsp 0;
-#X msg 31 88 \; pd dsp \$1;
-#X obj 20 199 cputime;
-#X obj 20 178 t b b;
-#X text 15 11 dsp;
-#X text 48 439 (c) musil@iem.kug.ac.at;
-#X text 90 452 IEM KUG;
-#X text 59 65 1/0 = ON/OFF;
-#X text 97 313 CPU-load;
-#X obj 62 126 loadbang;
-#X obj 20 126 sel 1;
-#X text 65 464 graz \, austria 2001;
-#X text 64 12 turn dsp-kernel on & off \,;
-#X obj 20 240 t f f;
-#X text 65 408 average;
-#X text 177 405 peak;
-#X obj 211 154 f;
-#X obj 146 179 > -1;
-#X obj 169 155 f -1;
-#X obj 179 91 t f b f;
-#X obj 146 204 sel 1;
-#X obj 192 132 f -1;
-#X obj 20 154 metro 500;
-#X obj 20 220 * 0.2;
-#X text 74 37 -dsp-load in %;
-#X text 65 24 measure average- and peak-;
-#X obj 20 315 * 100;
-#X obj 20 360 int;
-#X obj 20 338 + 0.499;
-#X obj 20 383 * 0.01;
-#X obj 246 207 r pd;
-#X obj 246 231 route dsp;
-#X text 245 318 to toggle input;
-#X msg 246 283 \; dsp_tgl set \$1;
-#X obj 247 341 r dsp_tgl;
-#X obj 246 257 route float;
-#X obj 146 227 del 3990;
-#N canvas 10 40 620 460 once 0;
-#X text 7 204 (c) musil@iem.kug.ac.at;
-#X text 49 214 IEM KUG;
-#X text 24 223 graz \, austria 2001;
-#X text 8 6 once;
-#X obj 19 150 bang;
-#X obj 56 65 f 0;
-#X text 59 7 only the first message passes through;
-#X obj 19 127 t b a;
-#X obj 19 100 spigot;
-#X obj 119 63 f 1;
-#X obj 119 41 loadbang;
-#X obj 19 40 inlet;
-#X obj 49 183 outlet;
-#X connect 4 0 5 0;
-#X connect 5 0 8 1;
-#X connect 7 0 4 0;
-#X connect 7 1 12 0;
-#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 restore 111 264 pd once;
-#N canvas 10 40 620 460 1p1z 0;
-#X text 7 315 (c) musil@iem.kug.ac.at;
-#X text 52 325 IEM KUG;
-#X obj 22 231 +;
-#X text 8 6 1p1z;
-#X text 24 334 graz \, austria 2001;
-#X text 104 22 y[n] = a0*x[n] + a1*x[n-1] + b1*y[n-1];
-#X text 169 53 a0;
-#X text 25 34 x[n];
-#X text 24 280 y[n];
-#X text 209 53 a1;
-#X text 249 53 b1;
-#X obj 284 52 loadbang;
-#X text 64 102 x[n-1];
-#X obj 40 205 +;
-#X obj 22 133 *;
-#X obj 40 160 *;
-#X obj 59 182 *;
-#X text 82 143 y[n-1];
-#X obj 284 72 t b b b;
-#X obj 40 98 f;
-#X obj 59 138 f;
-#X obj 22 71 t f b b;
-#X text 350 63 x[n-1]init;
-#X text 429 102 y[n-1]init;
-#X text 147 202 1.arg: <float> a0;
-#X text 147 213 2.arg: <float> a1;
-#X text 147 224 3.arg: <float> b1;
-#X text 63 5 <float> control-IIR-filter 1.order;
-#X obj 162 115 f 0.1;
-#X obj 202 142 f 0;
-#X obj 242 164 f 0.9;
-#X obj 22 49 inlet;
-#X obj 162 71 inlet;
-#X obj 202 71 inlet;
-#X obj 242 71 inlet;
-#X obj 356 80 inlet;
-#X obj 431 120 inlet;
-#X obj 22 264 outlet;
-#X connect 2 0 20 1;
-#X connect 2 0 37 0;
-#X connect 11 0 18 0;
-#X connect 13 0 2 1;
-#X connect 14 0 2 0;
-#X connect 15 0 13 0;
-#X connect 16 0 13 1;
-#X connect 18 0 28 0;
-#X connect 18 1 29 0;
-#X connect 18 2 30 0;
-#X connect 19 0 15 0;
-#X connect 20 0 16 0;
-#X connect 21 0 14 0;
-#X connect 21 0 19 1;
-#X connect 21 1 19 0;
-#X connect 21 2 20 0;
-#X connect 28 0 14 1;
-#X connect 29 0 15 1;
-#X connect 30 0 16 1;
-#X connect 31 0 21 0;
-#X connect 32 0 28 0;
-#X connect 33 0 29 0;
-#X connect 34 0 30 0;
-#X connect 35 0 19 1;
-#X connect 36 0 20 1;
-#X restore 20 289 pd 1p1z 0.1 0 0.9;
-#X obj 20 65 inlet;
-#X obj 20 406 outlet;
-#X obj 211 405 outlet;
-#X connect 1 0 22 0;
-#X connect 2 0 1 0;
-#X connect 2 1 1 1;
-#X connect 8 0 21 0;
-#X connect 9 0 21 0;
-#X connect 12 0 37 0;
-#X connect 15 0 17 1;
-#X connect 15 0 40 0;
-#X connect 16 0 19 0;
-#X connect 17 0 16 1;
-#X connect 18 0 16 0;
-#X connect 18 1 17 0;
-#X connect 18 2 15 1;
-#X connect 19 0 15 0;
-#X connect 19 0 35 0;
-#X connect 20 0 17 1;
-#X connect 21 0 2 0;
-#X connect 22 0 12 0;
-#X connect 22 0 18 0;
-#X connect 25 0 27 0;
-#X connect 26 0 28 0;
-#X connect 27 0 26 0;
-#X connect 28 0 39 0;
-#X connect 29 0 30 0;
-#X connect 30 0 34 0;
-#X connect 34 0 32 0;
-#X connect 35 0 20 0;
-#X connect 37 0 25 0;
-#X connect 38 0 0 0;
-#X connect 38 0 9 0;
-#X restore 239 63 pd dsp;
-#X text 238 99 mean;
-#X text 279 100 peak;
-#X text 289 63 % cpu;
-#X text 283 305 my_canvas = cnv;
-#X text 312 172 radiobutton = rdb;
-#X text 271 350 R;
-#X text 270 370 E;
-#X text 270 389 A;
-#X text 270 409 D;
-#X text 270 428 M;
-#X text 269 447 E;
-#X connect 17 0 26 0;
-#X connect 21 0 18 0;
-#X connect 21 0 16 0;
-#X connect 21 1 34 0;
-#X connect 21 2 19 0;
-#X connect 22 0 21 0;
-#X connect 27 0 29 0;
-#X connect 54 0 55 0;
-#X connect 55 0 38 0;
-#X connect 55 1 53 0;
diff --git a/doc/tutorials/intro/30.guis.pd b/doc/tutorials/intro/32.guis.pd
index fc2f5aa9..2949b963 100644
--- a/doc/tutorials/intro/30.guis.pd
+++ b/doc/tutorials/intro/32.guis.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 624 464 10;
+#N canvas 10 40 620 460 10;
#X obj -4 -4 cnv 15 620 700 empty empty gui-INTRO 237 20 2 14 -261819
-143491 0;
#X text 101 4 bng;
diff --git a/doc/tutorials/intro/31.nervous_guis.pd b/doc/tutorials/intro/33.nervous_guis.pd
index 84f8c66f..4f9d5ac8 100644
--- a/doc/tutorials/intro/31.nervous_guis.pd
+++ b/doc/tutorials/intro/33.nervous_guis.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 632 472 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty nervous_guis 20 12 0 24 -228992
-66577 0;
#X obj 23 146 tgl 20 1 empty start_nervously1 empty 8 -8 0 10 -24198
@@ -11,9 +11,9 @@
-1 0 1;
#X obj 482 282 vsl 15 127 0 127 0 0 empty nerv_vsl v-slider 8 -8 0
10 -262144 -1 -1 0 1;
-#N canvas 13 42 258 427 control 0;
+#N canvas 10 40 620 460 control 0;
#X obj 19 21 inlet;
-#N canvas 10 40 632 472 bng 0;
+#N canvas 10 40 620 460 bng 0;
#X obj 114 260 - 0;
#X obj 148 258 f;
#X obj 147 222 t f b;
diff --git a/doc/tutorials/intro/33.selecting_events.pd b/doc/tutorials/intro/33.selecting_events.pd
deleted file mode 100644
index fc60c94c..00000000
--- a/doc/tutorials/intro/33.selecting_events.pd
+++ /dev/null
@@ -1,54 +0,0 @@
-#N canvas 10 40 636 461 12;
-#X obj 10 10 cnv 15 400 40 empty empty selecting_events 20 12 0 24
--228992 -66577 0;
-#X floatatom 328 112 5 0 0 0 - - -;
-#X obj 328 170 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 358 171 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 328 145 select 2 3 4 5 6 10;
-#X obj 389 171 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 420 171 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 451 171 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 482 171 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 513 171 5 0 0 0 - - -;
-#X obj 185 342 print NO_match;
-#X obj 58 341 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 89 342 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 121 342 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 153 342 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X msg 61 125 symbol dog;
-#X msg 66 144 symbol cat;
-#X msg 74 162 symbol foo;
-#X msg 81 182 symbol earth;
-#X msg 90 201 symbol 400;
-#X obj 58 315 select dog cat foo 400;
-#X msg 86 251 400;
-#X text 97 297 FIRST CREATION ARGUMENT IS A SYMBOL;
-#X connect 1 0 4 0;
-#X connect 4 0 2 0;
-#X connect 4 1 3 0;
-#X connect 4 2 5 0;
-#X connect 4 3 6 0;
-#X connect 4 4 7 0;
-#X connect 4 5 8 0;
-#X connect 4 6 9 0;
-#X connect 15 0 20 0;
-#X connect 16 0 20 0;
-#X connect 17 0 20 0;
-#X connect 18 0 20 0;
-#X connect 19 0 20 0;
-#X connect 20 0 11 0;
-#X connect 20 1 12 0;
-#X connect 20 2 13 0;
-#X connect 20 3 14 0;
-#X connect 20 4 10 0;
-#X connect 21 0 20 0;
diff --git a/doc/tutorials/intro/32.EXERCISE-make_a_gui_object_dynamic.pd b/doc/tutorials/intro/34.EXERCISE-make_a_gui_object_dynamic.pd
index 4cb45054..1b829fe8 100644
--- a/doc/tutorials/intro/32.EXERCISE-make_a_gui_object_dynamic.pd
+++ b/doc/tutorials/intro/34.EXERCISE-make_a_gui_object_dynamic.pd
@@ -1,4 +1,4 @@
-#N canvas 333 243 690 486 12;
+#N canvas 10 40 620 460 12;
#X obj 11 10 cnv 15 600 40 empty empty EXERCISE-make_a_gui_object_dynamic
20 12 0 24 -262131 -66577 0;
#X text 26 60 Take any gui object \, and make it change and/or move
diff --git a/doc/tutorials/intro/34.comparing_numbers.pd b/doc/tutorials/intro/34.comparing_numbers.pd
deleted file mode 100644
index 3f6ffb7d..00000000
--- a/doc/tutorials/intro/34.comparing_numbers.pd
+++ /dev/null
@@ -1,55 +0,0 @@
-#N canvas 411 149 628 453 12;
-#X obj 10 10 cnv 15 400 40 empty empty comparing_numbers 20 12 0 24
--228992 -66577 0;
-#X floatatom 24 160 5 0 0 0 - - -;
-#X msg 24 113 7;
-#X floatatom 97 160 5 0 0 0 - - -;
-#X msg 97 113 4;
-#X obj 97 137 == 4;
-#X floatatom 165 160 5 0 0 0 - - -;
-#X msg 165 113 20;
-#X floatatom 234 160 5 0 0 0 - - -;
-#X msg 234 113 20;
-#X obj 234 137 != 10;
-#X obj 24 137 > 1;
-#X obj 165 137 >= 8;
-#X floatatom 107 212 5 0 0 0 - - -;
-#X obj 15 245 == 5;
-#X obj 82 245 != 5;
-#X obj 147 245 > 5;
-#X obj 209 245 < 5;
-#X floatatom 15 272 5 0 0 0 - - -;
-#X floatatom 82 272 5 0 0 0 - - -;
-#X floatatom 147 272 5 0 0 0 - - -;
-#X floatatom 209 273 5 0 0 0 - - -;
-#X msg 496 115 3;
-#X floatatom 441 116 5 0 0 0 - - -;
-#X floatatom 496 164 5 0 0 0 - - -;
-#X obj 496 140 > 1;
-#X obj 441 142 < 5;
-#X floatatom 441 165 5 0 0 0 - - -;
-#X obj 463 191 &&;
-#X floatatom 463 213 5 0 0 0 - - -;
-#X connect 2 0 11 0;
-#X connect 4 0 5 0;
-#X connect 5 0 3 0;
-#X connect 7 0 12 0;
-#X connect 9 0 10 0;
-#X connect 10 0 8 0;
-#X connect 11 0 1 0;
-#X connect 12 0 6 0;
-#X connect 13 0 14 0;
-#X connect 13 0 15 0;
-#X connect 13 0 16 0;
-#X connect 13 0 17 0;
-#X connect 14 0 18 0;
-#X connect 15 0 19 0;
-#X connect 16 0 20 0;
-#X connect 17 0 21 0;
-#X connect 22 0 25 0;
-#X connect 23 0 26 0;
-#X connect 24 0 28 1;
-#X connect 25 0 24 0;
-#X connect 26 0 27 0;
-#X connect 27 0 28 0;
-#X connect 28 0 29 0;
diff --git a/doc/tutorials/intro/35.selecting_events.pd b/doc/tutorials/intro/35.selecting_events.pd
new file mode 100644
index 00000000..c025fbe6
--- /dev/null
+++ b/doc/tutorials/intro/35.selecting_events.pd
@@ -0,0 +1,54 @@
+#N canvas 10 40 620 460 12;
+#X obj 10 10 cnv 15 400 40 empty empty selecting_events 20 12 0 24
+-228992 -66577 0;
+#X floatatom 370 178 5 0 0 0 - - -;
+#X obj 370 236 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 391 236 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 370 211 select 2 3 4 5 6 10;
+#X obj 413 236 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 435 236 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 456 236 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 478 236 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X floatatom 500 235 5 0 0 0 - - -;
+#X obj 58 341 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 95 342 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 133 342 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 171 342 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X msg 61 105 symbol dog;
+#X msg 66 134 symbol cat;
+#X msg 74 162 symbol foo;
+#X msg 81 192 symbol earth;
+#X msg 90 221 symbol 400;
+#X obj 58 315 select dog cat foo 400;
+#X msg 86 251 400;
+#X text 97 297 FIRST CREATION ARGUMENT IS A SYMBOL;
+#X obj 209 341 pddp/print;
+#X connect 1 0 4 0;
+#X connect 4 0 2 0;
+#X connect 4 1 3 0;
+#X connect 4 2 5 0;
+#X connect 4 3 6 0;
+#X connect 4 4 7 0;
+#X connect 4 5 8 0;
+#X connect 4 6 9 0;
+#X connect 14 0 19 0;
+#X connect 15 0 19 0;
+#X connect 16 0 19 0;
+#X connect 17 0 19 0;
+#X connect 18 0 19 0;
+#X connect 19 0 10 0;
+#X connect 19 1 11 0;
+#X connect 19 2 12 0;
+#X connect 19 3 13 0;
+#X connect 19 4 22 0;
+#X connect 20 0 19 0;
diff --git a/doc/tutorials/intro/comparing_numbers.pd b/doc/tutorials/intro/36.comparing_numbers.pd
index 27500729..791b923b 100644
--- a/doc/tutorials/intro/comparing_numbers.pd
+++ b/doc/tutorials/intro/36.comparing_numbers.pd
@@ -1,4 +1,4 @@
-#N canvas 411 149 628 453 12;
+#N canvas 10 40 620 460 12;
#X obj 14 354 cnv 15 195 80 empty empty empty 40 70 0 14 -262130 -66577
0;
#X obj 214 354 cnv 15 380 80 empty empty empty 160 70 0 14 -232576
diff --git a/doc/tutorials/intro/36.init_to_0.pd b/doc/tutorials/intro/36.init_to_0.pd
deleted file mode 100644
index fdacd49e..00000000
--- a/doc/tutorials/intro/36.init_to_0.pd
+++ /dev/null
@@ -1,39 +0,0 @@
-#N canvas 396 67 603 361 12;
-#X text 21 93 float values are automatically initialized to 0 in Pd.
-;
-#X obj 304 185 +;
-#X obj 188 186 *;
-#X obj 67 185 float;
-#X obj 425 185 trigger f;
-#X obj 253 216 bng 15 250 50 0 empty empty reset 0 -6 0 8 -262144 -1
--1;
-#X obj 304 259 prepend set;
-#X obj 187 259 prepend set;
-#X obj 67 259 prepend set;
-#X obj 425 259 prepend set;
-#X msg 304 147 bang;
-#X msg 188 148 bang;
-#X msg 67 148 bang;
-#X msg 425 148 bang;
-#X obj 12 13 cnv 15 400 40 empty empty init_to_zero 20 12 0 24 -228992
--66577 0;
-#X msg 67 285 0;
-#X msg 187 285 0;
-#X msg 304 285 0;
-#X msg 425 285 0;
-#X connect 1 0 6 0;
-#X connect 2 0 7 0;
-#X connect 3 0 8 0;
-#X connect 4 0 9 0;
-#X connect 5 0 6 0;
-#X connect 5 0 7 0;
-#X connect 5 0 8 0;
-#X connect 5 0 9 0;
-#X connect 6 0 17 0;
-#X connect 7 0 16 0;
-#X connect 8 0 15 0;
-#X connect 9 0 18 0;
-#X connect 10 0 1 0;
-#X connect 11 0 2 0;
-#X connect 12 0 3 0;
-#X connect 13 0 4 0;
diff --git a/doc/tutorials/intro/35.math.pd b/doc/tutorials/intro/37.math.pd
index 8ec1b4a6..6ccae57e 100644
--- a/doc/tutorials/intro/35.math.pd
+++ b/doc/tutorials/intro/37.math.pd
@@ -1,4 +1,4 @@
-#N canvas 23 29 928 571 10;
+#N canvas 10 40 620 460 10;
#X obj 637 350 +~;
#X obj 641 499 trigger;
#X text 25 8 ARITHMETIC;
@@ -26,7 +26,7 @@ i.e. a + 42 = b;
#X floatatom 34 295 0 0 0 0 - - -;
#X floatatom 34 338 0 0 0 0 - - -;
#X obj 34 317 + 42;
-#N canvas 38 134 641 245 basic_examples 0;
+#N canvas 10 40 620 460 basic_examples 0;
#X obj 44 129 +;
#X obj 113 129 -;
#X obj 179 129 *;
@@ -75,7 +75,7 @@ i.e. a + 42 = b;
#X restore 33 521 pd basic_examples;
#X text 32 422 However \, [pow] \, [max] \, and [min] objects may need
some explanation.;
-#N canvas 0 22 456 306 understanding_POW 0;
+#N canvas 10 40 620 460 understanding_POW 0;
#X text 12 25 [POW];
#X obj 17 66 pow 2;
#X floatatom 17 86 2 0 0 0 - - -;
@@ -104,7 +104,7 @@ For example: 2 to the power of 2 = 4 (i.e. 2 Squared);
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X restore 33 456 pd understanding_POW;
-#N canvas 0 22 478 345 understanding_MAX_and_MIN 0;
+#N canvas 10 40 620 460 understanding_MAX_and_MIN 0;
#X text 34 9 [MAX];
#X obj 32 51 max 10;
#X floatatom 32 29 5 0 0 0 - - -;
@@ -197,7 +197,7 @@ a number with every number or "bang" that is sent to the left inlet.
#X obj 735 473 exp;
#X obj 761 473 abs;
#X text 570 499 Other;
-#N canvas 181 122 454 304 related_objects_from_other_libraries 0;
+#N canvas 10 40 620 460 related_objects_from_other_libraries 0;
#X obj 37 25 vector+;
#X obj 37 45 vector-;
#X obj 37 65 vector*;
diff --git a/doc/tutorials/intro/38.init_to_0.pd b/doc/tutorials/intro/38.init_to_0.pd
index 01fa2360..1d1c4c80 100644
--- a/doc/tutorials/intro/38.init_to_0.pd
+++ b/doc/tutorials/intro/38.init_to_0.pd
@@ -1,4 +1,4 @@
-#N canvas 0 42 660 464 12;
+#N canvas 10 40 620 460 12;
#X obj 12 13 cnv 15 400 40 empty empty init_to_zero 10 15 0 24 -228992
-66577 0;
#X obj 293 241 +;
diff --git a/doc/tutorials/intro/37.math_expr.pd b/doc/tutorials/intro/39.math_expr.pd
index 687498b9..8b9f5c2a 100644
--- a/doc/tutorials/intro/37.math_expr.pd
+++ b/doc/tutorials/intro/39.math_expr.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 624 449 12;
+#N canvas 10 40 620 460 12;
#X obj 304 137 cnv 15 80 25 empty empty empty 20 12 0 14 -261681 -66577
0;
#X obj 192 137 cnv 15 80 25 empty empty empty 20 12 0 14 -261681 -66577
diff --git a/doc/tutorials/intro/40.number_limitations.pd b/doc/tutorials/intro/40.number_limitations.pd
new file mode 100644
index 00000000..4232c34c
--- /dev/null
+++ b/doc/tutorials/intro/40.number_limitations.pd
@@ -0,0 +1,22 @@
+#N canvas 10 40 620 460 12;
+#X obj -20 9 cnv 15 400 40 empty empty number_limitations 20 12 0 24
+-228992 -66577 0;
+#X text 23 146 NaN;
+#X text 86 147 -inf;
+#X text 154 148 inf;
+#X text -9 253 rounding errors;
+#X floatatom 2 411 12 999900 1e+20 0 - - -;
+#X text -9 373 Pd can only display 6 significant digits:;
+#X floatatom 3 331 12 0 0 0 - - -;
+#X text 113 287 999999 + 999999 = 1 \, 999 \, 998;
+#X msg 3 278 999999;
+#X obj 3 305 + 999999;
+#X obj -9 204 pddp/pddplink http://en.wikipedia.org/wiki/Real_numbers
+;
+#X text -13 61 Computers use floating point numbers to try to represent
+real numbers (a real number is any number that could be plotted on
+a line).;
+#X text 137 332 == 2 \, OOO \, OOO;
+#X text 108 409 <-- click and drag up to see;
+#X connect 9 0 10 0;
+#X connect 10 0 7 0;
diff --git a/doc/tutorials/intro/40.using_lists.pd b/doc/tutorials/intro/40.using_lists.pd
deleted file mode 100644
index 4f40ff58..00000000
--- a/doc/tutorials/intro/40.using_lists.pd
+++ /dev/null
@@ -1,17 +0,0 @@
-#N canvas 10 40 624 449 12;
-#X obj 10 10 cnv 15 400 40 empty empty using_lists 20 12 0 24 -228992
--66577 0;
-#X msg 49 113 300 240 1;
-#X floatatom 49 187 5 0 0 0 - - -;
-#X floatatom 166 187 5 0 0 0 - - -;
-#X floatatom 284 187 5 0 0 0 - - -;
-#X obj 49 148 unpack float float float;
-#X msg 52 281 1 1;
-#X obj 52 308 +;
-#X floatatom 52 338 5 0 0 0 - - -;
-#X connect 1 0 5 0;
-#X connect 5 0 2 0;
-#X connect 5 1 3 0;
-#X connect 5 2 4 0;
-#X connect 6 0 7 0;
-#X connect 7 0 8 0;
diff --git a/doc/tutorials/intro/41.floats_and_ints.pd b/doc/tutorials/intro/41.floats_and_ints.pd
new file mode 100644
index 00000000..5bb32cbe
--- /dev/null
+++ b/doc/tutorials/intro/41.floats_and_ints.pd
@@ -0,0 +1,23 @@
+#N canvas 10 40 620 460 12;
+#X obj -37 4 cnv 15 400 40 empty empty floats_and_ints 20 12 0 24 -228992
+-66577 0;
+#X text -30 60 In Pd \, there is only one kind of number \, its generally
+known as a "float" \, which is a word used in programming to mean a
+"floating point number" \, i.e. a number with a decimal point in it.
+;
+#X text -24 242 Oftentimes \, its useful to use integers. For this
+there is the [int] object.;
+#X text 36 149 4.5;
+#X text 79 205 1.234e+07;
+#X text 188 162 -0.0032;
+#X text 323 178 4.3332;
+#X obj 223 322 int;
+#X floatatom 223 358 5 0 0 1 int - -;
+#X floatatom 164 358 5 0 0 0 float - -;
+#X obj 226 286 hsl 128 15 0 20 0 0 empty empty empty -2 -6 0 8 -262144
+-1 -1 0 1;
+#X text -22 396 floats and ints are direct representations of how your
+CPU handles numbers.;
+#X connect 7 0 8 0;
+#X connect 10 0 9 0;
+#X connect 10 0 7 0;
diff --git a/doc/tutorials/intro/38.EXERCISE-help_americans.pd b/doc/tutorials/intro/42.EXERCISE-help_americans.pd
index 4b6a21ff..c122bd5d 100644
--- a/doc/tutorials/intro/38.EXERCISE-help_americans.pd
+++ b/doc/tutorials/intro/42.EXERCISE-help_americans.pd
@@ -1,4 +1,4 @@
-#N canvas 354 158 698 494 12;
+#N canvas 10 40 620 460 12;
#X obj 11 10 cnv 15 600 40 empty empty EXERCISE-help_americans 20 12
0 24 -262131 -66577 0;
#X text 19 64 Help the poor Americans to understand Celsius. The formulas
diff --git a/doc/tutorials/intro/39.building_lists.pd b/doc/tutorials/intro/43.building_lists.pd
index 0840fe7e..044cc015 100644
--- a/doc/tutorials/intro/39.building_lists.pd
+++ b/doc/tutorials/intro/43.building_lists.pd
@@ -1,4 +1,4 @@
-#N canvas 18 89 632 457 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty building_lists 20 12 0 24 -228992
-66577 0;
#X obj 117 350 pack float float float;
diff --git a/doc/tutorials/intro/44.multiple_messages.pd b/doc/tutorials/intro/44.multiple_messages.pd
deleted file mode 100644
index 2374ad54..00000000
--- a/doc/tutorials/intro/44.multiple_messages.pd
+++ /dev/null
@@ -1,18 +0,0 @@
-#N canvas 517 97 631 447 12;
-#X obj -49 6 cnv 15 400 40 empty empty multiple_messages 20 12 0 24
--228992 -66577 0;
-#X text -42 70 You can send multiple messages in one message box by
-separating them with commas:;
-#X msg 7 161 1 \, 2 \, 3;
-#X text 102 175 these each print on a new line;
-#X msg 7 263 first 1 \, second 2 \, third 3;
-#X obj 7 308 route first second third;
-#X floatatom 7 335 5 0 0 0 - - -;
-#X floatatom 85 335 5 0 0 0 - - -;
-#X floatatom 163 335 5 0 0 0 - - -;
-#X obj 7 195 print;
-#X connect 2 0 9 0;
-#X connect 4 0 5 0;
-#X connect 5 0 6 0;
-#X connect 5 1 7 0;
-#X connect 5 2 8 0;
diff --git a/doc/tutorials/intro/using_lists.pd b/doc/tutorials/intro/44.using_lists.pd
index 4f40ff58..54ff542f 100644
--- a/doc/tutorials/intro/using_lists.pd
+++ b/doc/tutorials/intro/44.using_lists.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 624 449 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty using_lists 20 12 0 24 -228992
-66577 0;
#X msg 49 113 300 240 1;
diff --git a/doc/tutorials/intro/45.send_messages_to_pd.pd b/doc/tutorials/intro/45.send_messages_to_pd.pd
deleted file mode 100644
index f0961a6e..00000000
--- a/doc/tutorials/intro/45.send_messages_to_pd.pd
+++ /dev/null
@@ -1,26 +0,0 @@
-#N canvas 476 37 655 592 12;
-#X msg 134 485 menuclose;
-#X obj 46 550 s pd-mon-nouveau-patch.pd;
-#X obj 22 216 cnv 15 5 5 empty empty 1 5 0 0 20 -262144 -258699 0;
-#X obj 23 290 cnv 15 5 5 empty empty 2 5 0 0 20 -262144 -258699 0;
-#X obj 20 342 cnv 15 5 5 empty empty 3 5 0 0 20 -262144 -258699 0;
-#X msg 60 185 \; pd filename mon-nouveau-patch.pd /tmp \; #N canvas
-\; #X pop 1 \;;
-#X text 13 149 Click these messages starting from the top:;
-#X msg 76 331 symbolatom 20 100 0 0 0 0;
-#X msg 92 379 connect 0 0 1 0;
-#X msg 60 279 msg 20 27 symbol Hello_World!;
-#X text 131 426 click on [symbol Hello_World!( in the new window;
-#X text 243 484 now close the new window;
-#X obj 20 389 cnv 15 5 5 empty empty 4 5 0 0 20 -262144 -258699 0;
-#X obj 19 440 cnv 15 5 5 empty empty 5 5 0 0 20 -262144 -258699 0;
-#X obj 18 495 cnv 15 5 5 empty empty 6 5 0 0 20 -262144 -258699 0;
-#X obj 8 10 cnv 15 400 40 empty empty send_messages_to_pd 20 12 0 24
--228992 -66577 0;
-#X text 11 75 Keeping true to the name "Pure Data" \, you can send
-messages to Pd itself. All messages are in the same format \, whether
-its in your patch \, or it's Pd's GUI talking to the Pd core.;
-#X connect 0 0 1 0;
-#X connect 7 0 1 0;
-#X connect 8 0 1 0;
-#X connect 9 0 1 0;
diff --git a/doc/tutorials/intro/41.sorting_messages_by_type.pd b/doc/tutorials/intro/45.sorting_messages_by_type.pd
index 65f633be..3ce6701b 100644
--- a/doc/tutorials/intro/41.sorting_messages_by_type.pd
+++ b/doc/tutorials/intro/45.sorting_messages_by_type.pd
@@ -1,4 +1,4 @@
-#N canvas 44 68 635 451 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty sorting_messages_by_type 20
12 0 24 -228992 -66577 0;
#X floatatom 282 359 5 0 0 0 - - -;
diff --git a/doc/tutorials/intro/42.trigger_conversion.pd b/doc/tutorials/intro/46.trigger_conversion.pd
index 2f610ff5..17a98cb1 100644
--- a/doc/tutorials/intro/42.trigger_conversion.pd
+++ b/doc/tutorials/intro/46.trigger_conversion.pd
@@ -1,4 +1,4 @@
-#N canvas 227 116 647 463 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty trigger_conversion 20 12 0 24
-228992 -66577 0;
#X obj 126 187 trigger anything float bang;
diff --git a/doc/tutorials/intro/43.grabbing_keystrokes.pd b/doc/tutorials/intro/47.grabbing_keystrokes.pd
index bf369dc5..8bf37e15 100644
--- a/doc/tutorials/intro/43.grabbing_keystrokes.pd
+++ b/doc/tutorials/intro/47.grabbing_keystrokes.pd
@@ -1,4 +1,4 @@
-#N canvas 493 88 628 453 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty grabbing_keystrokes 20 12 0
24 -228992 -66577 0;
#X obj 115 152 key;
@@ -13,7 +13,7 @@
#X text 20 231 't' key as toggle:;
#X obj 68 303 select 116;
#X obj 68 272 keyup;
-#N canvas 238 530 478 328 /SUBPATCH/ 0;
+#N canvas 10 40 620 460 /SUBPATCH/ 0;
#X obj 101 10 inlet;
#X obj 100 100 tgl 32 0 empty \$0-tgl empty 0 -6 0 8 -166441 -166441
-262144 0 1;
diff --git a/doc/tutorials/intro/13.building_messages.pd b/doc/tutorials/intro/48.building_messages.pd
index afc2896e..d7de63cc 100644
--- a/doc/tutorials/intro/13.building_messages.pd
+++ b/doc/tutorials/intro/48.building_messages.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 628 453 12;
+#N canvas 10 40 620 460 12;
#X obj 10 10 cnv 15 400 40 empty empty building_messages 20 12 0 24
-228992 -66577 0;
#X msg 86 180;
diff --git a/doc/tutorials/intro/46.pure_data_files.pd b/doc/tutorials/intro/49.pure_data_files.pd
index aa17a776..9450b982 100644
--- a/doc/tutorials/intro/46.pure_data_files.pd
+++ b/doc/tutorials/intro/49.pure_data_files.pd
@@ -1,4 +1,4 @@
-#N canvas 690 65 592 555 10;
+#N canvas 10 40 620 460 10;
#X obj 191 249 textfile;
#X obj 111 279 print all;
#X msg 191 213 rewind;
@@ -25,7 +25,7 @@ sends it to the "clone" subpatch \, making a clone:;
-66577 0;
#X msg 317 214 read 46.pure_data_files.pd;
#X obj 100 213 bang;
-#N canvas 102 66 580 554 clone 1;
+#N canvas 10 40 620 460 clone 1;
#X restore 433 456 pd clone;
#X connect 0 0 1 0;
#X connect 0 0 11 0;
diff --git a/doc/tutorials/intro/multiple_messages.pd b/doc/tutorials/intro/50.multiple_messages.pd
index 2374ad54..c20cae95 100644
--- a/doc/tutorials/intro/multiple_messages.pd
+++ b/doc/tutorials/intro/50.multiple_messages.pd
@@ -1,4 +1,4 @@
-#N canvas 517 97 631 447 12;
+#N canvas 10 40 620 460 12;
#X obj -49 6 cnv 15 400 40 empty empty multiple_messages 20 12 0 24
-228992 -66577 0;
#X text -42 70 You can send multiple messages in one message box by
diff --git a/doc/tutorials/intro/47.send_messages_to_pd.pd b/doc/tutorials/intro/51.send_messages_to_pd.pd
index a850b66a..8644209a 100644
--- a/doc/tutorials/intro/47.send_messages_to_pd.pd
+++ b/doc/tutorials/intro/51.send_messages_to_pd.pd
@@ -1,4 +1,4 @@
-#N canvas 10 40 628 468 12;
+#N canvas 10 40 620 460 12;
#X msg 93 390 menuclose;
#X obj 45 437 s pd-mon-nouveau-patch.pd;
#X obj 20 200 cnv 15 5 5 empty empty 1 5 0 0 20 -262144 -258699 0;
diff --git a/doc/tutorials/intro/building_lists.pd b/doc/tutorials/intro/building_lists.pd
deleted file mode 100644
index c0682d3b..00000000
--- a/doc/tutorials/intro/building_lists.pd
+++ /dev/null
@@ -1,31 +0,0 @@
-#N canvas 148 243 628 453 12;
-#X obj 10 10 cnv 15 400 40 empty empty building_lists 20 12 0 24 -228992
--66577 0;
-#X obj 117 350 pack float float float;
-#X msg 117 381 \$3 \$1 \$2;
-#X floatatom 117 324 5 0 0 0 - - -;
-#X floatatom 224 325 5 0 0 0 - - -;
-#X floatatom 332 326 5 0 0 0 - - -;
-#X text 24 295 You can use arguments to reorder elements:;
-#X obj 19 59 bng 20 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1
-;
-#X floatatom 234 108 5 0 0 0 - - -;
-#X floatatom 126 108 5 0 0 0 - - -;
-#X floatatom 19 108 5 0 0 0 - - -;
-#X obj 19 82 trigger bang bang bang;
-#X obj 19 132 pack float float float;
-#X obj 19 162 pddp/print_long;
-#X obj 117 411 pddp/print_long;
-#X connect 1 0 2 0;
-#X connect 2 0 14 0;
-#X connect 3 0 1 0;
-#X connect 4 0 1 1;
-#X connect 5 0 1 2;
-#X connect 7 0 11 0;
-#X connect 8 0 12 2;
-#X connect 9 0 12 1;
-#X connect 10 0 12 0;
-#X connect 11 0 10 0;
-#X connect 11 1 9 0;
-#X connect 11 2 8 0;
-#X connect 12 0 13 0;
diff --git a/doc/tutorials/intro/floats_and_ints.pd b/doc/tutorials/intro/floats_and_ints.pd
deleted file mode 100644
index 28ab376c..00000000
--- a/doc/tutorials/intro/floats_and_ints.pd
+++ /dev/null
@@ -1,23 +0,0 @@
-#N canvas 338 33 639 455 12;
-#X obj -47 -1 cnv 15 400 40 empty empty floats_and_ints 20 12 0 24
--228992 -66577 0;
-#X text -40 55 In Pd \, there is only one kind of number \, its generally
-known as a "float" \, which is a word used in programming to mean a
-"floating point number" \, i.e. a number with a decimal point in it.
-;
-#X text -34 237 Oftentimes \, its useful to use integers. For this
-there is the [int] object.;
-#X text 26 144 4.5;
-#X text 69 200 1.234e+07;
-#X text 178 157 -0.0032;
-#X text 313 173 4.3332;
-#X obj 213 317 int;
-#X floatatom 213 353 5 0 0 1 int - -;
-#X floatatom 154 353 5 0 0 0 float - -;
-#X obj 216 281 hsl 128 15 0 20 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 2800 1;
-#X text -32 391 floats and ints are direct representations of how your
-CPU handles numbers.;
-#X connect 7 0 8 0;
-#X connect 10 0 9 0;
-#X connect 10 0 7 0;
diff --git a/doc/tutorials/intro/init_to_0.pd b/doc/tutorials/intro/init_to_0.pd
deleted file mode 100644
index bc2573c8..00000000
--- a/doc/tutorials/intro/init_to_0.pd
+++ /dev/null
@@ -1,31 +0,0 @@
-#N canvas 396 67 599 357 12;
-#X text 21 93 float values are automatically initialized to 0 in Pd.
-;
-#X obj 304 185 +;
-#X obj 188 186 *;
-#X obj 67 185 float;
-#X obj 425 185 trigger f;
-#X obj 253 216 bng 15 250 50 0 empty empty reset 0 -6 0 8 -262144 -1
--1;
-#X obj 304 259 pddp/print;
-#X obj 187 259 pddp/print;
-#X obj 67 259 pddp/print;
-#X obj 425 259 pddp/print;
-#X msg 304 147 bang;
-#X msg 188 148 bang;
-#X msg 67 148 bang;
-#X msg 425 148 bang;
-#X obj 12 13 cnv 15 400 40 empty empty init_to_zero 20 12 0 24 -228992
--66577 0;
-#X connect 1 0 6 0;
-#X connect 2 0 7 0;
-#X connect 3 0 8 0;
-#X connect 4 0 9 0;
-#X connect 5 0 6 0;
-#X connect 5 0 7 0;
-#X connect 5 0 8 0;
-#X connect 5 0 9 0;
-#X connect 10 0 1 0;
-#X connect 11 0 2 0;
-#X connect 12 0 3 0;
-#X connect 13 0 4 0;
diff --git a/doc/tutorials/intro/number_limitations.pd b/doc/tutorials/intro/number_limitations.pd
deleted file mode 100644
index a14a8921..00000000
--- a/doc/tutorials/intro/number_limitations.pd
+++ /dev/null
@@ -1,24 +0,0 @@
-#N canvas 399 275 659 475 12;
-#X obj -30 9 cnv 15 400 40 empty empty number_limitations 20 12 0 24
--228992 -66577 0;
-#X text 13 146 NaN;
-#X text 76 147 -inf;
-#X text 144 148 inf;
-#X text -19 233 rounding errors;
-#X floatatom -8 381 12 999900 1e+20 0 - - -;
-#X text -19 343 Pd can only display 6 significant digits:;
-#X text -17 421 If you are fortunate enough to have a 64-bit system
-\, then you can have much longer numbers.;
-#X floatatom -7 311 12 0 0 0 - - -;
-#X text 103 267 999999 + 999999 = 1 \, 999 \, 998;
-#X msg -7 258 999999;
-#X obj -7 285 + 999999;
-#X obj -19 204 pddp/pddplink http://en.wikipedia.org/wiki/Real_numbers
-;
-#X text -23 61 Computers use floating point numbers to try to represent
-real numbers (a real number is any number that could be plotted on
-a line).;
-#X text 118 379 <-- scroll up to see;
-#X text 127 312 == 2 \, OOO \, OOO;
-#X connect 10 0 11 0;
-#X connect 11 0 8 0;
diff --git a/doc/tutorials/intro/pure_data_files.pd b/doc/tutorials/intro/pure_data_files.pd
deleted file mode 100644
index f6a0d832..00000000
--- a/doc/tutorials/intro/pure_data_files.pd
+++ /dev/null
@@ -1,54 +0,0 @@
-#N canvas 615 56 580 543 10;
-#X obj 191 249 textfile;
-#X obj 111 279 print all;
-#X msg 100 223 bang;
-#X msg 191 213 rewind;
-#X obj 131 347 route canvas;
-#X obj 112 474 print width;
-#X obj 51 425 print Xpos;
-#X obj 81 450 print Ypos;
-#X obj 143 499 print heigth;
-#X obj 174 424 print fontsize;
-#X obj 51 394 unpack f f f f f;
-#X obj 295 427 s pd-clone;
-#X obj 191 274 route #N #X;
-#X obj 234 106 tgl 20 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1
-;
-#X msg 294 338 vis 1 \, clear;
-#X obj 142 174 + 1;
-#X obj 100 174 float;
-#X obj 272 152 select 1;
-#X obj 98 150 metro 300;
-#X text 35 54 Even .pd files use the same message format.;
-#X text 34 75 Here is a patch that reads the file of this patch and
-sends it to the "clone" subpatch \, making a clone:;
-#X obj 8 10 cnv 15 400 40 empty empty pure_data_files 20 12 0 24 -228992
--66577 0;
-#X obj 100 198 moses 52;
-#X msg 317 214 read 22.pure_data_files.pd;
-#N canvas 0 22 548 599 clone 0;
-#X restore 428 494 pd clone;
-#X connect 0 0 1 0;
-#X connect 0 0 12 0;
-#X connect 2 0 0 0;
-#X connect 3 0 0 0;
-#X connect 4 0 10 0;
-#X connect 10 0 6 0;
-#X connect 10 1 7 0;
-#X connect 10 2 5 0;
-#X connect 10 3 8 0;
-#X connect 10 4 9 0;
-#X connect 12 0 4 0;
-#X connect 12 1 11 0;
-#X connect 13 0 17 0;
-#X connect 13 0 18 0;
-#X connect 14 0 11 0;
-#X connect 15 0 16 1;
-#X connect 16 0 15 0;
-#X connect 16 0 22 0;
-#X connect 17 0 23 0;
-#X connect 17 0 3 0;
-#X connect 17 0 14 0;
-#X connect 18 0 16 0;
-#X connect 22 0 2 0;
-#X connect 23 0 0 0;
diff --git a/doc/tutorials/intro/selecting_events.pd b/doc/tutorials/intro/selecting_events.pd
deleted file mode 100644
index 9e3f1a3c..00000000
--- a/doc/tutorials/intro/selecting_events.pd
+++ /dev/null
@@ -1,27 +0,0 @@
-#N canvas 10 40 632 457 12;
-#X obj 10 10 cnv 15 400 40 empty empty selecting_events 20 12 0 24
--228992 -66577 0;
-#X floatatom 75 138 5 0 0 0 - - -;
-#X text 130 136 <--haga click y arrastre;
-#X obj 75 187 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 105 187 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 75 161 select 2 3 4 5 6 10;
-#X obj 136 187 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 167 187 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 198 187 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 229 187 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 260 187 5 0 0 0 - - -;
-#X connect 1 0 5 0;
-#X connect 5 0 3 0;
-#X connect 5 1 4 0;
-#X connect 5 2 6 0;
-#X connect 5 3 7 0;
-#X connect 5 4 8 0;
-#X connect 5 5 9 0;
-#X connect 5 6 10 0;
diff --git a/doc/tutorials/intro/send_messages_to_pd.pd b/doc/tutorials/intro/send_messages_to_pd.pd
deleted file mode 100644
index f0961a6e..00000000
--- a/doc/tutorials/intro/send_messages_to_pd.pd
+++ /dev/null
@@ -1,26 +0,0 @@
-#N canvas 476 37 655 592 12;
-#X msg 134 485 menuclose;
-#X obj 46 550 s pd-mon-nouveau-patch.pd;
-#X obj 22 216 cnv 15 5 5 empty empty 1 5 0 0 20 -262144 -258699 0;
-#X obj 23 290 cnv 15 5 5 empty empty 2 5 0 0 20 -262144 -258699 0;
-#X obj 20 342 cnv 15 5 5 empty empty 3 5 0 0 20 -262144 -258699 0;
-#X msg 60 185 \; pd filename mon-nouveau-patch.pd /tmp \; #N canvas
-\; #X pop 1 \;;
-#X text 13 149 Click these messages starting from the top:;
-#X msg 76 331 symbolatom 20 100 0 0 0 0;
-#X msg 92 379 connect 0 0 1 0;
-#X msg 60 279 msg 20 27 symbol Hello_World!;
-#X text 131 426 click on [symbol Hello_World!( in the new window;
-#X text 243 484 now close the new window;
-#X obj 20 389 cnv 15 5 5 empty empty 4 5 0 0 20 -262144 -258699 0;
-#X obj 19 440 cnv 15 5 5 empty empty 5 5 0 0 20 -262144 -258699 0;
-#X obj 18 495 cnv 15 5 5 empty empty 6 5 0 0 20 -262144 -258699 0;
-#X obj 8 10 cnv 15 400 40 empty empty send_messages_to_pd 20 12 0 24
--228992 -66577 0;
-#X text 11 75 Keeping true to the name "Pure Data" \, you can send
-messages to Pd itself. All messages are in the same format \, whether
-its in your patch \, or it's Pd's GUI talking to the Pd core.;
-#X connect 0 0 1 0;
-#X connect 7 0 1 0;
-#X connect 8 0 1 0;
-#X connect 9 0 1 0;