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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
|
#N canvas 0 0 555 619 10;
#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header expr~ 3 12 0 18
-204280 -1 0;
#X obj 0 185 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 51 244 494 344 META 0;
#X text 12 125 LIBRARY internal;
#X text 12 145 AUTHOR Shahrokh Yadegari;
#X text 12 205 HELP_PATCH_AUTHORS Updated for Pd 0.35 test 26 and expr*
0.4. Jonathan Wilkes revised the patch to conform to the PDDP template
for Pd version 0.42.;
#X text 12 5 KEYWORDS signal nonlocal trigonometry;
#X text 12 65 INLET_0 signal;
#X text 12 85 INLET_N float symbol signal;
#X text 12 105 OUTLET_N signal;
#X text 12 45 DESCRIPTION expression evaluation of signal data (vector)
;
#X text 12 165 WEBSITE http://crca.ucsd.edu/~syadegar/expr.html;
#X text 12 185 RELEASE_DATE 1999;
#X text 12 25 LICENSE GPL v2;
#X restore 500 597 pd META;
#X obj 0 368 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 405 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 500 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 105 482 428 109 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 61 42 fexpr~;
#X obj 21 42 expr;
#X text 7 1 [expr~] Related Objects;
#X restore 101 597 pd Related_objects;
#X obj 78 194 cnv 17 3 35 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X obj 78 377 cnv 17 3 17 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
-162280 0;
#X obj 78 235 cnv 17 3 125 empty \$0-pddp.cnv.let.n n 5 9 0 16 -228856
-162280 0;
#X text 98 252 float;
#X text 98 343 symbol;
#X obj 273 572 pddplink http://crca.ucsd.edu/~syadegar/expr.html;
#X text 273 555 Expr family of objects by Shahrokh Yadegari;
#X obj 483 3 expr~;
#X obj 455 20 pddp/pddplink http://wiki.puredata.info/en/expr~ -text
pdpedia: expr~;
#X obj 18 159 print~;
#X msg 31 138 bang;
#X obj 18 94 sig~ 440;
#X floatatom 93 94 0 0 0 0 - - -;
#X floatatom 18 71 0 0 0 0 - - -;
#X obj 18 117 expr~ $v1*$f2;
#X obj 163 149 print~;
#X msg 175 128 bang;
#X floatatom 163 84 0 0 0 0 - - -;
#X floatatom 238 84 0 0 0 0 - - -;
#X floatatom 363 109 0 0 0 0 - - -;
#X floatatom 307 84 0 0 0 0 - - -;
#X obj 307 109 osc~;
#X text 16 52 vector times scalar;
#X text 161 53 vector;
#X obj 306 159 dac~;
#X text 304 54 frequency;
#X obj 163 107 expr~ $v1*$v2;
#X obj 306 130 expr~ $v1*$f2/128;
#X text 98 193 signal;
#X text 98 235 signal;
#X obj 366 78 hsl 50 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X text 98 377 signal;
#N canvas 117 43 428 483 More_expr~_examples 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X floatatom 237 101 5 0 0 0 - - -;
#X obj 24 150 tabsend~ a1;
#N canvas 0 0 450 300 (subpatch) 0;
#X array a1 64 float 0;
#X coords 0 1 63 -1 100 70 1;
#X restore 25 192 graph;
#X obj 24 127 expr~ max(min($v1 \, $f2/10) \, -$f2/10);
#X text 22 40 A simple limiter example;
#X obj 24 103 osc~ 2756.25;
#X text 152 66 Move the value below between 0 and 10;
#X text 156 81 to change the limiter threshold;
#X obj 25 344 tabsend~ a2;
#X obj 167 344 tabsend~ a3;
#X obj 25 275 osc~ 2756.25;
#N canvas 0 0 450 300 (subpatch) 0;
#X array a2 64 float 1;
#A 0 0.549579 0.537788 0.441331 0.271876 0.0531549 -0.182367 -0.398338
-0.56015 -0.640495 -0.623948 -0.509821 -0.31276 -0.0608986 0.208152
0.45295 0.634629 0.72309 0.702001 0.571703 0.349599 0.0678645 -0.231227
-0.501668 -0.700852 -0.796298 -0.770949 -0.626166 -0.381895 -0.0739361
0.251307 0.543884 0.757993 0.859183 0.829905 0.672509 0.409237 0.0790617
-0.268115 -0.579036 -0.805301 -0.910919 -0.87807 -0.710105 -0.431258
-0.0831469 0.281461 0.606691 0.842151 0.950817 0.914845 0.738504 0.447701
0.0861703 -0.291136 -0.626444 -0.868064 -0.978385 -0.939756 -0.757318
-0.458317 -0.0880561 0.297047 0.638088 0.882729;
#X coords 0 1 63 -1 100 70 1;
#X restore 25 394 graph;
#N canvas 0 0 450 300 (subpatch) 0;
#X array a3 64 float 0;
#X coords 0 1 63 -1 100 70 1;
#X restore 147 394 graph;
#X obj 167 275 osc~ 100;
#X obj 25 303 expr~ $v1*$v2 \; if ($v2 > 0 \, 0 \, $v1*$v2);
#X text 8 2 [expr~] More examples;
#X connect 1 0 4 1;
#X connect 4 0 2 0;
#X connect 6 0 4 0;
#X connect 11 0 15 0;
#X connect 14 0 15 1;
#X connect 15 0 9 0;
#X connect 15 1 10 0;
#X restore 101 569 pd More_expr~_examples;
#N canvas 56 89 428 436 expr_and_symbols 0;
#X floatatom 24 177 0 0 0 0 - - -;
#X floatatom 24 232 0 0 0 0 - - -;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-expr-array 515 float 2;
#X coords 0 1 515 -1 200 140 1;
#X restore 24 279 graph;
#X obj 240 338 loadbang;
#X obj 99 156 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 99 176 symbol \$0-expr-array;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 24 204 expr $s2[$f1];
#X text 113 219 of the array will be clipped;
#X text 113 204 index values outside the range;
#X text 20 116 The following syntax outputs the y-value for the element
specified by the left inlet.;
#X text 118 154 click here first;
#X text 8 2 [expr~] Using Symbolic Arguments;
#X obj 240 362 f \$0;
#X msg 240 388 \; \$1-expr-array sinesum 512 1;
#X text 21 37 Symbolic arguments like $s1 \, $s2 \, and so on are currently
used in [expr] \, [expr~] \, and [fexpr~] to get the name of an array
or table. You can also type the name of an array directly into [expr]
\, but this is limited since \, for example \, a dash (e.g. \, "my-table")
will get interpreted as an operator (e.g. \, "my minus table").;
#X connect 0 0 7 0;
#X connect 3 0 13 0;
#X connect 4 0 5 0;
#X connect 5 0 7 1;
#X connect 7 0 1 0;
#X connect 13 0 14 0;
#X restore 170 343 pd expr_and_symbols;
#X text 11 23 expression evaluation of signal data (vector);
#X text 384 93 amplitude;
#X text 183 298 1) a dollar-sign ($);
#X text 166 234 - an extra inlet is added for each additional dollar-sign
variable specified as a creation argument ($v2 \, $f3 \, etc.). Each
inlet accepts only one of the following: signal \, float \, or symbol.
There may be at most nine variables in one [expr~] object. Each variable
consists of:;
#X text 168 193 - the left inlet of [expr~] only accepts signals (i.e.
\, $f1 and $s1 variables will not work). Use the variable $v1 as a
creation argument to use this signal in an expression.;
#X text 183 311 2) "v" \, "f" \, "i" or "s" (signal \, float \, integer
or symbol);
#X text 183 324 3) an inlet number (Note: inlet numbers start from
one);
#X text 167 422 - the arguments themselves form the expression to evaluate.
They may be floats or symbols \, including the special variables noted
above ($v1 \, $f2 \, etc.). Follow the link below for all availabel
operators and functions in [expr~]:;
#X obj 170 476 pddp/pddplink all_about_expr_functions.pd -text all_about_expr_operators_and_functions
;
#X text 80 422 n) float;
#X text 98 434 symbol atom;
#X text 98 448 comma;
#X text 98 461 semicolon;
#X obj 101 506 pddp/pddplink all_about_expr_if.pd -text expr_if;
#X obj 101 526 pddp/pddplink all_about_expr_and_value.pd -text expr_and_value
;
#X obj 101 546 pddp/pddplink all_about_expr_multiline.pd -text expr_multiline
;
#X obj 4 597 pddp/pddplink pddp/help.pd -text help;
#X obj 455 51 pddp/dsp-reminder;
#X connect 18 0 17 0;
#X connect 19 0 22 0;
#X connect 20 0 22 1;
#X connect 21 0 19 0;
#X connect 22 0 17 0;
#X connect 24 0 23 0;
#X connect 25 0 34 0;
#X connect 26 0 34 1;
#X connect 28 0 29 0;
#X connect 29 0 35 0;
#X connect 34 0 23 0;
#X connect 35 0 32 0;
#X connect 35 0 32 1;
#X connect 38 0 35 1;
#X connect 38 0 27 0;
|