#N canvas 504 174 282 454 10; #N canvas 280 124 472 552 MESSAGE_TYPES 0; #X floatatom 97 75 5 0 0 0 - - -; #X obj 20 458 print BANG; #X obj 67 437 print FLOAT; #X obj 115 414 print SYMBOL; #X obj 163 393 print LIST; #X text 219 68 float; #X symbolatom 146 116 10 0 0 0 - - -; #X text 242 123 symbol; #X obj 79 74 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X obj 20 14 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 38 13 bang; #X obj 79 55 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X text 84 12 bang; #X msg 138 74 23.15; #X obj 211 372 print ANYTHING; #X msg 146 134 symbol yoyo; #X msg 186 171 1 2 4; #X msg 185 212 list eins two; #X msg 185 192 123 cinq; #X text 285 190 list; #X msg 205 265 pd is fun; #X msg 205 290 x 1 2 3 4 5 67; #X obj 20 327 route bang float symbol list; #X text 314 273 anything; #X connect 0 0 22 0; #X connect 6 0 22 0; #X connect 8 0 22 0; #X connect 9 0 22 0; #X connect 10 0 22 0; #X connect 11 0 22 0; #X connect 13 0 22 0; #X connect 15 0 22 0; #X connect 16 0 22 0; #X connect 17 0 22 0; #X connect 18 0 22 0; #X connect 20 0 22 0; #X connect 21 0 22 0; #X connect 22 0 1 0; #X connect 22 1 2 0; #X connect 22 2 3 0; #X connect 22 3 4 0; #X connect 22 4 14 0; #X restore 14 95 pd MESSAGE_TYPES; #N canvas 705 165 444 294 GUI_USE 0; #X floatatom 14 22 5 0 0 0 - - -; #X text 62 21 <- drag me; #X obj 14 217 print; #X symbolatom 33 52 10 0 0 0 - - -; #X text 112 52 <- type me; #X obj 45 81 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 64 82 <- click me; #X obj 60 106 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X msg 79 129 uno deux three; #X text 199 105 <- drag me; #X obj 111 159 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X text 191 130 <- click me; #X text 135 159 <- click me; #X obj 118 187 hradio 15 1 0 8 empty empty empty 0 -8 0 10 -262144 -1 -1 0; #X text 245 187 <- click me; #X connect 0 0 2 0; #X connect 3 0 2 0; #X connect 5 0 2 0; #X connect 7 0 2 0; #X connect 8 0 2 0; #X connect 10 0 2 0; #X connect 13 0 2 0; #X restore 14 69 pd GUI_USE; #N canvas 590 220 442 292 GUI_ELEMENTS 0; #X obj 20 13 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X obj 22 38 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 0 1; #X text 49 38 <- vertical slider (ctrl-shift-v); #X text 163 13 <- horizontal slider (ctrl-shift-h); #X obj 76 71 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 99 69 <- bang (ctrl-shift-b); #X obj 76 100 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X text 100 100 <- toggle (ctrl-shit-t); #X obj 67 137 vradio 15 1 0 8 empty empty empty 0 -8 0 10 -262144 -1 -1 0; #X text 90 143 <-horizontal radio button (ctrl-shift-d); #X obj 19 271 hradio 15 1 0 8 empty empty empty 0 -8 0 10 -262144 -1 -1 0; #X text 151 269 <- vertical radio button (ctrl-shift-i); #X restore 13 44 pd GUI_ELEMENTS; #N canvas 378 208 311 179 BASIC_ELEMENTS 0; #X obj 24 23 print; #X text 78 23 <- object (ctrl-1); #X msg 25 50 hello; #X text 78 50 <- message (ctrl-2); #X floatatom 25 78 5 0 0 0 - - -; #X text 77 80 <- number box (ctrl-3); #X symbolatom 25 110 10 0 0 0 - - -; #X text 108 108 <- symbol box (ctrl-4); #X text 26 139 some comment; #X text 128 138 <- text (ctrl-5); #X restore 13 20 pd BASIC_ELEMENTS; #N canvas 527 337 436 286 EDIT_MODE_RUN_MODE 0; #X text 29 25 use CTRL-E to switch between edit mode and run mode; #X floatatom 92 134 5 0 0 0 - - -; #X text 141 123 <- move the around while in edit mode; #X text 142 139 <- drag number while in run mode; #X restore 14 120 pd EDIT_MODE_RUN_MODE; #N canvas 406 18 439 512 MESSAGES_AND_AUDIO 0; #X obj 31 24 +; #X obj 31 72 +; #X text 47 48 <- this is a message connection; #X obj 31 102 +~; #X obj 31 150 +~; #X text 47 126 <- this is a audio (so called signal) connection; #X floatatom 28 201 5 0 0 0 - - -; #X obj 28 239 sig~; #X obj 29 297 snapshot~; #X obj 29 330 print SNAPSHOT; #X obj 49 275 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 70 241 <- conversion from message to audio; #X text 109 297 <- conversion from audio to message; #X text 27 379 signal objects have usually a '~' (tilde) at the end of their name.; #X text 27 424 some of them accept messages and signals at their first inlet; #X connect 0 0 1 0; #X connect 3 0 4 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 8 0 9 0; #X connect 10 0 8 0; #X restore 14 245 pd MESSAGES_AND_AUDIO; #N canvas 303 179 447 468 INLETS_AND_OUTLETS 0; #X obj 20 72 * 3; #X text 20 53 /; #X text 27 38 /; #X text 30 19 first inlet (leftmost inlet) is hot; #X text 51 60 _ second inlet is cold; #X text 18 92 |; #X text 21 111 (first) outlet; #X text 19 214 messages on the 'hot' (leftmost) inlet usually trigger a message on the outlet. they probably also overwrite the inner state of the object; #X text 25 282 example:; #X text 100 368 <- stores a number; #X obj 31 311 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X floatatom 51 313 5 0 0 0 - - -; #X floatatom 82 341 5 0 0 0 - - -; #X obj 31 365 float 13; #X text 19 157 messages on the cold (second/third/fourth etc.) inlet usually don't cause any output. they only overwrite an inner state of the object.; #X obj 31 398 print FLOAT; #X connect 10 0 13 0; #X connect 11 0 13 0; #X connect 12 0 13 1; #X connect 13 0 15 0; #X restore 14 145 pd INLETS_AND_OUTLETS; #N canvas 273 207 508 427 CREATION_ARGUMENTS 0; #X obj 28 45 + 12; #X floatatom 28 16 5 0 0 0 - - -; #X floatatom 28 74 5 0 0 0 - - -; #X obj 29 106 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 29 130 float 23; #X floatatom 29 154 5 0 0 0 - - -; #X text 138 62 many objects can have one or more so called creation arguments. these argument initialize a certain state; #X obj 29 217 select 1 2 3 4 5 6; #X obj 29 377 print one; #X obj 49 356 print two; #X obj 69 335 print three; #X obj 89 314 print four; #X obj 109 293 print five; #X obj 129 273 print six; #X obj 150 251 print NO_MATCH; #X floatatom 29 194 5 0 0 0 - - -; #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 7 0 8 0; #X connect 7 1 9 0; #X connect 7 2 10 0; #X connect 7 3 11 0; #X connect 7 4 12 0; #X connect 7 5 13 0; #X connect 7 6 14 0; #X connect 15 0 7 0; #X restore 14 171 pd CREATION_ARGUMENTS; #N canvas 367 191 446 296 GETTING_HELP 0; #X text 24 21 get a list of all available objects:; #X text 19 61 right-click (on macs ctrl-click) on emtpy space and choose 'help' and a new window should appear with a list and short descpritption of all pd objects.; #X text 28 169 getting help on a specific object:; #X text 28 203 right-click (on macs ctrl-click) on the object and choose 'help'. a new window \, the so called help-patch shouls appear; #X obj 170 265 print; #X restore 14 295 pd GETTING_HELP; #N canvas 667 308 586 341 ERRORS 0; #X text 10 17 always pay attention to the pd-window to see \, if some error occured. whenever an error occurs \, it is printed to the pd-window. ; #X obj 16 116 f; #X msg 32 89 bang; #X text 74 88 <- this causes an error; #X obj 16 169 roman; #X text 68 167 <- a dashed line indicates \, that there is no such object class \, so the object couldn't be instantiated; #X connect 2 0 1 1; #X restore 14 320 pd ERRORS; #N canvas 221 129 489 607 AUDIO_SETUP 0; #X obj 31 268 adc~; #X text 76 269 <- gets a signal from the audio input of your computer ; #X obj 32 306 dac~; #X text 77 305 <- sends a signal to the audio output of your computer ; #X text 29 13 getting audio into pd and from pd out of the computer is pretty straightforward.; #X text 29 56 you probably need to adjust the audio settings in the audio settings dialog from the menu. you'll find it under 'media'. choose the soundcard you'd like to work with; #X text 29 112 to test \, if audio is working \, load the 'test audio and midi' patch from the 'media' menu.; #X text 32 354 you also address/receive more than two channels (if your soundcard supports it):; #X obj 35 407 adc~ 1 2 3 4; #X obj 157 408 dac~ 12 3 4; #X text 34 448 you can also exactly specify \, which channels you'd like to use:; #X obj 119 500 dac~ 1; #X obj 33 500 adc~ 2 7; #X text 23 169 !!! IMPORTANT !!!; #X text 25 189 in order to have any audio at all \, 'dsp computation' must be on. hit the toggle 'compute audio' in the pd-window to switch audio computation on and off.; #X restore 14 270 pd AUDIO_SETUP; #N canvas 303 22 462 609 MESSAGE_ORDER 0; #X obj 42 69 print A; #X obj 58 48 print B; #X floatatom 42 17 5 0 0 0 - - -; #X text 132 44 <- which fires first? we have undefined order; #X text 31 115 whenever more than one connection is coming out from one outlet \, the order \, which connection 'fires' first \, is not defined. since there are a lot of situations \, where the order is crucial \, such situations should be strictly avoided.; #X text 28 200 the execution order can simply be defined by using a [trigger] object:; #X floatatom 32 276 5 0 0 0 - - -; #X obj 32 297 trigger float float; #X obj 32 335 print A; #X obj 160 333 print B; #X floatatom 268 277 5 0 0 0 - - -; #X obj 268 336 print A; #X obj 327 337 print B; #X obj 268 298 t f f; #X text 46 251 B fires first; #X text 274 251 A fires first; #X text 26 409 as we see \, the right outlet of [triggers] fires first. as a general rule in pd \, we can say \, that usually objectclasses with more than outlet fire from right to left.; #X text 26 383 from right to left; #X obj 76 507 print first; #X obj 32 484 t b b b; #X obj 54 527 print second; #X obj 32 548 print third; #X obj 32 462 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 243 510 unpack; #X obj 280 534 print one; #X obj 243 555 print two; #X msg 243 481 12 34; #X connect 2 0 1 0; #X connect 2 0 0 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 7 1 9 0; #X connect 10 0 13 0; #X connect 13 0 12 0; #X connect 13 1 11 0; #X connect 19 0 21 0; #X connect 19 1 20 0; #X connect 19 2 18 0; #X connect 22 0 19 0; #X connect 23 0 25 0; #X connect 23 1 24 0; #X connect 26 0 23 0; #X restore 14 196 pd MESSAGE_ORDER; #N canvas 294 62 674 376 VARIABLES_IN_MESSAGEBOXES 0; #X text 15 22 variables in message boxes can be used to compose messages according to a certain scheme or to compose bigger messages out of a few elements.; #X floatatom 33 86 5 0 0 0 - - -; #X obj 33 148 print; #X msg 33 123 number \$1 rules; #X msg 82 86 symbol two; #X text 163 123 <- '\$1' is replaced by the first element of the incoming message (which is a just a float or a symbol message in this case) ; #X msg 32 203 list haefeli roman; #X msg 32 239 my first name is \$2 and my last name is \$1; #X obj 32 278 print; #X text 361 239 <- \$1 is replaced by the first element; #X text 383 258 \$2 is replaced by the second element; #X text 383 276 of the incoming message (a list message; #X text 383 292 in this case); #X connect 1 0 3 0; #X connect 3 0 2 0; #X connect 4 0 3 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X restore 14 220 pd VARIABLES_IN_MESSAGEBOXES; #X text 19 395 Author: Roman Haefeli; #X text 19 413 Version: 2007-11-20;