aboutsummaryrefslogtreecommitdiff
path: root/doc/pddp/help-route.pd
blob: 03c85a4d3870af1676cad2f30a25ea4675e2357e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#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;