diff options
author | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2006-04-13 05:04:52 +0000 |
---|---|---|
committer | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2006-04-13 05:04:52 +0000 |
commit | 54d61372a2c35f43df7ac398da1a5d7bd37da857 (patch) | |
tree | cb49a92d817603f0f26f290a9cbcc613ae7dbbf3 /doc | |
parent | fbc1e03da8fa727349833e4ebb475dc2b7e06ade (diff) |
got the start of a good intro tutorial, but its lacking some good, simple exercises
svn path=/trunk/; revision=4897
Diffstat (limited to 'doc')
-rw-r--r-- | doc/tutorials/intro/0.controlling_dsp_processing.pd | 30 | ||||
-rw-r--r-- | doc/tutorials/intro/02.getting_help.pd | 2 | ||||
-rw-r--r-- | doc/tutorials/intro/05.connections.pd | 25 | ||||
-rw-r--r-- | doc/tutorials/intro/06.messages.pd | 42 | ||||
-rw-r--r-- | doc/tutorials/intro/07.EXERCISE-make_your_first_patch.pd (renamed from doc/tutorials/intro/06.make_your_first_patch.pd) | 6 | ||||
-rw-r--r-- | doc/tutorials/intro/08.bang.pd (renamed from doc/tutorials/intro/07.bang.pd) | 0 | ||||
-rw-r--r-- | doc/tutorials/intro/09.event_driven_processing.pd | 74 | ||||
-rw-r--r-- | doc/tutorials/intro/10.counters.pd | 44 | ||||
-rw-r--r-- | doc/tutorials/intro/11.hot_and_cold_inlets.pd (renamed from doc/tutorials/intro/08.hot_and_cold_inlets.pd) | 2 | ||||
-rw-r--r-- | doc/tutorials/intro/12.right_to_left_order.pd (renamed from doc/tutorials/intro/0.right_to_left_order.pd) | 24 | ||||
-rw-r--r-- | doc/tutorials/intro/13.ordering_messages.pd (renamed from doc/tutorials/intro/ordering_messages.pd) | 10 | ||||
-rw-r--r-- | doc/tutorials/intro/14.depth_first.pd (renamed from doc/tutorials/intro/depth_first.pd) | 0 | ||||
-rw-r--r-- | doc/tutorials/intro/14.subpatches.pd | 1 | ||||
-rw-r--r-- | doc/tutorials/intro/15.storage_objects.pd (renamed from doc/tutorials/intro/10.storage_objects.pd) | 0 | ||||
-rw-r--r-- | doc/tutorials/intro/16.atoms.pd (renamed from doc/tutorials/intro/11.atoms.pd) | 0 | ||||
-rw-r--r-- | doc/tutorials/intro/17.atomic_messages.pd (renamed from doc/tutorials/intro/12.atomic_messages.pd) | 0 | ||||
-rw-r--r-- | doc/tutorials/intro/18.selectors.pd (renamed from doc/tutorials/intro/selectors.pd) | 0 | ||||
-rw-r--r-- | doc/tutorials/intro/19.subpatches.pd | 26 | ||||
-rw-r--r-- | doc/tutorials/intro/20.inlets_and_outlets.pd | 69 | ||||
-rw-r--r-- | doc/tutorials/intro/21.outlet_order.pd | 32 | ||||
-rw-r--r-- | doc/tutorials/intro/22.Example-all_just_data.pd (renamed from doc/tutorials/intro/0.all_just_data.pd) | 35 | ||||
-rw-r--r-- | doc/tutorials/intro/23.EXERCISE-hmmm.pd (renamed from doc/tutorials/intro/0.exercise-template.pd) | 14 | ||||
-rw-r--r-- | doc/tutorials/intro/24.guis.pd (renamed from doc/tutorials/intro/guis.pd) | 0 | ||||
-rw-r--r-- | doc/tutorials/intro/25.gui_objects.pd (renamed from doc/tutorials/intro/gui_objects.pd) | 0 | ||||
-rw-r--r-- | doc/tutorials/intro/26.nervous_guis.pd | 337 | ||||
-rw-r--r-- | doc/tutorials/intro/Attic/trigger_conversion.pd | 49 | ||||
-rw-r--r-- | doc/tutorials/intro/TEMPLATE.pd | 4 | ||||
-rw-r--r-- | doc/tutorials/intro/TODO | 58 | ||||
-rw-r--r-- | doc/tutorials/intro/counters.pd | 35 | ||||
-rw-r--r-- | doc/tutorials/intro/determinism.pd | 5 | ||||
-rw-r--r-- | doc/tutorials/intro/init_to_0.pd (renamed from doc/tutorials/intro/0.init_to_0.pd) | 0 | ||||
-rw-r--r-- | doc/tutorials/intro/outlet_order.pd | 21 | ||||
-rw-r--r-- | doc/tutorials/intro/pure_data_files.pd (renamed from doc/tutorials/intro/22.pure_data_files.pd) | 4 | ||||
-rw-r--r-- | doc/tutorials/intro/right_to_left_order.pd | 17 | ||||
-rw-r--r-- | doc/tutorials/intro/send_messages_to_pd.pd (renamed from doc/tutorials/intro/21.send_messages_to_pd.pd) | 2 | ||||
-rw-r--r-- | doc/tutorials/intro/shell_sketch.pd (renamed from doc/tutorials/intro/0.shell_sketch.pd) | 0 | ||||
-rw-r--r-- | doc/tutorials/intro/trigger_conversion.pd | 49 |
37 files changed, 792 insertions, 225 deletions
diff --git a/doc/tutorials/intro/0.controlling_dsp_processing.pd b/doc/tutorials/intro/0.controlling_dsp_processing.pd deleted file mode 100644 index 7ce5147f..00000000 --- a/doc/tutorials/intro/0.controlling_dsp_processing.pd +++ /dev/null @@ -1,30 +0,0 @@ -#N canvas 361 163 475 498 10; -#X text 117 189 (screenshot of main Pd window); -#X msg 59 321 \; pd dsp 1; -#X msg 126 321 \; pd dsp 0; -#X text 19 252 As with most programming languages \, in Pd "1" means -on \, and "0" means off.; -#X obj 211 314 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 -1; -#X text 28 137 To see whether the DSP is on or off \, look at the checkbox -on the main Pd window. You can also turn the DSP on and off using that -checkbox.; -#X obj 370 372 osc~ 250; -#X obj 356 404 dac~; -#X text 24 20 You can turn the processing of audio data on and off. -In order for your patch to run \, you need to make sure that "compute -audio" is turned on. This is also known as the "DSP". There are a couple -ways of turning the "DSP" on and off.; -#X text 23 100 - TODO: is Gem or PDP computation also controlled by -the DSP?; -#X text 23 407 There are also keyboard shortcuts:; -#X text 34 459 (On MacOS X \, you can also use Cmd-. and Cmd-/); -#X text 41 425 off: Ctrl-.; -#X text 48 440 on: Ctrl-/; -#X text 73 84 - TODO: messages are always processed; -#X floatatom 211 339 5 0 0 0 - - -; -#X obj 277 332 pddp/dsp; -#X text 271 311 [pddp/dsp]; -#X connect 4 0 15 0; -#X connect 6 0 7 0; -#X connect 6 0 7 1; diff --git a/doc/tutorials/intro/02.getting_help.pd b/doc/tutorials/intro/02.getting_help.pd index 1c07f70b..62b30923 100644 --- a/doc/tutorials/intro/02.getting_help.pd +++ b/doc/tutorials/intro/02.getting_help.pd @@ -1,4 +1,4 @@ -#N canvas 111 50 650 395 12; +#N canvas 111 50 654 399 12; #X msg 179 150; #X obj 61 150 trigger; #X text 54 28 comment; diff --git a/doc/tutorials/intro/05.connections.pd b/doc/tutorials/intro/05.connections.pd index 2da16bbe..9401b7cf 100644 --- a/doc/tutorials/intro/05.connections.pd +++ b/doc/tutorials/intro/05.connections.pd @@ -1,23 +1,26 @@ -#N canvas 100 133 652 445 12; -#X text 14 105 Pd patches are always running and changes take effect +#N canvas 576 160 660 453 12; +#X text 12 132 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 179 tgl 30 0 empty empty start 2 15 1 12 -24198 -1 -1 1 1 ; -#X obj 24 209 metro 100; -#X obj 24 240 random 100; -#X text 70 169 <-- click here to start; +#X obj 24 221 metro 100; +#X obj 24 248 random 100; +#X text 70 183 <-- 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 text 195 238 next \, make sure you are in edit mode; +#X obj 39 418 pddp/pddplink http://crca.ucsd.edu/~msp/Pd_documentation/x2.htm#s2.6 +; +#X text 34 372 Disconnect the cable by clicking on it to highlight +it \, then press "backspace" on a PC \, or "delete" on a Mac.; +#X text 11 53 One path for objects to communicate is thru connections +\, called cords or cables. Connections are always made from the inlet +to the outlet since that is the direction data flows in Pd.; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 5 0 1 0; diff --git a/doc/tutorials/intro/06.messages.pd b/doc/tutorials/intro/06.messages.pd new file mode 100644 index 00000000..650f6ded --- /dev/null +++ b/doc/tutorials/intro/06.messages.pd @@ -0,0 +1,42 @@ +#N canvas 364 149 628 453 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; +#N canvas 0 22 466 316 myObject 0; +#X obj 70 24 inlet; +#X obj 68 243 outlet; +#X obj 76 86 route say; +#X obj 167 125 bang; +#X obj 57 130 symbol; +#X msg 167 152 symbol ?#$%!@$^!; +#X connect 0 0 2 0; +#X connect 2 0 4 0; +#X connect 2 1 3 0; +#X connect 3 0 5 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X restore 354 250 pd myObject; +#X symbolatom 355 306 10 0 0 0 - - -; +#X obj 132 249 + 1; +#X msg 131 161 1; +#X floatatom 131 306 5 0 0 0 - - -; +#X text 183 161 <-- messages -->; +#X text 187 250 <-- objects -->; +#X msg 370 197 do as I say!; +#X obj 51 414 pddp/pddplink http://crca.ucsd.edu/~msp/Pd_documentation/x2.htm#s3 +; +#X text 20 64 Objects respond to messages received on their inlets +\, and output messages on their outlets. These messages can be anything +from data to commands.; +#X text 124 128 data; +#X text 359 127 commands; +#X text 18 394 For more on messages:; +#X text 19 341 All communication within Pd is in the form of messages +\, including when the user is controlling the program.; +#X msg 143 189 2; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 6 0; +#X connect 5 0 4 0; +#X connect 9 0 2 0; +#X connect 16 0 4 0; diff --git a/doc/tutorials/intro/06.make_your_first_patch.pd b/doc/tutorials/intro/07.EXERCISE-make_your_first_patch.pd index 50987d70..02cdadcf 100644 --- a/doc/tutorials/intro/06.make_your_first_patch.pd +++ b/doc/tutorials/intro/07.EXERCISE-make_your_first_patch.pd @@ -1,6 +1,6 @@ -#N canvas 359 93 682 502 12; -#X obj 8 10 cnv 15 400 40 empty empty make_your_first_patch 20 12 0 -24 -228992 -66577 0; +#N canvas 359 93 686 506 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 on the right:; #X text 204 196 2- make a new object box \, in it \, type: symbol; diff --git a/doc/tutorials/intro/07.bang.pd b/doc/tutorials/intro/08.bang.pd index 1cc8ce8d..1cc8ce8d 100644 --- a/doc/tutorials/intro/07.bang.pd +++ b/doc/tutorials/intro/08.bang.pd diff --git a/doc/tutorials/intro/09.event_driven_processing.pd b/doc/tutorials/intro/09.event_driven_processing.pd new file mode 100644 index 00000000..7b892c61 --- /dev/null +++ b/doc/tutorials/intro/09.event_driven_processing.pd @@ -0,0 +1,74 @@ +#N canvas 352 165 632 457 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 +if there no events. There is nothing happening in the patches below +until you click on the messages (the bangs at the bottom illustrate +that):; +#X obj 113 324 tgl 20 0 empty empty empty 0 -6 0 8 -24198 -1 -1 0 1 +; +#X obj 113 372 float; +#X obj 170 372 + 1; +#X floatatom 113 397 5 0 0 0 - - -; +#X obj 113 418 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 113 348 metro 1000; +#X text 18 265 Pd is always ready to process messages \, you don't +need to tell it to run. You can keep things running by sending a stream +of events:; +#X obj 384 316 bng 20 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 +-1; +#X obj 385 353 float; +#X obj 442 353 + 1; +#X floatatom 385 378 5 0 0 0 - - -; +#X obj 385 399 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 54 145 cnv 15 80 30 empty empty empty 20 12 0 14 -225271 -66577 +0; +#X obj 236 140 cnv 15 80 30 empty empty empty 20 12 0 14 -225271 -66577 +0; +#X obj 399 132 cnv 15 80 30 empty empty empty 20 12 0 14 -225271 -66577 +0; +#X obj 72 181 + 1; +#X floatatom 72 207 5 0 0 0 - - -; +#X msg 72 149 1; +#X msg 237 147 convert; +#X obj 237 178 symbol; +#X symbolatom 237 206 10 0 0 0 - - -; +#X obj 72 234 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 237 233 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 421 168 until; +#X msg 421 137 100; +#X obj 421 198 float; +#X obj 478 198 + 1; +#X floatatom 421 226 5 0 0 0 - - -; +#X obj 421 247 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 277 364 delay 1000; +#X connect 2 0 7 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 4 0 3 1; +#X connect 5 0 6 0; +#X connect 7 0 3 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 10 1; +#X connect 12 0 13 0; +#X connect 13 0 31 0; +#X connect 17 0 18 0; +#X connect 18 0 23 0; +#X connect 19 0 17 0; +#X connect 20 0 21 0; +#X connect 21 0 22 0; +#X connect 22 0 24 0; +#X connect 25 0 27 0; +#X connect 26 0 25 0; +#X connect 27 0 28 0; +#X connect 27 0 29 0; +#X connect 28 0 27 1; +#X connect 29 0 30 0; +#X connect 31 0 10 0; diff --git a/doc/tutorials/intro/10.counters.pd b/doc/tutorials/intro/10.counters.pd new file mode 100644 index 00000000..30d3941a --- /dev/null +++ b/doc/tutorials/intro/10.counters.pd @@ -0,0 +1,44 @@ +#N canvas 400 118 624 449 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 -261681 -66577 +0; +#X obj 174 382 f; +#X obj 209 382 + 1; +#X obj 157 219 float; +#X floatatom 120 246 5 0 0 0 - - -; +#X msg 121 137 1; +#X obj 120 219 +; +#X msg 157 189 0; +#X msg 133 160 -1; +#X text 167 138 increment; +#X text 172 161 decrement; +#X text 195 187 reset; +#X floatatom 346 244 5 0 0 0 - - -; +#X msg 404 180 0; +#X text 395 137 increment; +#X obj 346 216 float; +#X obj 404 216 + 1; +#X msg 347 138 bang; +#X text 278 377 DANGER! infinite loop!; +#X text 20 78 Counters are used a lot when programming Pd. Here are +two examples of simple counters that you will see frequently.; +#X text 442 180 reset; +#X text 20 276 Pd is designed to be as flexible and open as possible. +This means that it will let you crash your computer. For example \, +never start a counter like this \, it will crash your computer!; +#X connect 2 0 3 0; +#X connect 3 0 2 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 8 0 7 0; +#X connect 9 0 7 0; +#X connect 14 0 17 0; +#X connect 14 0 16 0; +#X connect 16 0 13 0; +#X connect 16 0 17 0; +#X connect 17 0 16 1; +#X connect 18 0 16 0; diff --git a/doc/tutorials/intro/08.hot_and_cold_inlets.pd b/doc/tutorials/intro/11.hot_and_cold_inlets.pd index 06a8ac02..9f58000b 100644 --- a/doc/tutorials/intro/08.hot_and_cold_inlets.pd +++ b/doc/tutorials/intro/11.hot_and_cold_inlets.pd @@ -1,4 +1,4 @@ -#N canvas 205 66 679 541 12; +#N canvas 205 66 683 545 12; #X obj 19 243 +; #X floatatom 19 272 5 0 0 0 - - -; #X msg 19 179 1; diff --git a/doc/tutorials/intro/0.right_to_left_order.pd b/doc/tutorials/intro/12.right_to_left_order.pd index cb990c62..b746cbdc 100644 --- a/doc/tutorials/intro/0.right_to_left_order.pd +++ b/doc/tutorials/intro/12.right_to_left_order.pd @@ -1,7 +1,4 @@ -#N canvas 406 232 616 416 12; -#X text 10 110 The [trigger] object is used to enforce execution order. -If you need things to run in a certain order \, then you use a [trigger]. -; +#N canvas 406 232 624 424 12; #X obj 165 177 bng 25 250 50 0 empty empty empty -2 -8 1 10 -24198 -1 -1; #X obj 165 217 trigger bang bang bang; @@ -14,11 +11,16 @@ If you need things to run in a certain order \, then you use a [trigger]. #X text 212 180 <-- click here \,; #X text 10 65 In Pd \, you read a patch from right to left \, from top to bottom. Objects also output from right to left; -#X text 89 380 then check the Pd window to see the order.; -#X connect 1 0 2 0; +#X text 89 361 then check the Pd window to see the order.; +#X obj 43 386 pddp/pddplink http://crca.ucsd.edu/~msp/Pd_documentation/x2.htm#s3.3 +; +#X text 10 110 The [trigger] object is used to enforce execution order. +If you need things to run in a certain sequence \, then you use a [trigger]. +; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 1 1 3 0; +#X connect 1 2 2 0; #X connect 2 0 5 0; -#X connect 2 1 4 0; -#X connect 2 2 3 0; -#X connect 3 0 6 0; -#X connect 4 0 6 0; -#X connect 5 0 6 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; diff --git a/doc/tutorials/intro/ordering_messages.pd b/doc/tutorials/intro/13.ordering_messages.pd index b7d454db..cbc193d7 100644 --- a/doc/tutorials/intro/ordering_messages.pd +++ b/doc/tutorials/intro/13.ordering_messages.pd @@ -1,5 +1,5 @@ #N canvas 542 117 623 439 12; -#X obj -60 8 cnv 15 400 40 empty empty ordering_messages 20 12 0 24 +#X obj 10 10 cnv 15 400 40 empty empty ordering_messages 20 12 0 24 -228992 -66577 0; #X msg 395 249 now; #X msg 316 250 this; @@ -9,14 +9,14 @@ #X msg 276 391 sense now this; #X obj 157 292 symbol; #X msg 159 151 bang; -#X msg -27 177 bang; +#X msg 10 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 text -18 393 look here for the result -->; -#X text -50 62 Officially \, the execution order in Pd is undefined. +#X text 10 393 look here for the result -->; +#X text 10 62 Officially \, the execution order in Pd is undefined. ; -#X text -50 88 The [trigger] object allows you to specify the order +#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 connect 1 0 7 0; diff --git a/doc/tutorials/intro/depth_first.pd b/doc/tutorials/intro/14.depth_first.pd index 14bb4062..14bb4062 100644 --- a/doc/tutorials/intro/depth_first.pd +++ b/doc/tutorials/intro/14.depth_first.pd diff --git a/doc/tutorials/intro/14.subpatches.pd b/doc/tutorials/intro/14.subpatches.pd deleted file mode 100644 index 154bae2d..00000000 --- a/doc/tutorials/intro/14.subpatches.pd +++ /dev/null @@ -1 +0,0 @@ -#N canvas 0 22 454 304 12; diff --git a/doc/tutorials/intro/10.storage_objects.pd b/doc/tutorials/intro/15.storage_objects.pd index d5ca3016..d5ca3016 100644 --- a/doc/tutorials/intro/10.storage_objects.pd +++ b/doc/tutorials/intro/15.storage_objects.pd diff --git a/doc/tutorials/intro/11.atoms.pd b/doc/tutorials/intro/16.atoms.pd index 8276758e..8276758e 100644 --- a/doc/tutorials/intro/11.atoms.pd +++ b/doc/tutorials/intro/16.atoms.pd diff --git a/doc/tutorials/intro/12.atomic_messages.pd b/doc/tutorials/intro/17.atomic_messages.pd index b76ee863..b76ee863 100644 --- a/doc/tutorials/intro/12.atomic_messages.pd +++ b/doc/tutorials/intro/17.atomic_messages.pd diff --git a/doc/tutorials/intro/selectors.pd b/doc/tutorials/intro/18.selectors.pd index 363971df..363971df 100644 --- a/doc/tutorials/intro/selectors.pd +++ b/doc/tutorials/intro/18.selectors.pd diff --git a/doc/tutorials/intro/19.subpatches.pd b/doc/tutorials/intro/19.subpatches.pd new file mode 100644 index 00000000..fe73255c --- /dev/null +++ b/doc/tutorials/intro/19.subpatches.pd @@ -0,0 +1,26 @@ +#N canvas 211 67 624 449 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 +object is an idea that is bundled up into an easy-to-use package. You +should make encapsulated your ideas. Subpatches are the easiest way +to do this.; +#N canvas 394 144 474 324 what's 0; +#X obj 140 91 loadbang; +#X obj 139 149 float; +#X obj 198 149 + 1; +#X floatatom 139 221 5 0 0 0 - - -; +#X obj 30 149 delay 1000; +#X text 39 39 just counting away in here...; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 0 3 0; +#X connect 1 0 4 0; +#X connect 2 0 1 1; +#X connect 4 0 1 0; +#X restore 192 193 pd what's in here?; +#X text 19 271 To make a subpatch \, create an object that started +with the word "pd" \, then type anything after that to identify it. +; +#X text 17 325 A subpatch is part of the same file \, its just a way +of organizing the logic of a program.; diff --git a/doc/tutorials/intro/20.inlets_and_outlets.pd b/doc/tutorials/intro/20.inlets_and_outlets.pd new file mode 100644 index 00000000..7f633d20 --- /dev/null +++ b/doc/tutorials/intro/20.inlets_and_outlets.pd @@ -0,0 +1,69 @@ +#N canvas 82 134 632 457 12; +#X obj 10 10 cnv 15 400 40 empty empty inlets_and_outlets 20 12 0 24 +-228992 -66577 0; +#X text 14 72 When making your own objects and subpatchs \, you can +create inlets and outlets using [inlet] and [outlet].; +#N canvas 0 22 707 378 look 0; +#X obj 24 34 inlet; +#X obj 238 47 inlet; +#X obj 469 41 inlet; +#X obj 251 304 outlet; +#X msg 469 175 I am the third inlet; +#X msg 242 145 I am the second inlet; +#X msg 24 94 I am the first inlet; +#X connect 0 0 6 0; +#X connect 1 0 5 0; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 5 0 3 0; +#X connect 6 0 3 0; +#X restore 32 162 pd look inside me; +#X obj 31 202 pddp/print_long; +#X obj 32 129 bng 20 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 +-1; +#X obj 114 129 bng 20 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 +-1; +#X obj 197 129 bng 20 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 +-1; +#N canvas 120 60 711 382 look 0; +#X obj 24 34 inlet; +#X obj 334 33 inlet; +#X obj 528 35 inlet; +#X obj 253 309 outlet; +#X msg 45 170 set; +#X obj 286 179 prepend add2; +#X msg 251 263; +#X obj 21 120 trigger bang bang anything; +#X connect 0 0 7 0; +#X connect 1 0 5 0; +#X connect 2 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 6 0; +#X connect 6 0 3 0; +#X connect 7 0 4 0; +#X connect 7 1 6 0; +#X connect 7 2 5 0; +#X restore 199 376 pd look inside me; +#X obj 198 416 pddp/print_long; +#X msg 200 327 smokin!; +#X msg 281 327 are; +#X msg 363 327 you; +#X text 17 259 The first inlet should be the hot inlet \, even in your +own patches. There are times when you need to make other inlets hot +\, but in general \, its a good rule to stick with.; +#X obj 332 126 cnv 15 220 120 empty empty empty 20 12 0 14 -233017 +-66577 0; +#X obj 347 132 inlet; +#X obj 348 218 outlet; +#X text 402 132 take in data; +#X text 361 173 do some stuff here; +#X text 418 217 output data; +#X connect 2 0 3 0; +#X connect 4 0 2 0; +#X connect 5 0 2 1; +#X connect 6 0 2 2; +#X connect 7 0 8 0; +#X connect 9 0 7 0; +#X connect 10 0 7 1; +#X connect 11 0 7 2; +#X connect 14 0 15 0; diff --git a/doc/tutorials/intro/21.outlet_order.pd b/doc/tutorials/intro/21.outlet_order.pd new file mode 100644 index 00000000..5aaf5c8b --- /dev/null +++ b/doc/tutorials/intro/21.outlet_order.pd @@ -0,0 +1,32 @@ +#N canvas 298 70 632 448 12; +#X text 223 149 <-- click here \,; +#X obj 8 10 cnv 15 400 40 empty empty outlet_order 20 12 0 24 -228992 +-66577 0; +#X msg 153 149 3 2 1; +#X obj 101 234 print último; +#X obj 388 234 print first; +#X obj 240 234 print nächste; +#X text 19 374 There are occasional exceptions where it makes sense +to break this convention. But you shouldn't do it unless it really +is necessary. This will save you in the long run.; +#X text 15 80 Just like the flow of programming in Pd \, the data should +be output from right to left.; +#N canvas 0 22 454 304 spread 0; +#X obj 68 2 inlet; +#X obj 38 235 outlet; +#X obj 201 235 outlet; +#X obj 345 235 outlet; +#X obj 66 109 unpack float float float; +#X connect 0 0 4 0; +#X connect 4 0 1 0; +#X connect 4 1 2 0; +#X connect 4 2 3 0; +#X restore 153 188 pd spread the love; +#X text 18 310 While there is nothing forcing you to output data to +the outlets in any order \, Pd has a very strong convention for how +data should be output from an object.; +#X text 175 259 now check the Pd window; +#X connect 2 0 8 0; +#X connect 8 0 3 0; +#X connect 8 1 5 0; +#X connect 8 2 4 0; diff --git a/doc/tutorials/intro/0.all_just_data.pd b/doc/tutorials/intro/22.Example-all_just_data.pd index 7dd958c6..aeb2c96c 100644 --- a/doc/tutorials/intro/0.all_just_data.pd +++ b/doc/tutorials/intro/22.Example-all_just_data.pd @@ -1,14 +1,14 @@ -#N canvas 585 87 498 434 10; +#N canvas 585 87 502 438 10; #X obj 180 406 import unauthorized Gem; -#X obj 154 102 grid grid1 200 0 199 200 0 199 1 1 1 10 10 276 240; +#X obj 154 102 grid grid1 200 0 199 200 0 199 1 1 1 10 10 113 347; #X obj 25 39 pddp/dsp; -#N canvas 446 285 646 466 guts 0; +#N canvas 446 285 662 482 guts 0; #X obj 20 10 inlet; #X obj 275 14 inlet; -#X obj 112 127 osc~; -#X obj 112 156 *~; -#X obj 149 98 / 200; -#X obj 110 185 dac~; +#X obj 78 108 osc~; +#X obj 78 137 *~; +#X obj 115 79 / 200; +#X obj 76 166 dac~; #X obj 444 54 receive pd; #X msg 340 154 create; #X msg 310 154 1; @@ -34,19 +34,23 @@ #X obj 181 251 / 200; #X obj 53 250 / 200; #X msg 394 154 dimen 200 200; -#X obj 112 51 + 250; -#X obj 149 137 line~; -#X msg 149 117 \$1 5; +#X obj 77 56 + 250; +#X obj 115 118 line~; +#X obj 161 59 bang; +#X msg 160 98 0 250; +#X msg 115 98 \$1 25; +#X obj 161 79 delay 200; #X connect 0 0 4 0; #X connect 0 0 27 0; #X connect 0 0 29 0; +#X connect 0 0 33 0; #X connect 1 0 26 0; #X connect 1 0 28 0; #X connect 1 0 31 0; #X connect 2 0 3 0; #X connect 3 0 5 0; #X connect 3 0 5 1; -#X connect 4 0 33 0; +#X connect 4 0 35 0; #X connect 6 0 15 0; #X connect 7 0 9 0; #X connect 8 0 9 0; @@ -76,14 +80,17 @@ #X connect 30 0 9 0; #X connect 31 0 2 0; #X connect 32 0 3 1; -#X connect 33 0 32 0; +#X connect 33 0 36 0; +#X connect 34 0 32 0; +#X connect 35 0 32 0; +#X connect 36 0 34 0; #X restore 256 320 pd guts; #X text 102 9 Its all just data. Use it however you want!; #X text 28 61 ^-- click here to turn it on and off; #X obj 154 344 nbx 5 24 -1e+37 1e+37 0 0 empty empty X -15 12 1 18 --166441 -1 -1 121 256; +-166441 -1 -1 0 256; #X obj 348 343 nbx 5 24 -1e+37 1e+37 0 0 empty empty Y -15 12 1 18 --166441 -1 -1 61 256; +-166441 -1 -1 0 256; #X text 14 121 click and drag in; #X text 14 137 this box ------->; #X connect 1 0 3 0; diff --git a/doc/tutorials/intro/0.exercise-template.pd b/doc/tutorials/intro/23.EXERCISE-hmmm.pd index 6250c858..909899f8 100644 --- a/doc/tutorials/intro/0.exercise-template.pd +++ b/doc/tutorials/intro/23.EXERCISE-hmmm.pd @@ -1,4 +1,4 @@ -#N canvas 552 273 483 299 10; +#N canvas 333 243 686 482 12; #N canvas 414 102 546 555 guts 0; #X msg 280 45 \; pd filename exercise-patch.pd /tmp \; #N canvas \; #X pop 1 \;; @@ -84,12 +84,14 @@ #X connect 20 0 1 0; #X connect 21 0 22 0; #X connect 22 0 8 0; -#X restore 290 216 pd guts; -#X msg 290 185 solve; -#X text 53 28 In the exercise patch \, connect the existing objects +#X restore 233 269 pd guts; +#X msg 233 242 solve; +#X text 32 64 In the exercise patch \, connect the existing objects so that you can control the frequency of the oscillator and hear the resulting sound.; -#X text 84 88 If you want help \, click the solve message below.; -#X msg 346 184 try again; +#X text 35 131 If you want help \, click the solve message below.; +#X msg 298 242 try again; +#X obj 11 10 cnv 15 600 40 empty empty EXERCISE-make_your_first_patch +20 12 0 24 -262131 -66577 0; #X connect 1 0 0 0; #X connect 4 0 0 1; diff --git a/doc/tutorials/intro/guis.pd b/doc/tutorials/intro/24.guis.pd index ca08bb3a..ca08bb3a 100644 --- a/doc/tutorials/intro/guis.pd +++ b/doc/tutorials/intro/24.guis.pd diff --git a/doc/tutorials/intro/gui_objects.pd b/doc/tutorials/intro/25.gui_objects.pd index 8a75061f..8a75061f 100644 --- a/doc/tutorials/intro/gui_objects.pd +++ b/doc/tutorials/intro/25.gui_objects.pd diff --git a/doc/tutorials/intro/26.nervous_guis.pd b/doc/tutorials/intro/26.nervous_guis.pd new file mode 100644 index 00000000..724fed59 --- /dev/null +++ b/doc/tutorials/intro/26.nervous_guis.pd @@ -0,0 +1,337 @@ +#N canvas 10 40 624 449 12; +#X obj 10 10 cnv 15 400 40 empty empty nervous_guis 20 12 0 24 -228992 +-66577 0; +#X obj 486 20 tgl 20 1 empty start_nervously1 start_it 8 -8 0 10 -24198 +-1 -250685 0 1; +#X obj 127 179 bng 16 1200 50 0 empty nerv_bng bang 8 -8 0 10 -91120 +-252939 -113209; +#X obj 112 346 hsl 116 29 0 127 0 0 empty nerv_hsl h-slider 8 -8 0 +10 -140002 -259981 -172176 2336 1; +#X obj 400 211 tgl 70 1 empty nerv_tgl toggle 8 -8 0 10 -77819 -177692 +-11757 0 1; +#X obj 370 329 vsl 8 81 0 127 0 0 empty nerv_vsl v-slider 8 -8 0 10 +-55101 -168903 -47444 1998 1; +#N canvas 135 99 386 473 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+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 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+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 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+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 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+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 486 46 pd control; +#X text 17 88 You can dynamically control just about everything about +most GUI objects.; +#X connect 1 0 6 0; diff --git a/doc/tutorials/intro/Attic/trigger_conversion.pd b/doc/tutorials/intro/Attic/trigger_conversion.pd index 3a183963..2f610ff5 100644 --- a/doc/tutorials/intro/Attic/trigger_conversion.pd +++ b/doc/tutorials/intro/Attic/trigger_conversion.pd @@ -1,28 +1,29 @@ -#N canvas 227 116 643 459 12; -#X obj -32 7 cnv 15 400 40 empty empty trigger_conversion 20 12 0 24 +#N canvas 227 116 647 463 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; -#X text -21 80 [trigger] can also do conversions in addition to ordering. -The keyword "anything" tells [trigger] to do no conversion.; #X msg 125 142 float 45.234; -#X floatatom 128 213 5 0 0 0 - - -; -#X floatatom 263 212 5 0 0 0 - - -; -#X obj 404 211 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +#X floatatom 126 223 5 0 0 0 - - -; +#X floatatom 258 222 5 0 0 0 - - -; +#X obj 391 221 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; -#X msg 10 296 12 45 blah; -#X msg 131 295 blah; -#X msg 189 296 123; -#X msg 233 295 symbol test; -#X obj 128 368 print bang; -#X obj 128 342 trigger bang anything; -#X obj 333 368 print anything; -#X connect 1 0 4 0; -#X connect 1 1 5 0; -#X connect 1 2 6 0; -#X connect 3 0 1 0; -#X connect 7 0 12 0; -#X connect 8 0 12 0; -#X connect 9 0 12 0; -#X connect 10 0 12 0; -#X connect 12 0 11 0; -#X connect 12 1 13 0; +#X msg 42 298 12 45 blah; +#X msg 163 297 blah; +#X msg 221 298 123; +#X msg 265 297 symbol test; +#X obj 160 370 print bang; +#X obj 160 344 trigger bang anything; +#X obj 365 370 print anything; +#X text 10 80 [trigger] can also do limited conversions in addition +to ordering. The keyword "anything" tells [trigger] to do no conversion. +; +#X connect 1 0 3 0; +#X connect 1 1 4 0; +#X connect 1 2 5 0; +#X connect 2 0 1 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 10 0; +#X connect 11 1 12 0; diff --git a/doc/tutorials/intro/TEMPLATE.pd b/doc/tutorials/intro/TEMPLATE.pd index 177b6f23..7f7dff3f 100644 --- a/doc/tutorials/intro/TEMPLATE.pd +++ b/doc/tutorials/intro/TEMPLATE.pd @@ -1,3 +1,3 @@ -#N canvas 21 40 639 455 12; -#X obj -34 8 cnv 15 400 40 empty empty TEMPLATE 20 12 0 24 -228992 +#N canvas 10 40 620 445 12; +#X obj 10 10 cnv 15 400 40 empty empty TEMPLATE 20 12 0 24 -228992 -66577 0; diff --git a/doc/tutorials/intro/TODO b/doc/tutorials/intro/TODO index 72bd2e8a..3f6d0141 100644 --- a/doc/tutorials/intro/TODO +++ b/doc/tutorials/intro/TODO @@ -12,7 +12,9 @@ - make looping sequence -File Order: +---------- +File Order +---------- - hello world - basic elements @@ -21,40 +23,64 @@ File Order: - objects - connections - messages -- make your first Pd patch +- EXERCISE: make your first Pd patch - bang +- event driven processing +- counters - hot and cold inlets +- right-to-left order +- ordering messages +- depth first - storage objects - atoms - atomic messages +- selectors +- subpatches +- inlets and outlets +- outlet order +- Example: its all just data +- guis +- gui objects +- nervous guis -Unsorted topics - -- arguments +- EXERCISE -- guis -- gui objects -- Example: its all just data -- Example: parazit +--------------- +Unsorted topics +--------------- -- right-to-left order -- depth first +- trigger conversions +- symbol conversion -- ordering messages +- arguments +- keywords -- math objects +- init to 0 +- math - expr -- subpatches -- inlets and outlets -- outlet order +- number limitations + +- timing/metro + +- writing objects in Pd (abstractions) - loading libraries - namespaces - import +- selectors +- multiple messages +- sends and receives +- sends in a message box + +- Example: parazit - send messages to Pd - pure data files + + + +data structures tutorial? diff --git a/doc/tutorials/intro/counters.pd b/doc/tutorials/intro/counters.pd deleted file mode 100644 index fcb19016..00000000 --- a/doc/tutorials/intro/counters.pd +++ /dev/null @@ -1,35 +0,0 @@ -#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/determinism.pd b/doc/tutorials/intro/determinism.pd new file mode 100644 index 00000000..ffa72d70 --- /dev/null +++ b/doc/tutorials/intro/determinism.pd @@ -0,0 +1,5 @@ +#N canvas 10 40 628 453 12; +#X obj 10 10 cnv 15 400 40 empty empty determinism 20 12 0 24 -228992 +-66577 0; +#X obj 31 229 pddp/pddplink http://crca.ucsd.edu/~msp/Pd_documentation/x2.htm#s5.3 +; diff --git a/doc/tutorials/intro/0.init_to_0.pd b/doc/tutorials/intro/init_to_0.pd index bc2573c8..bc2573c8 100644 --- a/doc/tutorials/intro/0.init_to_0.pd +++ b/doc/tutorials/intro/init_to_0.pd diff --git a/doc/tutorials/intro/outlet_order.pd b/doc/tutorials/intro/outlet_order.pd deleted file mode 100644 index d13b1d40..00000000 --- a/doc/tutorials/intro/outlet_order.pd +++ /dev/null @@ -1,21 +0,0 @@ -#N canvas 298 70 628 444 12; -#X text 198 212 <-- click here \,; -#X obj 128 251 unpack float float float; -#X obj 8 10 cnv 15 400 40 empty empty outlet_order 20 12 0 24 -228992 --66577 0; -#X msg 128 212 3 2 1; -#X obj 105 293 print último; -#X obj 392 293 print first; -#X obj 244 293 print nächste; -#X text 18 363 There are occasional exceptions where it makes sense -to break this convention. But you shouldn't do it unless it really -is necessary. This will save you in the long run.; -#X text 15 68 While there is nothing forcing you to output data to -the outlets in any order \, Pd has a very strong convention for how -data should be output from an object.; -#X text 14 130 Just like the flow of programming in Pd \, the data -should be output from right to left:; -#X connect 1 0 4 0; -#X connect 1 1 6 0; -#X connect 1 2 5 0; -#X connect 3 0 1 0; diff --git a/doc/tutorials/intro/22.pure_data_files.pd b/doc/tutorials/intro/pure_data_files.pd index 2061d910..f6a0d832 100644 --- a/doc/tutorials/intro/22.pure_data_files.pd +++ b/doc/tutorials/intro/pure_data_files.pd @@ -1,4 +1,4 @@ -#N canvas 615 56 576 539 10; +#N canvas 615 56 580 543 10; #X obj 191 249 textfile; #X obj 111 279 print all; #X msg 100 223 bang; @@ -12,7 +12,7 @@ #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 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; diff --git a/doc/tutorials/intro/right_to_left_order.pd b/doc/tutorials/intro/right_to_left_order.pd deleted file mode 100644 index bd2522f2..00000000 --- a/doc/tutorials/intro/right_to_left_order.pd +++ /dev/null @@ -1,17 +0,0 @@ -#N canvas 298 70 636 452 12; -#X text 196 193 <-- click here \,; -#X obj 126 242 unpack float float float; -#X obj 8 10 cnv 15 400 40 empty empty right_to_left_order 20 12 0 24 --228992 -66577 0; -#X msg 126 193 3 2 1; -#X text 14 94 Objects in Pd output there data in right-to-left order. -In general \, the flow of data is from top to bottom \, from right -to left.; -#X text 100 356 now look in the Pd window for the output; -#X obj 227 306 print nächste; -#X obj 87 307 print último; -#X obj 378 306 print first; -#X connect 1 0 7 0; -#X connect 1 1 6 0; -#X connect 1 2 8 0; -#X connect 3 0 1 0; diff --git a/doc/tutorials/intro/21.send_messages_to_pd.pd b/doc/tutorials/intro/send_messages_to_pd.pd index deb05501..f0961a6e 100644 --- a/doc/tutorials/intro/21.send_messages_to_pd.pd +++ b/doc/tutorials/intro/send_messages_to_pd.pd @@ -1,4 +1,4 @@ -#N canvas 476 37 651 588 12; +#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; diff --git a/doc/tutorials/intro/0.shell_sketch.pd b/doc/tutorials/intro/shell_sketch.pd index 31cffaa6..31cffaa6 100644 --- a/doc/tutorials/intro/0.shell_sketch.pd +++ b/doc/tutorials/intro/shell_sketch.pd diff --git a/doc/tutorials/intro/trigger_conversion.pd b/doc/tutorials/intro/trigger_conversion.pd index 3a183963..2f610ff5 100644 --- a/doc/tutorials/intro/trigger_conversion.pd +++ b/doc/tutorials/intro/trigger_conversion.pd @@ -1,28 +1,29 @@ -#N canvas 227 116 643 459 12; -#X obj -32 7 cnv 15 400 40 empty empty trigger_conversion 20 12 0 24 +#N canvas 227 116 647 463 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; -#X text -21 80 [trigger] can also do conversions in addition to ordering. -The keyword "anything" tells [trigger] to do no conversion.; #X msg 125 142 float 45.234; -#X floatatom 128 213 5 0 0 0 - - -; -#X floatatom 263 212 5 0 0 0 - - -; -#X obj 404 211 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +#X floatatom 126 223 5 0 0 0 - - -; +#X floatatom 258 222 5 0 0 0 - - -; +#X obj 391 221 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; -#X msg 10 296 12 45 blah; -#X msg 131 295 blah; -#X msg 189 296 123; -#X msg 233 295 symbol test; -#X obj 128 368 print bang; -#X obj 128 342 trigger bang anything; -#X obj 333 368 print anything; -#X connect 1 0 4 0; -#X connect 1 1 5 0; -#X connect 1 2 6 0; -#X connect 3 0 1 0; -#X connect 7 0 12 0; -#X connect 8 0 12 0; -#X connect 9 0 12 0; -#X connect 10 0 12 0; -#X connect 12 0 11 0; -#X connect 12 1 13 0; +#X msg 42 298 12 45 blah; +#X msg 163 297 blah; +#X msg 221 298 123; +#X msg 265 297 symbol test; +#X obj 160 370 print bang; +#X obj 160 344 trigger bang anything; +#X obj 365 370 print anything; +#X text 10 80 [trigger] can also do limited conversions in addition +to ordering. The keyword "anything" tells [trigger] to do no conversion. +; +#X connect 1 0 3 0; +#X connect 1 1 4 0; +#X connect 1 2 5 0; +#X connect 2 0 1 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 10 0; +#X connect 11 1 12 0; |