#N canvas 128 127 1007 645 10; #X obj 7 331 print x1; #X obj 59 331 print x2; #X obj 112 331 print x3; #X obj 164 331 print x4; #X obj 82 273 route 23 54 1; #X msg 290 217 54 43; #X msg 332 217 1 foo bar; #X obj 44 408 route big apple; #X msg 422 377 1 2 3; #X msg 332 364 big apple pie; #X msg 414 235 walk the dog; #X text 25 215 numeric arguments:; #X text 18 364 symbolic arguments:; #X msg 574 287 bang; #X msg 575 380 list; #X msg 547 208 5; #X msg 553 228 float 5; #X msg 575 402 list 5; #X msg 579 307 symbol pie; #X msg 586 327 pie; #X msg 561 248 1 2 3; #X obj 9 475 print y1; #X obj 69 475 print y2; #X obj 129 475 print y3; #X obj 26 13 route; #X text 67 13 - route messages according to their first element; #X text 25 108 If a match is found \, and the message contains only ONE element \, then a bang is sent out the corresponding outlet. If a match if found \, and the message contains multiple elements (a list) \, then all the list elements except the first element is sent out the corresponding outlet. If no match is found \, then the entire message is sent out the right-most outlet - the "rejection" outlet. The number of outlets is the number of arguments plus one.; #X text 176 265 In this case \, the creation arguments are all numbers and [route] will therefore assume that it should attempt to match messages that are data type 'number'. All messages that are not numbers will be output through the right-most outlet.; #X msg 138 217 23 345 456; #X msg 216 217 420 34 45; #X msg 138 364 apple pie; #X msg 202 364 impeach ringo starr; #X text 147 408 In this case \, the data type 'symbol' is implied by the creation arguments and therefore this [route] object will match symbols only. Symbolic messages that do not match any of the arguments \, and all numbers \, will be output through the right-most outlet. ; #X obj 526 5 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 526 566 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 704 468 print NO_Match; #X text 541 21 If necessary \, messages of different data types can be matched by the [route] object if the data type is explictly defined in the creation arguments.; #X text 540 71 In the example below \, instead of matching the 'value' of a message \, the [route] object will match 'data type': i.e. lists will be sent through the first outlet \, floats will be sent through the second outlet \, symbols through the third outlet \, bangs through the fourth outlet. The fifth outlet will then output anything that does not match one of the previously defined data types (i.e. the "pie" message below is a text message that hasn't been defined as a 'symbol' - hence \, PD cannot determine which data type it is and it will be output through the right-most outlet).; #X text 577 208 a float; #X text 605 228 definately a float!; #X text 602 247 a list (of floats); #X text 611 287 a bang; #X text 653 306 a symbol; #X text 620 328 none of the above!; #X obj 541 448 route float list bang symbol; #X obj 541 546 print floats; #X obj 581 527 print lists; #X obj 622 508 print bangs; #X obj 663 488 print symbols; #X msg 575 424 list pie; #X msg 568 268 list pie earth; #X text 660 267 a list of symbols; #X text 595 358 SPECIAL CASES OF LISTS.; #X text 629 423 A list with only one symbol is translated into a symbol. ; #X text 621 400 A list with only one float is translated into a float by PD.; #X text 612 379 An empty list is tranlated into a bang by PD.; #X text 19 508 RELATED OBJECTS; #X obj 23 529 select; #X obj 68 529 trigger; #X obj 120 529 moses; #X text 378 588 This document was updated for PD version 0.35 test 26 by Dave Sabine as part of a project called pddp proposed by Krzysztof Czaja to build comprehensive documentation for PD.; #X text 26 36 Route checks the first element of a message against each of its creation arguments \, which may be numbers or symbols (but not a mixture of the two unless the data types are defined explicitly) \, then sends the messages through the appropriate outlets.; #N canvas 0 22 458 308 related_objects_from_other_libraries 0; #X obj 26 33 segregate; #X obj 104 34 multiselect; #X text 18 86 These objects are offered in PD only if you have downloaded and properly installed the appropriate library. These objects may or may not exist in a single library.; #X text 17 135 The best places to find information about PD's libraries is:; #X text 14 157 www.pure-data.org and click on "Downloads" then "Software" ; #X text 15 173 or; #X text 16 187 iem.kug.ac.at/pdb/; #X obj 193 34 demux; #X obj 245 34 gate; #X restore 23 552 pd related_objects_from_other_libraries; #X connect 4 0 0 0; #X connect 4 1 1 0; #X connect 4 2 2 0; #X connect 4 3 3 0; #X connect 5 0 4 0; #X connect 6 0 4 0; #X connect 7 0 21 0; #X connect 7 1 22 0; #X connect 7 2 23 0; #X connect 8 0 7 0; #X connect 9 0 7 0; #X connect 10 0 4 0; #X connect 13 0 44 0; #X connect 14 0 44 0; #X connect 15 0 44 0; #X connect 16 0 44 0; #X connect 17 0 44 0; #X connect 18 0 44 0; #X connect 19 0 44 0; #X connect 20 0 44 0; #X connect 28 0 4 0; #X connect 29 0 4 0; #X connect 30 0 7 0; #X connect 31 0 7 0; #X connect 33 0 34 0; #X connect 44 0 45 0; #X connect 44 1 46 0; #X connect 44 2 47 0; #X connect 44 3 48 0; #X connect 44 4 35 0; #X connect 49 0 44 0; #X connect 50 0 44 0;