From 031bb7332779aab0005947ea3d8f83ee6a4836bf Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Fri, 7 Apr 2006 00:15:27 +0000 Subject: added lots of patches which are templates, semi-complete, or out of order svn path=/trunk/; revision=4829 --- doc/tutorials/intro/04.objects.pd | 31 + doc/tutorials/intro/05.connections.pd | 23 + doc/tutorials/intro/07.bang.pd | 18 + doc/tutorials/intro/08.hot_and_cold_inlets.pd | 44 ++ doc/tutorials/intro/10.storage_objects.pd | 56 ++ doc/tutorials/intro/11.atoms.pd | 10 + doc/tutorials/intro/12.atomic_messages.pd | 6 + doc/tutorials/intro/14.subpatches.pd | 1 + doc/tutorials/intro/15.inlets_and_outlets.pd | 42 ++ doc/tutorials/intro/21.send_messages_to_pd.pd | 26 + doc/tutorials/intro/22.pure_data_files.pd | 54 ++ doc/tutorials/intro/Attic/math.pd | 434 +++++++++++ .../intro/Attic/sorting_messages_by_type.pd | 47 ++ doc/tutorials/intro/counters.pd | 35 + doc/tutorials/intro/guis.pd | 813 +++++++++++++++++++++ doc/tutorials/intro/math.pd | 434 +++++++++++ doc/tutorials/intro/ordering_messages.pd | 42 ++ doc/tutorials/intro/selectors.pd | 29 + doc/tutorials/intro/send_and_receive.pd | 132 ++++ .../intro/sorting_messages_by_selectors.pd | 4 + doc/tutorials/intro/sorting_messages_by_type.pd | 47 ++ doc/tutorials/intro/symbol_conversion.pd | 20 + 22 files changed, 2348 insertions(+) create mode 100644 doc/tutorials/intro/04.objects.pd create mode 100644 doc/tutorials/intro/05.connections.pd create mode 100644 doc/tutorials/intro/07.bang.pd create mode 100644 doc/tutorials/intro/08.hot_and_cold_inlets.pd create mode 100644 doc/tutorials/intro/10.storage_objects.pd create mode 100644 doc/tutorials/intro/11.atoms.pd create mode 100644 doc/tutorials/intro/12.atomic_messages.pd create mode 100644 doc/tutorials/intro/14.subpatches.pd create mode 100644 doc/tutorials/intro/15.inlets_and_outlets.pd create mode 100644 doc/tutorials/intro/21.send_messages_to_pd.pd create mode 100644 doc/tutorials/intro/22.pure_data_files.pd create mode 100644 doc/tutorials/intro/Attic/math.pd create mode 100644 doc/tutorials/intro/Attic/sorting_messages_by_type.pd create mode 100644 doc/tutorials/intro/counters.pd create mode 100644 doc/tutorials/intro/guis.pd create mode 100644 doc/tutorials/intro/math.pd create mode 100644 doc/tutorials/intro/ordering_messages.pd create mode 100644 doc/tutorials/intro/selectors.pd create mode 100644 doc/tutorials/intro/send_and_receive.pd create mode 100644 doc/tutorials/intro/sorting_messages_by_selectors.pd create mode 100644 doc/tutorials/intro/sorting_messages_by_type.pd create mode 100644 doc/tutorials/intro/symbol_conversion.pd (limited to 'doc/tutorials/intro') diff --git a/doc/tutorials/intro/04.objects.pd b/doc/tutorials/intro/04.objects.pd new file mode 100644 index 00000000..d4b7f381 --- /dev/null +++ b/doc/tutorials/intro/04.objects.pd @@ -0,0 +1,31 @@ +#N canvas 359 93 607 497 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 +specific thing.; +#X text 11 124 These are all objects which store data:; +#X obj 96 151 symbol; +#X obj 174 151 list; +#X text 13 188 With most objects \, you can read the name of the object +in the object box:; +#X obj 16 230 moses; +#X obj 92 230 select; +#X obj 176 230 route; +#X obj 251 230 trigger; +#X text 11 264 GUI objects convert themselves into a GUI element \, +usually some kind of control. In the process \, they often hide the +text name of the object:; +#X obj 27 358 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 15 329 [bng]; +#X obj 108 355 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 10000 1; +#X text 85 329 [vslider]; +#X text 227 331 [hslider]; +#X obj 197 353 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 393 351 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X text 382 326 [tgl]; +#X obj 8 10 cnv 15 400 40 empty empty objects 20 12 0 24 -228992 -66577 +0; diff --git a/doc/tutorials/intro/05.connections.pd b/doc/tutorials/intro/05.connections.pd new file mode 100644 index 00000000..2da16bbe --- /dev/null +++ b/doc/tutorials/intro/05.connections.pd @@ -0,0 +1,23 @@ +#N canvas 100 133 652 445 12; +#X text 14 105 Pd patches are always running and changes take effect +immediately.; +#X floatatom 25 277 5 0 0 0 - - -; +#X floatatom 25 341 5 0 0 0 - - -; +#X obj 24 165 tgl 30 0 empty empty start 2 15 1 12 -24198 -1 -1 0 1 +; +#X obj 24 209 metro 100; +#X obj 24 240 random 100; +#X text 70 169 <-- click here to start; +#X text 66 299 connect by clicking on the outlet of the top number +box \, then drag and drop on the inlet of the bottom number box; +#X text 30 299 ^--; +#X text 39 375 Disconnect the cable by clicking on it to highlight +it \, then press the backspace key on your keyboard.; +#X obj 8 10 cnv 15 400 40 empty empty connections 20 12 0 24 -228992 +-66577 0; +#X text 15 66 Connections are always made from the inlet to the outlet +since that always the direction that the data flows.; +#X text 195 226 next \, make sure you are in edit mode; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 1 0; diff --git a/doc/tutorials/intro/07.bang.pd b/doc/tutorials/intro/07.bang.pd new file mode 100644 index 00000000..1cc8ce8d --- /dev/null +++ b/doc/tutorials/intro/07.bang.pd @@ -0,0 +1,18 @@ +#N canvas 208 184 605 391 12; +#X text 13 79 In Pd \, "bang" means "do something". What that "something" +is depends on the object receiving the bang.; +#X obj 18 191 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 18 220 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 18 269 bang; +#X obj 18 294 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X text 40 189 <--bang button; +#X text 62 270 <--you can also send "bang" using a message box; +#X text 14 137 Here \, this toggle changes state when it receives a +bang:; +#X obj 8 10 cnv 15 400 40 empty empty bang 20 12 0 24 -228992 -66577 +0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; diff --git a/doc/tutorials/intro/08.hot_and_cold_inlets.pd b/doc/tutorials/intro/08.hot_and_cold_inlets.pd new file mode 100644 index 00000000..06a8ac02 --- /dev/null +++ b/doc/tutorials/intro/08.hot_and_cold_inlets.pd @@ -0,0 +1,44 @@ +#N canvas 205 66 679 541 12; +#X obj 19 243 +; +#X floatatom 19 272 5 0 0 0 - - -; +#X msg 19 179 1; +#X msg 36 215 5; +#X text 11 56 For most objects in Pd \, the leftmost inlet is the "hot" +inlet. This means that it will output something whenever it receives +data on the "hot" inlet.; +#X text 12 116 All other inlets are generally "cold" inlets \, which +merely store the data they receive until input on the "hot" inlet causes +the object to do its thing.; +#X text 85 216 2) click this and there will be no new output; +#X obj 181 412 +; +#X floatatom 181 441 5 0 0 0 - - -; +#X msg 84 337 1; +#X text 15 305 Try a number of different combinations to see for yourself: +; +#X text 215 405 <-- "cold" inlet; +#X text 29 405 "hot" inlet -->; +#X msg 124 337 2; +#X msg 164 337 3; +#X msg 234 337 4; +#X msg 274 337 5; +#X msg 314 337 6; +#X text 85 248 3) now click the [1( message box \, and you get a new +output; +#X text 17 462 Notice that the number is stored in the "cold" inlet +until you change it. For example \, if you click [4( \, then click +[1( \, [2( \, and [3( \, you will see that 1 \, 2 \, and 3 are all +added to 4; +#X text 85 184 1) click this first \, and [+ ] immediately outputs +a 1; +#X obj 6 8 cnv 15 400 40 empty empty hot_and_cold_inlets 20 12 0 24 +-228992 -66577 0; +#X connect 0 0 1 0; +#X connect 2 0 0 0; +#X connect 3 0 0 1; +#X connect 7 0 8 0; +#X connect 9 0 7 0; +#X connect 13 0 7 0; +#X connect 14 0 7 0; +#X connect 15 0 7 1; +#X connect 16 0 7 1; +#X connect 17 0 7 1; diff --git a/doc/tutorials/intro/10.storage_objects.pd b/doc/tutorials/intro/10.storage_objects.pd new file mode 100644 index 00000000..d5ca3016 --- /dev/null +++ b/doc/tutorials/intro/10.storage_objects.pd @@ -0,0 +1,56 @@ +#N canvas 559 137 638 539 12; +#X obj 122 89 symbol; +#X obj 63 89 bang; +#X obj 303 89 f; +#X obj 208 89 float; +#X text 268 89 aka; +#X text 36 384 If a storage object receives a value on the left inlet +\, then it outputs that value immediately in addition to storing it. +; +#X text 35 254 If a storage object receives a value on the right inlet +\, then it stores that value.; +#X text 28 123 If you bang the left inlet of a storage object \, it +outputs its stored value.; +#X obj 170 334 float; +#X msg 195 302 123; +#X obj 124 478 float; +#X msg 170 452 123; +#X msg 124 453 432; +#X msg 237 301 321; +#X floatatom 170 358 5 0 0 0 - - -; +#X floatatom 185 228 5 0 0 0 - - -; +#X floatatom 124 507 5 0 0 0 - - -; +#X obj 12 13 cnv 15 400 40 empty empty storage_objects 20 12 0 24 -228992 +-66577 0; +#X obj 185 199 float 5.5; +#X text 98 58 A storage object stores data.; +#X obj 362 89 list; +#X obj 299 198 symbol yoyo; +#X symbolatom 299 227 10 0 0 0 - - -; +#X msg 185 171 bang; +#X msg 299 170 bang; +#X msg 132 303 bang; +#X obj 320 329 symbol yoyo; +#X symbolatom 320 358 10 0 0 0 - - -; +#X msg 320 301 bang; +#X msg 70 453 bang; +#X msg 379 300 symbol one; +#X msg 492 300 symbol two; +#X obj 427 89 any; +#X obj 477 89 pointer; +#X connect 8 0 14 0; +#X connect 9 0 8 1; +#X connect 10 0 16 0; +#X connect 11 0 10 1; +#X connect 12 0 10 0; +#X connect 13 0 8 1; +#X connect 18 0 15 0; +#X connect 21 0 22 0; +#X connect 23 0 18 0; +#X connect 24 0 21 0; +#X connect 25 0 8 0; +#X connect 26 0 27 0; +#X connect 28 0 26 0; +#X connect 29 0 10 0; +#X connect 30 0 26 1; +#X connect 31 0 26 1; diff --git a/doc/tutorials/intro/11.atoms.pd b/doc/tutorials/intro/11.atoms.pd new file mode 100644 index 00000000..8276758e --- /dev/null +++ b/doc/tutorials/intro/11.atoms.pd @@ -0,0 +1,10 @@ +#N canvas 546 135 614 464 12; +#X obj 10 12 cnv 15 400 40 empty empty atoms 20 12 0 24 -228992 -66577 +0; +#X text 24 87 The basic data types of Pd are called "atoms". There +are three atom types: "float" \, "symbol" \, and "pointer".; +#X text 10 282 An atom is a piece of data that cannot be broken down +into smaller parts.; +#X text 21 160 A numeric atom is anything that can be interpreted as +a number.; +#X text 18 225 A symbolic atom is...; diff --git a/doc/tutorials/intro/12.atomic_messages.pd b/doc/tutorials/intro/12.atomic_messages.pd new file mode 100644 index 00000000..b76ee863 --- /dev/null +++ b/doc/tutorials/intro/12.atomic_messages.pd @@ -0,0 +1,6 @@ +#N canvas 384 167 602 456 12; +#X obj 10 12 cnv 15 400 40 empty empty atomic_messages 20 12 0 24 -228992 +-66577 0; +#X msg 27 81 bang; +#X msg 27 197 symbol atom; +#X msg 29 300 float 1.234; diff --git a/doc/tutorials/intro/14.subpatches.pd b/doc/tutorials/intro/14.subpatches.pd new file mode 100644 index 00000000..154bae2d --- /dev/null +++ b/doc/tutorials/intro/14.subpatches.pd @@ -0,0 +1 @@ +#N canvas 0 22 454 304 12; diff --git a/doc/tutorials/intro/15.inlets_and_outlets.pd b/doc/tutorials/intro/15.inlets_and_outlets.pd new file mode 100644 index 00000000..66a8527b --- /dev/null +++ b/doc/tutorials/intro/15.inlets_and_outlets.pd @@ -0,0 +1,42 @@ +#N canvas 520 22 615 396 12; +#N canvas 0 22 470 320 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 0 22 618 378 another 0; +#X obj 17 94 inlet; +#X obj 431 320 outlet; +#X obj 16 324 print; +#X text 9 28 this object says hello in the Pd window \, then passes +the data thru; +#X obj 16 182 trigger bang anything; +#X msg 16 292 hi from inside [pd another object]!; +#X connect 0 0 4 0; +#X connect 4 0 5 0; +#X connect 4 1 1 0; +#X connect 5 0 2 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/21.send_messages_to_pd.pd b/doc/tutorials/intro/21.send_messages_to_pd.pd new file mode 100644 index 00000000..deb05501 --- /dev/null +++ b/doc/tutorials/intro/21.send_messages_to_pd.pd @@ -0,0 +1,26 @@ +#N canvas 476 37 651 588 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/22.pure_data_files.pd b/doc/tutorials/intro/22.pure_data_files.pd new file mode 100644 index 00000000..2061d910 --- /dev/null +++ b/doc/tutorials/intro/22.pure_data_files.pd @@ -0,0 +1,54 @@ +#N canvas 615 56 576 539 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 1 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/Attic/math.pd b/doc/tutorials/intro/Attic/math.pd new file mode 100644 index 00000000..d081a70a --- /dev/null +++ b/doc/tutorials/intro/Attic/math.pd @@ -0,0 +1,434 @@ +#N canvas 436 10 551 278 10; +#X obj 17 11 cnv 15 500 100 empty empty OPERATIONS: 20 12 0 14 -233017 +-66577 0; +#N canvas 58 106 794 296 operations-logiques-relationnelles 0; +#X obj 41 146 &; +#X obj 91 146 |; +#X obj 143 146 &&; +#X obj 194 146 ||; +#X obj 415 146 >; +#X obj 464 146 >=; +#X obj 517 146 ==; +#X obj 618 146 <=; +#X obj 665 146 <; +#X obj 569 146 !=; +#X obj 233 146 <<; +#X obj 284 146 >>; +#X floatatom 41 92 5 0 0 0 - - -; +#X floatatom 303 93 5 0 0 0 - - -; +#X floatatom 41 183 2 0 0 0 - - -; +#X floatatom 91 183 2 0 0 0 - - -; +#X floatatom 143 183 2 0 0 0 - - -; +#X floatatom 194 183 2 0 0 0 - - -; +#X floatatom 233 183 2 0 0 0 - - -; +#X floatatom 284 183 2 0 0 0 - - -; +#X floatatom 415 183 2 0 0 0 - - -; +#X floatatom 464 183 2 0 0 0 - - -; +#X floatatom 517 183 2 0 0 0 - - -; +#X floatatom 569 183 2 0 0 0 - - -; +#X floatatom 618 183 2 0 0 0 - - -; +#X floatatom 665 183 2 0 0 0 - - -; +#X floatatom 415 93 5 0 0 0 - - -; +#X floatatom 684 93 5 0 0 0 - - -; +#X text 38 33 Operateurs Logiques; +#X text 39 45 -------------------; +#X text 412 34 Operateurs Relationnelles; +#X text 413 45 --------------------------; +#X text 167 238 voir 17-exercices.pd : detecteur d'enveloppe; +#X text 167 256 voir 19-exercices.pd : sequenceurs; +#X connect 0 0 14 0; +#X connect 1 0 15 0; +#X connect 2 0 16 0; +#X connect 3 0 17 0; +#X connect 4 0 20 0; +#X connect 5 0 21 0; +#X connect 6 0 22 0; +#X connect 7 0 24 0; +#X connect 8 0 25 0; +#X connect 9 0 23 0; +#X connect 10 0 18 0; +#X connect 11 0 19 0; +#X connect 12 0 0 0; +#X connect 12 0 1 0; +#X connect 12 0 2 0; +#X connect 12 0 3 0; +#X connect 12 0 10 0; +#X connect 12 0 11 0; +#X connect 13 0 11 1; +#X connect 13 0 10 1; +#X connect 13 0 3 1; +#X connect 13 0 2 1; +#X connect 13 0 1 1; +#X connect 13 0 0 1; +#X connect 26 0 4 0; +#X connect 26 0 5 0; +#X connect 26 0 6 0; +#X connect 26 0 9 0; +#X connect 26 0 7 0; +#X connect 26 0 8 0; +#X connect 27 0 4 1; +#X connect 27 0 5 1; +#X connect 27 0 6 1; +#X connect 27 0 9 1; +#X connect 27 0 7 1; +#X connect 27 0 8 1; +#X restore 18 129 pd operations-logiques-relationnelles; +#N canvas 0 0 795 354 operations-mathematiques 0; +#X floatatom 31 72 5 0 0 0 - - -; +#X obj 160 128 *; +#X floatatom 238 72 5 0 0 0 - - -; +#X floatatom 160 197 5 0 0 0 - - -; +#X obj 31 128 +; +#X obj 96 128 -; +#X obj 219 128 /; +#X floatatom 31 197 5 0 0 0 - - -; +#X floatatom 96 197 5 0 0 0 - - -; +#X floatatom 219 197 5 0 0 0 - - -; +#X obj 375 134 pow 2; +#X obj 441 133 pow -1; +#X floatatom 375 80 5 0 0 0 - - -; +#X floatatom 375 206 5 0 0 0 - - -; +#X floatatom 441 206 5 0 0 0 - - -; +#X obj 626 133 % 5; +#X floatatom 611 81 5 0 0 0 - - -; +#X floatatom 664 81 5 0 0 0 - - -; +#X floatatom 626 206 5 0 0 0 - - -; +#X text 628 242 Modulo; +#X text 31 24 Operations Mathematiques; +#X text 30 34 ------------------------; +#X text 29 243 Operations arithmetiques standards; +#X obj 691 132 mod 5; +#X text 667 132 =; +#X text 364 244 operations puissances; +#X text 435 299 voir 18-exercices.pd : beat tempo; +#X connect 0 0 1 0; +#X connect 0 0 5 0; +#X connect 0 0 6 0; +#X connect 0 0 4 0; +#X connect 1 0 3 0; +#X connect 2 0 1 1; +#X connect 2 0 4 1; +#X connect 2 0 5 1; +#X connect 2 0 6 1; +#X connect 4 0 7 0; +#X connect 5 0 8 0; +#X connect 6 0 9 0; +#X connect 10 0 13 0; +#X connect 11 0 14 0; +#X connect 12 0 10 0; +#X connect 12 0 11 0; +#X connect 15 0 18 0; +#X connect 16 0 15 0; +#X connect 17 0 15 1; +#X restore 18 167 pd operations-mathematiques; +#N canvas 29 79 932 301 operations-conditionnelles 0; +#X floatatom 445 74 5 0 0 0 - - -; +#X floatatom 504 74 5 0 0 0 - - -; +#X floatatom 445 160 5 0 0 0 - - -; +#X floatatom 504 160 5 0 0 0 - - -; +#X obj 445 115 moses 10; +#X obj 326 112 spigot; +#X floatatom 22 96 5 0 0 0 - - -; +#X obj 22 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 22 137 select 2 3 4; +#X obj 52 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 82 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 113 186 5 0 0 0 - - -; +#X obj 369 89 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X floatatom 326 70 5 0 0 0 - - -; +#X floatatom 326 156 5 0 0 0 - - -; +#X obj 621 183 print r1; +#X obj 690 183 print r2; +#X obj 759 183 print r3; +#X obj 828 183 print r4; +#X msg 621 69 1 2 3; +#X msg 678 70 2 3 4; +#X obj 621 130 route 1 2 symbol; +#X msg 731 70 symbol bar; +#X msg 732 97 who am I?; +#X text 18 20 Operations Conditionnelles; +#X text 18 32 --------------------------; +#X text 18 61 Selectionner certaines entrees; +#X text 325 36 Porte; +#X text 438 36 Separer les entrees; +#X text 619 38 Routage des entrees; +#X obj 258 233 *; +#X obj 277 208 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 366 209 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 347 233 *~; +#X text 257 181 autres Portes :; +#X obj 449 203 cnv 15 74 20 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 624 223 cnv 15 107 20 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 625 243 cnv 15 113 20 empty empty empty 20 12 0 14 -233017 -66577 +0; +#N canvas 243 0 636 690 random 0; +#X msg 103 95 bang; +#X text 44 19 You can generate weighted random numbers from uniformly +distributed ones. If you just want two possible outcomes with a varying +probability for each one \, you can do as shown:; +#X obj 103 121 random 100; +#X obj 102 174 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 169 174 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 205 148 3 0 100 0 - - -; +#X text 250 148 <-- change probablilty; +#X obj 103 149 moses 80; +#X text 152 93 <-- click to test; +#X text 61 219 This outputs a number at left 80% of the time \, otherwise +at right \, unless you override the "80" using the number box. You +may extend this to more than two possible outcomes \, for instance +like this:; +#X msg 106 305 bang; +#X obj 106 331 random 100; +#X obj 105 384 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 195 387 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 155 303 <-- click to test; +#X obj 106 359 moses 10; +#X obj 196 360 moses 30; +#X obj 263 387 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 103 409 10%; +#X text 193 410 20%; +#X text 265 409 70%; +#X obj 103 736 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 100 821 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 181 820 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 218 822 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X msg 100 843 1; +#X msg 181 845 2; +#X msg 218 846 3; +#X obj 100 882 s state; +#X obj 85 658 bng 20 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 121 641 r state; +#X obj 102 710 sel 1 2 3; +#X obj 274 738 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 271 823 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 353 825 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 392 828 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X msg 271 846 1; +#X msg 348 851 2; +#X msg 392 852 3; +#X obj 271 882 s state; +#X obj 438 739 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 438 824 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 518 823 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 557 826 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X msg 438 847 1; +#X msg 518 848 2; +#X msg 557 849 3; +#X obj 438 882 s state; +#X msg 255 671 \; state 1; +#X obj 102 684 f 1; +#X obj 103 764 random 100; +#X obj 102 793 moses 30; +#X obj 181 794 moses 60; +#X obj 274 765 random 100; +#X obj 274 795 moses 10; +#X obj 353 796 moses 60; +#X obj 438 766 random 100; +#X obj 438 795 moses 70; +#X obj 518 795 moses 80; +#X floatatom 133 666 3 0 0 0 - - -; +#X text 255 651 reset; +#X text 68 637 STEP; +#X text 53 505 Here is how to construct a simple \, three-valued Markov +chain using "random." Each time you click on "step" the previous output +("state") determines which of three random networks to invoke \, each +having a different probability distribution for the next value of "state." +For instance if the state was 3 \, the next state will be 1 70% of +the time \, state 2 10% \, and state 3 20%.; +#X connect 0 0 2 0; +#X connect 2 0 7 0; +#X connect 5 0 7 1; +#X connect 7 0 3 0; +#X connect 7 1 4 0; +#X connect 10 0 11 0; +#X connect 11 0 15 0; +#X connect 15 0 12 0; +#X connect 15 1 16 0; +#X connect 16 0 13 0; +#X connect 16 1 17 0; +#X connect 21 0 50 0; +#X connect 22 0 25 0; +#X connect 23 0 26 0; +#X connect 24 0 27 0; +#X connect 25 0 28 0; +#X connect 26 0 28 0; +#X connect 27 0 28 0; +#X connect 29 0 49 0; +#X connect 30 0 49 1; +#X connect 30 0 59 0; +#X connect 31 0 21 0; +#X connect 31 1 32 0; +#X connect 31 2 40 0; +#X connect 32 0 53 0; +#X connect 33 0 36 0; +#X connect 34 0 37 0; +#X connect 35 0 38 0; +#X connect 36 0 39 0; +#X connect 37 0 39 0; +#X connect 38 0 39 0; +#X connect 40 0 56 0; +#X connect 41 0 44 0; +#X connect 42 0 45 0; +#X connect 43 0 46 0; +#X connect 44 0 47 0; +#X connect 45 0 47 0; +#X connect 46 0 47 0; +#X connect 49 0 31 0; +#X connect 50 0 51 0; +#X connect 51 0 22 0; +#X connect 51 1 52 0; +#X connect 52 0 23 0; +#X connect 52 1 24 0; +#X connect 53 0 54 0; +#X connect 54 0 33 0; +#X connect 54 1 55 0; +#X connect 55 0 34 0; +#X connect 55 1 35 0; +#X connect 56 0 57 0; +#X connect 57 0 41 0; +#X connect 57 1 58 0; +#X connect 58 0 42 0; +#X connect 58 1 43 0; +#X restore 448 203 pd random; +#N canvas 0 0 357 255 route_lists 0; +#X floatatom 228 32 5 0 0 0 - - -; +#X obj 228 70 t b f; +#X obj 228 120 pack s f; +#X msg 81 30 droite; +#X msg 17 30 gauche; +#N canvas 510 50 299 253 test 0; +#X obj 112 34 inlet; +#X obj 185 175 outlet; +#X obj 112 74 route list; +#X obj 112 176 outlet; +#X obj 112 116 route gauche droite; +#X obj 79 166 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 216 152 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X connect 0 0 2 0; +#X connect 2 0 4 0; +#X connect 2 1 4 0; +#X connect 4 0 3 0; +#X connect 4 0 5 0; +#X connect 4 1 1 0; +#X connect 4 1 6 0; +#X restore 228 189 pd test; +#X floatatom 279 217 5 0 0 0 - - -; +#X floatatom 228 217 5 0 0 0 - - -; +#X msg 40 151 droite 10 \, gauche 40; +#X symbolatom 139 32 10 0 0 0 - - -; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 2 1; +#X connect 2 0 5 0; +#X connect 3 0 2 0; +#X connect 4 0 2 0; +#X connect 5 0 7 0; +#X connect 5 1 6 0; +#X connect 8 0 5 0; +#X connect 9 0 2 0; +#X restore 625 243 pd route_lists; +#N canvas 385 246 472 322 lists_pack 0; +#X obj 68 114 pack 0 5 s; +#X obj 68 160 print; +#X obj 189 168 unpack 0 0 s; +#X floatatom 189 204 5 0 0 0 - - -; +#X floatatom 234 204 5 0 0 0 - - -; +#X msg 280 236 Hello; +#X msg 280 204 set \$1; +#X obj 37 79 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 143 79 symbol Hello; +#X floatatom 105 79 3 0 0 0 - - -; +#X floatatom 68 79 3 0 0 0 - - -; +#X text 35 24 Making lists with pack; +#X connect 0 0 1 0; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 2 2 6 0; +#X connect 6 0 5 0; +#X connect 7 0 0 0; +#X connect 8 0 0 2; +#X connect 9 0 0 1; +#X connect 10 0 0 0; +#X restore 625 223 pd lists_pack; +#X connect 0 0 4 0; +#X connect 1 0 4 1; +#X connect 4 0 2 0; +#X connect 4 1 3 0; +#X connect 5 0 14 0; +#X connect 6 0 8 0; +#X connect 8 0 7 0; +#X connect 8 1 9 0; +#X connect 8 2 10 0; +#X connect 8 3 11 0; +#X connect 12 0 5 1; +#X connect 13 0 5 0; +#X connect 19 0 21 0; +#X connect 20 0 21 0; +#X connect 21 0 15 0; +#X connect 21 1 16 0; +#X connect 21 2 17 0; +#X connect 21 3 18 0; +#X connect 22 0 21 0; +#X connect 23 0 21 0; +#X connect 31 0 30 1; +#X connect 32 0 33 1; +#X restore 18 205 pd operations-conditionnelles; +#X text 322 129 > < != >= . . .; +#X text 36 34 Pour aller plus loin dans les possibilites relationnelles +:; +#X text 249 165 - + = / *; +#X text 270 204 selection \, routage \, porte \, ...; +#N canvas 0 0 556 312 changementEchelles 0; +#X text 11 3 But : passer un nombre qui va de 0 a 127 en un nombre +entre 40 et 3000; +#X obj 171 43 range 0 127 40 3000; +#X text 13 43 Un objet fait ca :; +#X text 9 92 Mais on peut faire tout aussi bien en utilisant les objets +[expr] qui servent tres bien pour tout calcul.; +#X floatatom 130 173 5 0 0 0 - - -; +#X floatatom 130 260 5 0 0 0 - - -; +#X text 452 124 0 : x1; +#X text 436 139 127 : x2; +#X text 444 153 40 : x3; +#X text 428 168 3000 : x4; +#X obj 130 202 expr ( (($f1-O)/(127-0))*(3000-40) ) + (40-0); +#X msg 60 136 0; +#X msg 94 137 60; +#X msg 126 138 127; +#X connect 4 0 10 0; +#X connect 10 0 5 0; +#X connect 11 0 4 0; +#X connect 12 0 4 0; +#X connect 13 0 4 0; +#X restore 17 242 pd changementEchelles; +#X text 204 243 objet [expr]; diff --git a/doc/tutorials/intro/Attic/sorting_messages_by_type.pd b/doc/tutorials/intro/Attic/sorting_messages_by_type.pd new file mode 100644 index 00000000..12e84c05 --- /dev/null +++ b/doc/tutorials/intro/Attic/sorting_messages_by_type.pd @@ -0,0 +1,47 @@ +#N canvas 565 106 627 443 12; +#X obj -60 8 cnv 15 400 40 empty empty sorting_messages_by_type 20 +12 0 24 -228992 -66577 0; +#X text -50 63 When processing messages \, some operations should only +be applied to messages of a certain type. [route] allows you to sort +messages by type:; +#X floatatom 168 339 5 0 0 0 - - -; +#X symbolatom 237 338 10 0 0 0 - - -; +#X obj 100 359 bng 15 250 50 0 empty empty bang -6 23 1 12 -262144 +-1 -1; +#X obj 100 315 route bang float symbol list; +#X obj 168 359 bng 15 250 50 0 empty empty float -4 23 1 12 -262144 +-1 -1; +#X obj 237 359 bng 15 250 50 0 empty empty symbol -12 23 1 12 -262144 +-1 -1; +#X obj 306 359 bng 15 250 50 0 empty empty list -2 23 1 12 -262144 +-1 -1; +#X obj 375 359 bng 15 250 50 0 empty empty selector_series -18 23 1 +12 -262144 -1 -1; +#X msg -43 173 bang; +#X msg 34 196 642.3; +#X msg 109 170 symbol moshimoshi; +#X msg 129 194 symbol sayonara; +#X obj -9 198 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 331 171 1 2 3; +#X msg 344 194 5 for free!; +#X msg 345 228 list here we go...; +#X msg 345 261 not a list? nope...; +#X msg 11 172 float 5; +#X connect 2 0 6 0; +#X connect 3 0 7 0; +#X connect 5 0 4 0; +#X connect 5 1 2 0; +#X connect 5 2 3 0; +#X connect 5 3 8 0; +#X connect 5 4 9 0; +#X connect 10 0 5 0; +#X connect 11 0 5 0; +#X connect 12 0 5 0; +#X connect 13 0 5 0; +#X connect 14 0 5 0; +#X connect 15 0 5 0; +#X connect 16 0 5 0; +#X connect 17 0 5 0; +#X connect 18 0 5 0; +#X connect 19 0 5 0; diff --git a/doc/tutorials/intro/counters.pd b/doc/tutorials/intro/counters.pd new file mode 100644 index 00000000..fcb19016 --- /dev/null +++ b/doc/tutorials/intro/counters.pd @@ -0,0 +1,35 @@ +#N canvas 0 22 458 308 10; +#X obj 317 70 cnv 15 100 60 empty empty empty 20 12 0 14 -261681 -66577 +0; +#X obj 338 90 f; +#X obj 373 90 + 1; +#X text 319 51 infinite loop!; +#X obj 106 199 float; +#X floatatom 74 227 5 0 0 0 - - -; +#X msg 74 121 1; +#X obj 73 199 +; +#X msg 109 173 0; +#X msg 86 144 -1; +#X text 110 122 increment; +#X text 115 145 decrement; +#X text 137 171 reset; +#X floatatom 254 267 5 0 0 0 - - -; +#X msg 296 213 0; +#X text 290 162 increment; +#X text 328 213 reset; +#X obj 253 239 float; +#X obj 296 239 + 1; +#X msg 254 161 bang; +#X connect 1 0 2 0; +#X connect 2 0 1 0; +#X connect 4 0 7 1; +#X connect 6 0 7 0; +#X connect 7 0 4 0; +#X connect 7 0 5 0; +#X connect 8 0 4 0; +#X connect 9 0 7 0; +#X connect 14 0 18 0; +#X connect 17 0 13 0; +#X connect 17 0 18 0; +#X connect 18 0 17 1; +#X connect 19 0 17 0; diff --git a/doc/tutorials/intro/guis.pd b/doc/tutorials/intro/guis.pd new file mode 100644 index 00000000..ca08bb3a --- /dev/null +++ b/doc/tutorials/intro/guis.pd @@ -0,0 +1,813 @@ +#N canvas 153 19 568 572 10; +#X obj -4 -4 cnv 15 600 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 438 180 374 414 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 0 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 179 78 690 573 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 135 99 382 469 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 280 166 794 432 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+007; +#X obj 266 283 random 1.67772e+007; +#X obj 299 315 random 1.67772e+007; +#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 139 89 794 432 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+007; +#X obj 258 213 random 1.67772e+007; +#X obj 291 245 random 1.67772e+007; +#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 322 99 794 432 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+007; +#X obj 277 117 random 1.67772e+007; +#X obj 310 149 random 1.67772e+007; +#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 148 132 794 432 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+007; +#X obj 271 118 random 1.67772e+007; +#X obj 304 150 random 1.67772e+007; +#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 226 38 811 519 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 146 190 460 120 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 151 38 522 451 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 177 21 730 638 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+007 (-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 145 31 380 506 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 305 120 336 257 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 297 130 530 376 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: a0; +#X text 147 213 2.arg: a1; +#X text 147 224 3.arg: b1; +#X text 63 5 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/math.pd b/doc/tutorials/intro/math.pd new file mode 100644 index 00000000..d081a70a --- /dev/null +++ b/doc/tutorials/intro/math.pd @@ -0,0 +1,434 @@ +#N canvas 436 10 551 278 10; +#X obj 17 11 cnv 15 500 100 empty empty OPERATIONS: 20 12 0 14 -233017 +-66577 0; +#N canvas 58 106 794 296 operations-logiques-relationnelles 0; +#X obj 41 146 &; +#X obj 91 146 |; +#X obj 143 146 &&; +#X obj 194 146 ||; +#X obj 415 146 >; +#X obj 464 146 >=; +#X obj 517 146 ==; +#X obj 618 146 <=; +#X obj 665 146 <; +#X obj 569 146 !=; +#X obj 233 146 <<; +#X obj 284 146 >>; +#X floatatom 41 92 5 0 0 0 - - -; +#X floatatom 303 93 5 0 0 0 - - -; +#X floatatom 41 183 2 0 0 0 - - -; +#X floatatom 91 183 2 0 0 0 - - -; +#X floatatom 143 183 2 0 0 0 - - -; +#X floatatom 194 183 2 0 0 0 - - -; +#X floatatom 233 183 2 0 0 0 - - -; +#X floatatom 284 183 2 0 0 0 - - -; +#X floatatom 415 183 2 0 0 0 - - -; +#X floatatom 464 183 2 0 0 0 - - -; +#X floatatom 517 183 2 0 0 0 - - -; +#X floatatom 569 183 2 0 0 0 - - -; +#X floatatom 618 183 2 0 0 0 - - -; +#X floatatom 665 183 2 0 0 0 - - -; +#X floatatom 415 93 5 0 0 0 - - -; +#X floatatom 684 93 5 0 0 0 - - -; +#X text 38 33 Operateurs Logiques; +#X text 39 45 -------------------; +#X text 412 34 Operateurs Relationnelles; +#X text 413 45 --------------------------; +#X text 167 238 voir 17-exercices.pd : detecteur d'enveloppe; +#X text 167 256 voir 19-exercices.pd : sequenceurs; +#X connect 0 0 14 0; +#X connect 1 0 15 0; +#X connect 2 0 16 0; +#X connect 3 0 17 0; +#X connect 4 0 20 0; +#X connect 5 0 21 0; +#X connect 6 0 22 0; +#X connect 7 0 24 0; +#X connect 8 0 25 0; +#X connect 9 0 23 0; +#X connect 10 0 18 0; +#X connect 11 0 19 0; +#X connect 12 0 0 0; +#X connect 12 0 1 0; +#X connect 12 0 2 0; +#X connect 12 0 3 0; +#X connect 12 0 10 0; +#X connect 12 0 11 0; +#X connect 13 0 11 1; +#X connect 13 0 10 1; +#X connect 13 0 3 1; +#X connect 13 0 2 1; +#X connect 13 0 1 1; +#X connect 13 0 0 1; +#X connect 26 0 4 0; +#X connect 26 0 5 0; +#X connect 26 0 6 0; +#X connect 26 0 9 0; +#X connect 26 0 7 0; +#X connect 26 0 8 0; +#X connect 27 0 4 1; +#X connect 27 0 5 1; +#X connect 27 0 6 1; +#X connect 27 0 9 1; +#X connect 27 0 7 1; +#X connect 27 0 8 1; +#X restore 18 129 pd operations-logiques-relationnelles; +#N canvas 0 0 795 354 operations-mathematiques 0; +#X floatatom 31 72 5 0 0 0 - - -; +#X obj 160 128 *; +#X floatatom 238 72 5 0 0 0 - - -; +#X floatatom 160 197 5 0 0 0 - - -; +#X obj 31 128 +; +#X obj 96 128 -; +#X obj 219 128 /; +#X floatatom 31 197 5 0 0 0 - - -; +#X floatatom 96 197 5 0 0 0 - - -; +#X floatatom 219 197 5 0 0 0 - - -; +#X obj 375 134 pow 2; +#X obj 441 133 pow -1; +#X floatatom 375 80 5 0 0 0 - - -; +#X floatatom 375 206 5 0 0 0 - - -; +#X floatatom 441 206 5 0 0 0 - - -; +#X obj 626 133 % 5; +#X floatatom 611 81 5 0 0 0 - - -; +#X floatatom 664 81 5 0 0 0 - - -; +#X floatatom 626 206 5 0 0 0 - - -; +#X text 628 242 Modulo; +#X text 31 24 Operations Mathematiques; +#X text 30 34 ------------------------; +#X text 29 243 Operations arithmetiques standards; +#X obj 691 132 mod 5; +#X text 667 132 =; +#X text 364 244 operations puissances; +#X text 435 299 voir 18-exercices.pd : beat tempo; +#X connect 0 0 1 0; +#X connect 0 0 5 0; +#X connect 0 0 6 0; +#X connect 0 0 4 0; +#X connect 1 0 3 0; +#X connect 2 0 1 1; +#X connect 2 0 4 1; +#X connect 2 0 5 1; +#X connect 2 0 6 1; +#X connect 4 0 7 0; +#X connect 5 0 8 0; +#X connect 6 0 9 0; +#X connect 10 0 13 0; +#X connect 11 0 14 0; +#X connect 12 0 10 0; +#X connect 12 0 11 0; +#X connect 15 0 18 0; +#X connect 16 0 15 0; +#X connect 17 0 15 1; +#X restore 18 167 pd operations-mathematiques; +#N canvas 29 79 932 301 operations-conditionnelles 0; +#X floatatom 445 74 5 0 0 0 - - -; +#X floatatom 504 74 5 0 0 0 - - -; +#X floatatom 445 160 5 0 0 0 - - -; +#X floatatom 504 160 5 0 0 0 - - -; +#X obj 445 115 moses 10; +#X obj 326 112 spigot; +#X floatatom 22 96 5 0 0 0 - - -; +#X obj 22 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 22 137 select 2 3 4; +#X obj 52 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 82 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 113 186 5 0 0 0 - - -; +#X obj 369 89 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X floatatom 326 70 5 0 0 0 - - -; +#X floatatom 326 156 5 0 0 0 - - -; +#X obj 621 183 print r1; +#X obj 690 183 print r2; +#X obj 759 183 print r3; +#X obj 828 183 print r4; +#X msg 621 69 1 2 3; +#X msg 678 70 2 3 4; +#X obj 621 130 route 1 2 symbol; +#X msg 731 70 symbol bar; +#X msg 732 97 who am I?; +#X text 18 20 Operations Conditionnelles; +#X text 18 32 --------------------------; +#X text 18 61 Selectionner certaines entrees; +#X text 325 36 Porte; +#X text 438 36 Separer les entrees; +#X text 619 38 Routage des entrees; +#X obj 258 233 *; +#X obj 277 208 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 366 209 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 347 233 *~; +#X text 257 181 autres Portes :; +#X obj 449 203 cnv 15 74 20 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 624 223 cnv 15 107 20 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 625 243 cnv 15 113 20 empty empty empty 20 12 0 14 -233017 -66577 +0; +#N canvas 243 0 636 690 random 0; +#X msg 103 95 bang; +#X text 44 19 You can generate weighted random numbers from uniformly +distributed ones. If you just want two possible outcomes with a varying +probability for each one \, you can do as shown:; +#X obj 103 121 random 100; +#X obj 102 174 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 169 174 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 205 148 3 0 100 0 - - -; +#X text 250 148 <-- change probablilty; +#X obj 103 149 moses 80; +#X text 152 93 <-- click to test; +#X text 61 219 This outputs a number at left 80% of the time \, otherwise +at right \, unless you override the "80" using the number box. You +may extend this to more than two possible outcomes \, for instance +like this:; +#X msg 106 305 bang; +#X obj 106 331 random 100; +#X obj 105 384 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 195 387 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 155 303 <-- click to test; +#X obj 106 359 moses 10; +#X obj 196 360 moses 30; +#X obj 263 387 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 103 409 10%; +#X text 193 410 20%; +#X text 265 409 70%; +#X obj 103 736 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 100 821 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 181 820 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 218 822 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X msg 100 843 1; +#X msg 181 845 2; +#X msg 218 846 3; +#X obj 100 882 s state; +#X obj 85 658 bng 20 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 121 641 r state; +#X obj 102 710 sel 1 2 3; +#X obj 274 738 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 271 823 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 353 825 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 392 828 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X msg 271 846 1; +#X msg 348 851 2; +#X msg 392 852 3; +#X obj 271 882 s state; +#X obj 438 739 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 438 824 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 518 823 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 557 826 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X msg 438 847 1; +#X msg 518 848 2; +#X msg 557 849 3; +#X obj 438 882 s state; +#X msg 255 671 \; state 1; +#X obj 102 684 f 1; +#X obj 103 764 random 100; +#X obj 102 793 moses 30; +#X obj 181 794 moses 60; +#X obj 274 765 random 100; +#X obj 274 795 moses 10; +#X obj 353 796 moses 60; +#X obj 438 766 random 100; +#X obj 438 795 moses 70; +#X obj 518 795 moses 80; +#X floatatom 133 666 3 0 0 0 - - -; +#X text 255 651 reset; +#X text 68 637 STEP; +#X text 53 505 Here is how to construct a simple \, three-valued Markov +chain using "random." Each time you click on "step" the previous output +("state") determines which of three random networks to invoke \, each +having a different probability distribution for the next value of "state." +For instance if the state was 3 \, the next state will be 1 70% of +the time \, state 2 10% \, and state 3 20%.; +#X connect 0 0 2 0; +#X connect 2 0 7 0; +#X connect 5 0 7 1; +#X connect 7 0 3 0; +#X connect 7 1 4 0; +#X connect 10 0 11 0; +#X connect 11 0 15 0; +#X connect 15 0 12 0; +#X connect 15 1 16 0; +#X connect 16 0 13 0; +#X connect 16 1 17 0; +#X connect 21 0 50 0; +#X connect 22 0 25 0; +#X connect 23 0 26 0; +#X connect 24 0 27 0; +#X connect 25 0 28 0; +#X connect 26 0 28 0; +#X connect 27 0 28 0; +#X connect 29 0 49 0; +#X connect 30 0 49 1; +#X connect 30 0 59 0; +#X connect 31 0 21 0; +#X connect 31 1 32 0; +#X connect 31 2 40 0; +#X connect 32 0 53 0; +#X connect 33 0 36 0; +#X connect 34 0 37 0; +#X connect 35 0 38 0; +#X connect 36 0 39 0; +#X connect 37 0 39 0; +#X connect 38 0 39 0; +#X connect 40 0 56 0; +#X connect 41 0 44 0; +#X connect 42 0 45 0; +#X connect 43 0 46 0; +#X connect 44 0 47 0; +#X connect 45 0 47 0; +#X connect 46 0 47 0; +#X connect 49 0 31 0; +#X connect 50 0 51 0; +#X connect 51 0 22 0; +#X connect 51 1 52 0; +#X connect 52 0 23 0; +#X connect 52 1 24 0; +#X connect 53 0 54 0; +#X connect 54 0 33 0; +#X connect 54 1 55 0; +#X connect 55 0 34 0; +#X connect 55 1 35 0; +#X connect 56 0 57 0; +#X connect 57 0 41 0; +#X connect 57 1 58 0; +#X connect 58 0 42 0; +#X connect 58 1 43 0; +#X restore 448 203 pd random; +#N canvas 0 0 357 255 route_lists 0; +#X floatatom 228 32 5 0 0 0 - - -; +#X obj 228 70 t b f; +#X obj 228 120 pack s f; +#X msg 81 30 droite; +#X msg 17 30 gauche; +#N canvas 510 50 299 253 test 0; +#X obj 112 34 inlet; +#X obj 185 175 outlet; +#X obj 112 74 route list; +#X obj 112 176 outlet; +#X obj 112 116 route gauche droite; +#X obj 79 166 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 216 152 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X connect 0 0 2 0; +#X connect 2 0 4 0; +#X connect 2 1 4 0; +#X connect 4 0 3 0; +#X connect 4 0 5 0; +#X connect 4 1 1 0; +#X connect 4 1 6 0; +#X restore 228 189 pd test; +#X floatatom 279 217 5 0 0 0 - - -; +#X floatatom 228 217 5 0 0 0 - - -; +#X msg 40 151 droite 10 \, gauche 40; +#X symbolatom 139 32 10 0 0 0 - - -; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 2 1; +#X connect 2 0 5 0; +#X connect 3 0 2 0; +#X connect 4 0 2 0; +#X connect 5 0 7 0; +#X connect 5 1 6 0; +#X connect 8 0 5 0; +#X connect 9 0 2 0; +#X restore 625 243 pd route_lists; +#N canvas 385 246 472 322 lists_pack 0; +#X obj 68 114 pack 0 5 s; +#X obj 68 160 print; +#X obj 189 168 unpack 0 0 s; +#X floatatom 189 204 5 0 0 0 - - -; +#X floatatom 234 204 5 0 0 0 - - -; +#X msg 280 236 Hello; +#X msg 280 204 set \$1; +#X obj 37 79 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 143 79 symbol Hello; +#X floatatom 105 79 3 0 0 0 - - -; +#X floatatom 68 79 3 0 0 0 - - -; +#X text 35 24 Making lists with pack; +#X connect 0 0 1 0; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 2 2 6 0; +#X connect 6 0 5 0; +#X connect 7 0 0 0; +#X connect 8 0 0 2; +#X connect 9 0 0 1; +#X connect 10 0 0 0; +#X restore 625 223 pd lists_pack; +#X connect 0 0 4 0; +#X connect 1 0 4 1; +#X connect 4 0 2 0; +#X connect 4 1 3 0; +#X connect 5 0 14 0; +#X connect 6 0 8 0; +#X connect 8 0 7 0; +#X connect 8 1 9 0; +#X connect 8 2 10 0; +#X connect 8 3 11 0; +#X connect 12 0 5 1; +#X connect 13 0 5 0; +#X connect 19 0 21 0; +#X connect 20 0 21 0; +#X connect 21 0 15 0; +#X connect 21 1 16 0; +#X connect 21 2 17 0; +#X connect 21 3 18 0; +#X connect 22 0 21 0; +#X connect 23 0 21 0; +#X connect 31 0 30 1; +#X connect 32 0 33 1; +#X restore 18 205 pd operations-conditionnelles; +#X text 322 129 > < != >= . . .; +#X text 36 34 Pour aller plus loin dans les possibilites relationnelles +:; +#X text 249 165 - + = / *; +#X text 270 204 selection \, routage \, porte \, ...; +#N canvas 0 0 556 312 changementEchelles 0; +#X text 11 3 But : passer un nombre qui va de 0 a 127 en un nombre +entre 40 et 3000; +#X obj 171 43 range 0 127 40 3000; +#X text 13 43 Un objet fait ca :; +#X text 9 92 Mais on peut faire tout aussi bien en utilisant les objets +[expr] qui servent tres bien pour tout calcul.; +#X floatatom 130 173 5 0 0 0 - - -; +#X floatatom 130 260 5 0 0 0 - - -; +#X text 452 124 0 : x1; +#X text 436 139 127 : x2; +#X text 444 153 40 : x3; +#X text 428 168 3000 : x4; +#X obj 130 202 expr ( (($f1-O)/(127-0))*(3000-40) ) + (40-0); +#X msg 60 136 0; +#X msg 94 137 60; +#X msg 126 138 127; +#X connect 4 0 10 0; +#X connect 10 0 5 0; +#X connect 11 0 4 0; +#X connect 12 0 4 0; +#X connect 13 0 4 0; +#X restore 17 242 pd changementEchelles; +#X text 204 243 objet [expr]; diff --git a/doc/tutorials/intro/ordering_messages.pd b/doc/tutorials/intro/ordering_messages.pd new file mode 100644 index 00000000..122e8cdc --- /dev/null +++ b/doc/tutorials/intro/ordering_messages.pd @@ -0,0 +1,42 @@ +#N canvas 570 267 619 435 12; +#X obj -60 8 cnv 15 400 40 empty empty ordering_messages 20 12 0 24 +-228992 -66577 0; +#X obj 214 364 t f b s l p a; +#X text 64 362 abbreviations:; +#X obj -26 396 trigger float bang symbol list pointer anything; +#X obj 239 89 trigger; +#X msg 471 223 now; +#X msg 392 223 this; +#X msg 313 223 makes; +#X msg 234 223 sense; +#X msg 156 223 !; +#X msg 232 326; +#X obj 233 265 symbol; +#X msg 233 289 add2 \$1; +#X msg 196 133 bang; +#X text -56 54 The [trigger] object allows you to specify the order +of execution. If you need to make sure that one thing executes before +another \, use:; +#X msg 3 155 set; +#X text -62 155 reset:; +#X obj 196 160 trigger bang bang bang bang bang; +#X msg 88 154 bang; +#X connect 5 0 11 0; +#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 11 0 12 0; +#X connect 12 0 10 0; +#X connect 13 0 17 0; +#X connect 15 0 10 0; +#X connect 17 0 9 0; +#X connect 17 1 8 0; +#X connect 17 2 7 0; +#X connect 17 3 6 0; +#X connect 17 4 5 0; +#X connect 18 0 8 0; +#X connect 18 0 9 0; +#X connect 18 0 6 0; +#X connect 18 0 7 0; +#X connect 18 0 5 0; diff --git a/doc/tutorials/intro/selectors.pd b/doc/tutorials/intro/selectors.pd new file mode 100644 index 00000000..363971df --- /dev/null +++ b/doc/tutorials/intro/selectors.pd @@ -0,0 +1,29 @@ +#N canvas 231 101 638 461 12; +#X obj 8 -33 cnv 15 400 40 empty empty selectors 20 12 0 24 -228992 +-66577 0; +#N canvas 328 337 454 304 object 0; +#X obj 79 36 inlet; +#X obj 86 270 outlet; +#X obj 308 267 outlet; +#X obj 71 131 route output-left output-right; +#X connect 0 0 3 0; +#X connect 3 0 1 0; +#X connect 3 1 2 0; +#X restore 157 211 pd object; +#X floatatom 157 264 5 0 0 0 - - -; +#X floatatom 242 264 5 0 0 0 - - -; +#X msg 189 165 output-right 309; +#X msg 156 115 output-left 8675; +#X text 9 24 Every message has a selector. The selector is the first +element in the message. It tells the object which receives that message +what to do with it. A selector is basically like a command or a function. +; +#X text 23 304 Here's the technical definition:; +#X text 23 335 The selector is a symbolic atom \, which is a non-numeric +string with no white space \, semicolons \, or commas. In the case +of messages whose first element is a numeric atom \, the selector is +implied.; +#X connect 1 0 2 0; +#X connect 1 1 3 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; diff --git a/doc/tutorials/intro/send_and_receive.pd b/doc/tutorials/intro/send_and_receive.pd new file mode 100644 index 00000000..fad96f07 --- /dev/null +++ b/doc/tutorials/intro/send_and_receive.pd @@ -0,0 +1,132 @@ +#N canvas 433 8 555 660 10; +#X obj 22 344 cnv 15 500 20 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 26 518 cnv 15 500 20 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 24 723 cnv 15 500 20 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 22 12 cnv 15 500 100 empty empty MESSAGES:send_variables_II +20 12 0 14 -233017 -66577 0; +#X obj 39 170 hsl 50 15 0 127 0 0 empty empty empty -2 -6 0 8 -261689 +-258699 -1 0 0; +#X floatatom 37 369 5 0 0 0 - - -; +#X floatatom 95 370 5 0 0 0 - - -; +#N canvas 0 0 392 106 sous-patchs1 0; +#X floatatom 1 62 5 0 0 0 - - -; +#X obj 1 39 r A; +#X text -3 5 Ce sous-patch recevra TOUS les "send A"; +#X connect 1 0 0 0; +#X restore 38 437 pd sous-patchs1; +#N canvas 4 159 254 107 sous-patchs2 0; +#X floatatom 18 59 5 0 0 0 - - -; +#N canvas 5 328 278 106 sous-patchs3 0; +#X floatatom 12 70 5 0 0 0 - - -; +#X obj 12 44 r A; +#X text 9 4 bien que loin du patch-MERE; +#X text 8 20 on recoit les "send A"; +#X connect 1 0 0 0; +#X restore 78 47 pd sous-patchs3; +#X obj 18 24 r B; +#X connect 2 0 0 0; +#X restore 38 463 pd sous-patchs2; +#X text 32 133 On peut avoir autant de send/receive du meme nom; +#X obj 36 191 send JeanPaulII; +#X obj 166 169 hsl 50 15 0 127 0 0 empty empty empty -2 -6 0 8 -261689 +-258699 -1 0 0; +#X obj 163 190 send JeanPaulII; +#X obj 304 168 hsl 50 15 0 127 0 0 empty empty empty -2 -6 0 8 -261689 +-258699 -1 0 0; +#X obj 301 189 send JeanPaulII; +#X obj 40 253 hsl 50 15 0 127 0 0 empty empty empty -2 -6 0 8 -261689 +-258699 -1 0 0; +#X obj 37 229 receive JeanPaulII; +#X obj 193 253 hsl 50 15 0 127 0 0 empty empty empty -2 -6 0 8 -261689 +-258699 -1 0 0; +#X obj 190 229 receive Poutine; +#X text 251 249 <- on ne recoit pas; +#X text 34 345 GLOBAL - envoie et recoie un message dans TOUS LES PATCHS +; +#X obj 37 393 s A; +#X obj 95 393 s B; +#X floatatom 37 642 5 0 0 0 - - -; +#X obj 221 604 f \$0; +#X obj 221 584 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 221 631 5 0 0 0 - - -; +#X floatatom 38 585 5 0 0 0 - - -; +#X floatatom 128 611 5 0 0 0 - - -; +#X obj 38 609 s \$0-foo; +#X obj 128 585 r \$0-foo; +#X obj 37 666 s 1012-foo; +#N canvas 318 78 289 202 sous-patch4 0; +#X obj 27 33 f \$0; +#X obj 27 13 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 27 60 5 0 0 0 - - -; +#X floatatom 117 47 5 0 0 0 - - -; +#X obj 117 21 r \$0-foo; +#X connect 0 0 2 0; +#X connect 1 0 0 0; +#X connect 4 0 3 0; +#X restore 153 666 pd sous-patch4; +#X text 34 538 \$0 : variable au hasard designee par pd au demarrage +\, qui certifie que la variable est unique dans tous les patchs; +#X text 37 516 LOCAL - variable unique/chaque demarrage; +#X text 34 809 Nous pouvons utiliser les arguments de l'abstraction +pour envoyer les valeures a ces fils.; +#X text 33 754 Dans PD \, chaque abstractions et sous-patchs ont des +parents. Le parent est le patch principal dans lequel est creer l'instance +de l'abstraction ou du sous-patch.; +#X floatatom 124 865 5 0 0 0 - - -; +#X floatatom 198 864 5 0 0 0 - - -; +#X floatatom 270 864 5 0 0 0 - - -; +#X obj 198 888 s 2-fils; +#X obj 270 889 s 3-petit-fils; +#X floatatom 132 980 5 0 0 0 - - -; +#X obj 132 1005 s 1-2-fils; +#X text 33 305 La portee d'un message peut etre GLOBAL/LOCAL/UNIQUE +:; +#X text 34 726 UNIQUE - heriter la variable des parents/ message unique +; +#X text 41 44 Utilisation des objets send et receive permet d'envoyer +des messages sans fils. Un peu comme une RADIO \, il faut que ces deux +objets ait le meme nom pour etre connecte.; +#X obj 45 864 mere 1; +#X obj 124 889 s 1-mere; +#X text 37 946 difficulte : 2 variables composent le nom du send/receive +; +#X obj 149 1338 dist; +#X obj 194 1338 remote; +#X obj 255 1338 matrix; +#X obj 21 1304 cnv 15 500 20 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 34 1306 ROUTING DES MESSAGES; +#X obj 30 1338 table routing; +#X obj 317 1338 OSCroute; +#X text 30 1037 Les signes dollar $ se placent toujours au debut du +symbol. Pour avoir plusieurs dollars \, on peut utiliser les abstractions +\, en les imbriquant les unes dans les autres avec \$1-maVariable. +une autre methode avec makefilename (voir 11-page.pd); +#X text 28 1366 voir 21-exercices.pd; +#X obj 29 1141 cnv 15 500 20 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 40 1142 RESEAU; +#X obj 44 1182 netreceive; +#X obj 128 1182 netsend; +#X obj 44 1219 OSCroute; +#X connect 4 0 10 0; +#X connect 5 0 21 0; +#X connect 6 0 22 0; +#X connect 11 0 12 0; +#X connect 13 0 14 0; +#X connect 16 0 15 0; +#X connect 18 0 17 0; +#X connect 23 0 31 0; +#X connect 24 0 26 0; +#X connect 25 0 24 0; +#X connect 27 0 29 0; +#X connect 30 0 28 0; +#X connect 37 0 48 0; +#X connect 38 0 40 0; +#X connect 39 0 41 0; +#X connect 42 0 43 0; diff --git a/doc/tutorials/intro/sorting_messages_by_selectors.pd b/doc/tutorials/intro/sorting_messages_by_selectors.pd new file mode 100644 index 00000000..266d0b04 --- /dev/null +++ b/doc/tutorials/intro/sorting_messages_by_selectors.pd @@ -0,0 +1,4 @@ +#N canvas 282 124 623 439 12; +#X obj -60 8 cnv 15 400 40 empty empty sorting_messages_by_type 20 +12 0 24 -228992 -66577 0; +#X text -50 63 comment; diff --git a/doc/tutorials/intro/sorting_messages_by_type.pd b/doc/tutorials/intro/sorting_messages_by_type.pd new file mode 100644 index 00000000..12e84c05 --- /dev/null +++ b/doc/tutorials/intro/sorting_messages_by_type.pd @@ -0,0 +1,47 @@ +#N canvas 565 106 627 443 12; +#X obj -60 8 cnv 15 400 40 empty empty sorting_messages_by_type 20 +12 0 24 -228992 -66577 0; +#X text -50 63 When processing messages \, some operations should only +be applied to messages of a certain type. [route] allows you to sort +messages by type:; +#X floatatom 168 339 5 0 0 0 - - -; +#X symbolatom 237 338 10 0 0 0 - - -; +#X obj 100 359 bng 15 250 50 0 empty empty bang -6 23 1 12 -262144 +-1 -1; +#X obj 100 315 route bang float symbol list; +#X obj 168 359 bng 15 250 50 0 empty empty float -4 23 1 12 -262144 +-1 -1; +#X obj 237 359 bng 15 250 50 0 empty empty symbol -12 23 1 12 -262144 +-1 -1; +#X obj 306 359 bng 15 250 50 0 empty empty list -2 23 1 12 -262144 +-1 -1; +#X obj 375 359 bng 15 250 50 0 empty empty selector_series -18 23 1 +12 -262144 -1 -1; +#X msg -43 173 bang; +#X msg 34 196 642.3; +#X msg 109 170 symbol moshimoshi; +#X msg 129 194 symbol sayonara; +#X obj -9 198 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 331 171 1 2 3; +#X msg 344 194 5 for free!; +#X msg 345 228 list here we go...; +#X msg 345 261 not a list? nope...; +#X msg 11 172 float 5; +#X connect 2 0 6 0; +#X connect 3 0 7 0; +#X connect 5 0 4 0; +#X connect 5 1 2 0; +#X connect 5 2 3 0; +#X connect 5 3 8 0; +#X connect 5 4 9 0; +#X connect 10 0 5 0; +#X connect 11 0 5 0; +#X connect 12 0 5 0; +#X connect 13 0 5 0; +#X connect 14 0 5 0; +#X connect 15 0 5 0; +#X connect 16 0 5 0; +#X connect 17 0 5 0; +#X connect 18 0 5 0; +#X connect 19 0 5 0; diff --git a/doc/tutorials/intro/symbol_conversion.pd b/doc/tutorials/intro/symbol_conversion.pd new file mode 100644 index 00000000..63c1446b --- /dev/null +++ b/doc/tutorials/intro/symbol_conversion.pd @@ -0,0 +1,20 @@ +#N canvas 68 53 638 461 12; +#X obj 10 -38 cnv 15 400 40 empty empty symbol_conversion 20 12 0 24 +-228992 -66577 0; +#X symbolatom 73 319 10 0 0 0 - - -; +#X text 12 27 A symbolic atom is not the same thing as a symbol message. +This is a key distinction which becomes especially relevant when processing +more complicated messages.; +#X msg 32 169 nope; +#X obj 90 272 symbol; +#X msg 90 226 yes; +#X text 90 169 <-- click and look at Pd window; +#X text 11 95 In addition to being a storage object \, [symbol] also +serves as a conversion object. Many objects only receive symbolic data +in the form of a symbol message.; +#X text 186 319 <-- expects a symbol message; +#X text 159 274 <-- converts symbolic input to symbol message; +#X text 139 225 <-- click to see this one get converted; +#X connect 3 0 1 0; +#X connect 4 0 1 0; +#X connect 5 0 4 0; -- cgit v1.2.1