aboutsummaryrefslogtreecommitdiff
path: root/doc/tutorials/intro/math.pd
blob: d081a70a92615abcc21342f88037a02b101ae535 (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
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
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
#N canvas 436 10 551 278 10;
#X obj 17 11 cnv 15 500 100 empty empty OPERATIONS: 20 12 0 14 -233017
-66577 0;
#N canvas 58 106 794 296 operations-logiques-relationnelles 0;
#X obj 41 146 &;
#X obj 91 146 |;
#X obj 143 146 &&;
#X obj 194 146 ||;
#X obj 415 146 >;
#X obj 464 146 >=;
#X obj 517 146 ==;
#X obj 618 146 <=;
#X obj 665 146 <;
#X obj 569 146 !=;
#X obj 233 146 <<;
#X obj 284 146 >>;
#X floatatom 41 92 5 0 0 0 - - -;
#X floatatom 303 93 5 0 0 0 - - -;
#X floatatom 41 183 2 0 0 0 - - -;
#X floatatom 91 183 2 0 0 0 - - -;
#X floatatom 143 183 2 0 0 0 - - -;
#X floatatom 194 183 2 0 0 0 - - -;
#X floatatom 233 183 2 0 0 0 - - -;
#X floatatom 284 183 2 0 0 0 - - -;
#X floatatom 415 183 2 0 0 0 - - -;
#X floatatom 464 183 2 0 0 0 - - -;
#X floatatom 517 183 2 0 0 0 - - -;
#X floatatom 569 183 2 0 0 0 - - -;
#X floatatom 618 183 2 0 0 0 - - -;
#X floatatom 665 183 2 0 0 0 - - -;
#X floatatom 415 93 5 0 0 0 - - -;
#X floatatom 684 93 5 0 0 0 - - -;
#X text 38 33 Operateurs Logiques;
#X text 39 45 -------------------;
#X text 412 34 Operateurs Relationnelles;
#X text 413 45 --------------------------;
#X text 167 238 voir 17-exercices.pd : detecteur d'enveloppe;
#X text 167 256 voir 19-exercices.pd : sequenceurs;
#X connect 0 0 14 0;
#X connect 1 0 15 0;
#X connect 2 0 16 0;
#X connect 3 0 17 0;
#X connect 4 0 20 0;
#X connect 5 0 21 0;
#X connect 6 0 22 0;
#X connect 7 0 24 0;
#X connect 8 0 25 0;
#X connect 9 0 23 0;
#X connect 10 0 18 0;
#X connect 11 0 19 0;
#X connect 12 0 0 0;
#X connect 12 0 1 0;
#X connect 12 0 2 0;
#X connect 12 0 3 0;
#X connect 12 0 10 0;
#X connect 12 0 11 0;
#X connect 13 0 11 1;
#X connect 13 0 10 1;
#X connect 13 0 3 1;
#X connect 13 0 2 1;
#X connect 13 0 1 1;
#X connect 13 0 0 1;
#X connect 26 0 4 0;
#X connect 26 0 5 0;
#X connect 26 0 6 0;
#X connect 26 0 9 0;
#X connect 26 0 7 0;
#X connect 26 0 8 0;
#X connect 27 0 4 1;
#X connect 27 0 5 1;
#X connect 27 0 6 1;
#X connect 27 0 9 1;
#X connect 27 0 7 1;
#X connect 27 0 8 1;
#X restore 18 129 pd operations-logiques-relationnelles;
#N canvas 0 0 795 354 operations-mathematiques 0;
#X floatatom 31 72 5 0 0 0 - - -;
#X obj 160 128 *;
#X floatatom 238 72 5 0 0 0 - - -;
#X floatatom 160 197 5 0 0 0 - - -;
#X obj 31 128 +;
#X obj 96 128 -;
#X obj 219 128 /;
#X floatatom 31 197 5 0 0 0 - - -;
#X floatatom 96 197 5 0 0 0 - - -;
#X floatatom 219 197 5 0 0 0 - - -;
#X obj 375 134 pow 2;
#X obj 441 133 pow -1;
#X floatatom 375 80 5 0 0 0 - - -;
#X floatatom 375 206 5 0 0 0 - - -;
#X floatatom 441 206 5 0 0 0 - - -;
#X obj 626 133 % 5;
#X floatatom 611 81 5 0 0 0 - - -;
#X floatatom 664 81 5 0 0 0 - - -;
#X floatatom 626 206 5 0 0 0 - - -;
#X text 628 242 Modulo;
#X text 31 24 Operations Mathematiques;
#X text 30 34 ------------------------;
#X text 29 243 Operations arithmetiques standards;
#X obj 691 132 mod 5;
#X text 667 132 =;
#X text 364 244 operations puissances;
#X text 435 299 voir 18-exercices.pd : beat tempo;
#X connect 0 0 1 0;
#X connect 0 0 5 0;
#X connect 0 0 6 0;
#X connect 0 0 4 0;
#X connect 1 0 3 0;
#X connect 2 0 1 1;
#X connect 2 0 4 1;
#X connect 2 0 5 1;
#X connect 2 0 6 1;
#X connect 4 0 7 0;
#X connect 5 0 8 0;
#X connect 6 0 9 0;
#X connect 10 0 13 0;
#X connect 11 0 14 0;
#X connect 12 0 10 0;
#X connect 12 0 11 0;
#X connect 15 0 18 0;
#X connect 16 0 15 0;
#X connect 17 0 15 1;
#X restore 18 167 pd operations-mathematiques;
#N canvas 29 79 932 301 operations-conditionnelles 0;
#X floatatom 445 74 5 0 0 0 - - -;
#X floatatom 504 74 5 0 0 0 - - -;
#X floatatom 445 160 5 0 0 0 - - -;
#X floatatom 504 160 5 0 0 0 - - -;
#X obj 445 115 moses 10;
#X obj 326 112 spigot;
#X floatatom 22 96 5 0 0 0 - - -;
#X obj 22 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 22 137 select 2 3 4;
#X obj 52 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 82 186 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 113 186 5 0 0 0 - - -;
#X obj 369 89 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X floatatom 326 70 5 0 0 0 - - -;
#X floatatom 326 156 5 0 0 0 - - -;
#X obj 621 183 print r1;
#X obj 690 183 print r2;
#X obj 759 183 print r3;
#X obj 828 183 print r4;
#X msg 621 69 1 2 3;
#X msg 678 70 2 3 4;
#X obj 621 130 route 1 2 symbol;
#X msg 731 70 symbol bar;
#X msg 732 97 who am I?;
#X text 18 20 Operations Conditionnelles;
#X text 18 32 --------------------------;
#X text 18 61 Selectionner certaines entrees;
#X text 325 36 Porte;
#X text 438 36 Separer les entrees;
#X text 619 38 Routage des entrees;
#X obj 258 233 *;
#X obj 277 208 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 366 209 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 347 233 *~;
#X text 257 181 autres Portes :;
#X obj 449 203 cnv 15 74 20 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 624 223 cnv 15 107 20 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 625 243 cnv 15 113 20 empty empty empty 20 12 0 14 -233017 -66577
0;
#N canvas 243 0 636 690 random 0;
#X msg 103 95 bang;
#X text 44 19 You can generate weighted random numbers from uniformly
distributed ones. If you just want two possible outcomes with a varying
probability for each one \, you can do as shown:;
#X obj 103 121 random 100;
#X obj 102 174 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 169 174 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 205 148 3 0 100 0 - - -;
#X text 250 148 <-- change probablilty;
#X obj 103 149 moses 80;
#X text 152 93 <-- click to test;
#X text 61 219 This outputs a number at left 80% of the time \, otherwise
at right \, unless you override the "80" using the number box. You
may extend this to more than two possible outcomes \, for instance
like this:;
#X msg 106 305 bang;
#X obj 106 331 random 100;
#X obj 105 384 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 195 387 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 155 303 <-- click to test;
#X obj 106 359 moses 10;
#X obj 196 360 moses 30;
#X obj 263 387 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 103 409 10%;
#X text 193 410 20%;
#X text 265 409 70%;
#X obj 103 736 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X obj 100 821 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X obj 181 820 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X obj 218 822 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X msg 100 843 1;
#X msg 181 845 2;
#X msg 218 846 3;
#X obj 100 882 s state;
#X obj 85 658 bng 20 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X obj 121 641 r state;
#X obj 102 710 sel 1 2 3;
#X obj 274 738 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X obj 271 823 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X obj 353 825 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X obj 392 828 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X msg 271 846 1;
#X msg 348 851 2;
#X msg 392 852 3;
#X obj 271 882 s state;
#X obj 438 739 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X obj 438 824 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X obj 518 823 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X obj 557 826 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X msg 438 847 1;
#X msg 518 848 2;
#X msg 557 849 3;
#X obj 438 882 s state;
#X msg 255 671 \; state 1;
#X obj 102 684 f 1;
#X obj 103 764 random 100;
#X obj 102 793 moses 30;
#X obj 181 794 moses 60;
#X obj 274 765 random 100;
#X obj 274 795 moses 10;
#X obj 353 796 moses 60;
#X obj 438 766 random 100;
#X obj 438 795 moses 70;
#X obj 518 795 moses 80;
#X floatatom 133 666 3 0 0 0 - - -;
#X text 255 651 reset;
#X text 68 637 STEP;
#X text 53 505 Here is how to construct a simple \, three-valued Markov
chain using "random." Each time you click on "step" the previous output
("state") determines which of three random networks to invoke \, each
having a different probability distribution for the next value of "state."
For instance if the state was 3 \, the next state will be 1 70% of
the time \, state 2 10% \, and state 3 20%.;
#X connect 0 0 2 0;
#X connect 2 0 7 0;
#X connect 5 0 7 1;
#X connect 7 0 3 0;
#X connect 7 1 4 0;
#X connect 10 0 11 0;
#X connect 11 0 15 0;
#X connect 15 0 12 0;
#X connect 15 1 16 0;
#X connect 16 0 13 0;
#X connect 16 1 17 0;
#X connect 21 0 50 0;
#X connect 22 0 25 0;
#X connect 23 0 26 0;
#X connect 24 0 27 0;
#X connect 25 0 28 0;
#X connect 26 0 28 0;
#X connect 27 0 28 0;
#X connect 29 0 49 0;
#X connect 30 0 49 1;
#X connect 30 0 59 0;
#X connect 31 0 21 0;
#X connect 31 1 32 0;
#X connect 31 2 40 0;
#X connect 32 0 53 0;
#X connect 33 0 36 0;
#X connect 34 0 37 0;
#X connect 35 0 38 0;
#X connect 36 0 39 0;
#X connect 37 0 39 0;
#X connect 38 0 39 0;
#X connect 40 0 56 0;
#X connect 41 0 44 0;
#X connect 42 0 45 0;
#X connect 43 0 46 0;
#X connect 44 0 47 0;
#X connect 45 0 47 0;
#X connect 46 0 47 0;
#X connect 49 0 31 0;
#X connect 50 0 51 0;
#X connect 51 0 22 0;
#X connect 51 1 52 0;
#X connect 52 0 23 0;
#X connect 52 1 24 0;
#X connect 53 0 54 0;
#X connect 54 0 33 0;
#X connect 54 1 55 0;
#X connect 55 0 34 0;
#X connect 55 1 35 0;
#X connect 56 0 57 0;
#X connect 57 0 41 0;
#X connect 57 1 58 0;
#X connect 58 0 42 0;
#X connect 58 1 43 0;
#X restore 448 203 pd random;
#N canvas 0 0 357 255 route_lists 0;
#X floatatom 228 32 5 0 0 0 - - -;
#X obj 228 70 t b f;
#X obj 228 120 pack s f;
#X msg 81 30 droite;
#X msg 17 30 gauche;
#N canvas 510 50 299 253 test 0;
#X obj 112 34 inlet;
#X obj 185 175 outlet;
#X obj 112 74 route list;
#X obj 112 176 outlet;
#X obj 112 116 route gauche droite;
#X obj 79 166 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 216 152 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X connect 0 0 2 0;
#X connect 2 0 4 0;
#X connect 2 1 4 0;
#X connect 4 0 3 0;
#X connect 4 0 5 0;
#X connect 4 1 1 0;
#X connect 4 1 6 0;
#X restore 228 189 pd test;
#X floatatom 279 217 5 0 0 0 - - -;
#X floatatom 228 217 5 0 0 0 - - -;
#X msg 40 151 droite 10 \, gauche 40;
#X symbolatom 139 32 10 0 0 0 - - -;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X connect 4 0 2 0;
#X connect 5 0 7 0;
#X connect 5 1 6 0;
#X connect 8 0 5 0;
#X connect 9 0 2 0;
#X restore 625 243 pd route_lists;
#N canvas 385 246 472 322 lists_pack 0;
#X obj 68 114 pack 0 5 s;
#X obj 68 160 print;
#X obj 189 168 unpack 0 0 s;
#X floatatom 189 204 5 0 0 0 - - -;
#X floatatom 234 204 5 0 0 0 - - -;
#X msg 280 236 Hello;
#X msg 280 204 set \$1;
#X obj 37 79 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 143 79 symbol Hello;
#X floatatom 105 79 3 0 0 0 - - -;
#X floatatom 68 79 3 0 0 0 - - -;
#X text 35 24 Making lists with pack;
#X connect 0 0 1 0;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 4 0;
#X connect 2 2 6 0;
#X connect 6 0 5 0;
#X connect 7 0 0 0;
#X connect 8 0 0 2;
#X connect 9 0 0 1;
#X connect 10 0 0 0;
#X restore 625 223 pd lists_pack;
#X connect 0 0 4 0;
#X connect 1 0 4 1;
#X connect 4 0 2 0;
#X connect 4 1 3 0;
#X connect 5 0 14 0;
#X connect 6 0 8 0;
#X connect 8 0 7 0;
#X connect 8 1 9 0;
#X connect 8 2 10 0;
#X connect 8 3 11 0;
#X connect 12 0 5 1;
#X connect 13 0 5 0;
#X connect 19 0 21 0;
#X connect 20 0 21 0;
#X connect 21 0 15 0;
#X connect 21 1 16 0;
#X connect 21 2 17 0;
#X connect 21 3 18 0;
#X connect 22 0 21 0;
#X connect 23 0 21 0;
#X connect 31 0 30 1;
#X connect 32 0 33 1;
#X restore 18 205 pd operations-conditionnelles;
#X text 322 129 > < != >= . . .;
#X text 36 34 Pour aller plus loin dans les possibilites relationnelles
:;
#X text 249 165 - + = / *;
#X text 270 204 selection \, routage \, porte \, ...;
#N canvas 0 0 556 312 changementEchelles 0;
#X text 11 3 But : passer un nombre qui va de 0 a 127 en un nombre
entre 40 et 3000;
#X obj 171 43 range 0 127 40 3000;
#X text 13 43 Un objet fait ca :;
#X text 9 92 Mais on peut faire tout aussi bien en utilisant les objets
[expr] qui servent tres bien pour tout calcul.;
#X floatatom 130 173 5 0 0 0 - - -;
#X floatatom 130 260 5 0 0 0 - - -;
#X text 452 124 0 : x1;
#X text 436 139 127 : x2;
#X text 444 153 40 : x3;
#X text 428 168 3000 : x4;
#X obj 130 202 expr ( (($f1-O)/(127-0))*(3000-40) ) + (40-0);
#X msg 60 136 0;
#X msg 94 137 60;
#X msg 126 138 127;
#X connect 4 0 10 0;
#X connect 10 0 5 0;
#X connect 11 0 4 0;
#X connect 12 0 4 0;
#X connect 13 0 4 0;
#X restore 17 242 pd changementEchelles;
#X text 204 243 objet [expr];