aboutsummaryrefslogtreecommitdiff
path: root/examples/ann_mlp_example3/example3.pd
blob: d02239530832cfebec5b914953e9ef0c87344ca3 (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
#N canvas 52 54 515 272 12;
#N canvas 103 30 724 595 guts 0;
#X msg 89 147 0 \, destroy;
#X obj 111 177 gemwin;
#X msg 94 124 reset \, create \, 1;
#X obj 331 165 gemhead;
#X obj 331 186 translateXYZ;
#X obj 402 118 * -1;
#X obj 331 206 color 0.5 0 0;
#X obj 383 66 gemmouse 8 8;
#X obj 363 109 - 4;
#X obj 405 99 - 4;
#X obj 331 226 sphere 0.6;
#X msg 156 102 cursor 0;
#X msg 126 66 bang;
#X msg 166 150 lighting 1;
#N canvas 463 128 573 394 lights 0;
#X obj 242 277 world_light;
#X obj 242 163 gemhead 1;
#X obj 242 225 rotateXYZ;
#X msg 109 193 debug 0;
#X msg 110 224 debug 1;
#X text 20 169 figure out where the light is;
#X obj 311 47 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
;
#X obj 354 133 pack f f;
#X obj 334 159 line;
#X msg 364 42 1;
#X obj 364 23 loadbang;
#X obj 344 298 world_light;
#X obj 346 271 gemhead 1;
#X obj 429 203 loadbang;
#X obj 311 63 metro 20000;
#X msg 400 104 10000;
#X obj 119 57 delay 10000;
#X msg 339 96 300;
#X msg 292 96 50;
#X msg 364 235 1 1 1;
#X msg 422 266 0.6 0.3 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 6 0 14 0;
#X connect 7 0 8 0;
#X connect 8 0 2 2;
#X connect 9 0 6 0;
#X connect 10 0 9 0;
#X connect 10 0 15 0;
#X connect 12 0 11 0;
#X connect 13 0 19 0;
#X connect 13 0 20 0;
#X connect 14 0 17 0;
#X connect 14 0 16 0;
#X connect 15 0 7 1;
#X connect 16 0 18 0;
#X connect 17 0 7 0;
#X connect 18 0 7 0;
#X connect 19 0 0 1;
#X connect 20 0 11 1;
#X restore 543 135 pd lights;
#X obj 269 139 s posx;
#X obj 439 152 s posy;
#X obj 225 25 inlet;
#X obj 77 19 inlet;
#X connect 0 0 1 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 4 2;
#X connect 5 0 16 0;
#X connect 6 0 10 0;
#X connect 7 0 8 0;
#X connect 7 1 9 0;
#X connect 8 0 4 1;
#X connect 8 0 15 0;
#X connect 9 0 5 0;
#X connect 11 0 1 0;
#X connect 12 0 2 0;
#X connect 12 0 13 0;
#X connect 12 0 11 0;
#X connect 13 0 1 0;
#X connect 17 0 0 0;
#X connect 18 0 12 0;
#X restore 10 117 pd guts;
#X obj 9 67 tgl 15 0 empty empty rendering 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 46 95 bng 15 250 50 0 empty empty destroy_gemwin 0 -6 0 8 -262144
-1 -1;
#N canvas 492 13 794 577 train 0;
#X floatatom 45 391 5 0 0 0 - - -;
#X floatatom 83 390 5 0 0 0 - - -;
#X floatatom 120 392 5 0 0 0 - - -;
#X floatatom 160 394 5 0 0 0 - - -;
#X obj 190 206 metro 100;
#X obj 190 187 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 42 430 vsl 15 30 0 1 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 0 1;
#X obj 80 430 vsl 15 30 0 1 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 0 1;
#X obj 115 430 vsl 15 30 0 1 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 0 1;
#X obj 154 434 vsl 15 30 0 1 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 0 1;
#X text 164 15 1- create the ann;
#N canvas 503 57 684 391 train 0;
#X obj 66 319 outlet;
#X obj 213 183 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X msg 84 16 train;
#N canvas 0 0 490 340 outputs 0;
#X obj 89 60 key;
#X obj 41 122 sel 97;
#X text 84 101 "a" key;
#X obj 218 120 sel 115;
#N canvas 0 0 458 308 a 0;
#X obj 130 150 s output1;
#X obj 86 76 inlet;
#X text 88 56 bang;
#X obj 241 80 inlet;
#X text 243 60 reset;
#X msg 86 101 1;
#X msg 241 110 0;
#X connect 1 0 5 0;
#X connect 3 0 6 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X restore 41 145 pd a pressed;
#N canvas 0 0 458 308 s 0;
#X obj 86 76 inlet;
#X text 88 56 bang;
#X obj 241 80 inlet;
#X text 243 60 reset;
#X msg 86 101 1;
#X msg 241 110 0;
#X obj 130 150 s output2;
#X connect 0 0 4 0;
#X connect 2 0 5 0;
#X connect 4 0 6 0;
#X connect 5 0 6 0;
#X restore 217 142 pd s pressed;
#X text 295 92 "s" key;
#X obj 228 57 keyup;
#X obj 132 123 sel 97;
#X obj 308 120 sel 115;
#X floatatom 19 80 5 0 0 0 - - -;
#X obj 39 183 sel 100;
#X obj 130 184 sel 100;
#X obj 216 181 sel 102;
#X obj 306 181 sel 102;
#N canvas 0 0 466 316 d 0;
#X obj 86 76 inlet;
#X text 88 56 bang;
#X obj 241 80 inlet;
#X text 243 60 reset;
#X msg 86 101 1;
#X msg 241 110 0;
#X obj 130 150 s output3;
#X connect 0 0 4 0;
#X connect 2 0 5 0;
#X connect 4 0 6 0;
#X connect 5 0 6 0;
#X restore 39 206 pd d pressed;
#N canvas 0 0 470 320 f 0;
#X obj 86 76 inlet;
#X text 88 56 bang;
#X obj 241 80 inlet;
#X text 243 60 reset;
#X msg 86 101 1;
#X msg 241 110 0;
#X obj 130 150 s output4;
#X connect 0 0 4 0;
#X connect 2 0 5 0;
#X connect 4 0 6 0;
#X connect 5 0 6 0;
#X restore 215 203 pd f pressed;
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 0 0 10 0;
#X connect 0 0 11 0;
#X connect 0 0 13 0;
#X connect 1 0 4 0;
#X connect 3 0 5 0;
#X connect 7 0 8 0;
#X connect 7 0 9 0;
#X connect 7 0 12 0;
#X connect 7 0 14 0;
#X connect 8 0 4 1;
#X connect 9 0 5 1;
#X connect 11 0 15 0;
#X connect 12 0 15 1;
#X connect 13 0 16 0;
#X connect 14 0 16 1;
#X restore 131 57 pd outputs;
#X obj 130 87 r output1;
#X obj 213 86 r output2;
#X floatatom 130 108 5 0 0 0 - - -;
#X floatatom 212 108 5 0 0 0 - - -;
#X floatatom 297 106 5 0 0 0 - - -;
#X floatatom 378 107 5 0 0 0 - - -;
#X obj 297 85 r output3;
#X obj 379 85 r output4;
#X text 128 14 1- change to training mode;
#X text 248 49 2- change keys if you want;
#X text 264 61 defaults are "a" "s" "d" "f";
#X text 239 182 3- toggle on to start training and off to stop;
#X msg 170 282 run;
#X text 200 283 4- switch to run mode when ready;
#X obj 305 226 inlet;
#X obj 344 256 nbx 8 14 -1e+037 1e+037 0 0 empty empty MSE 0 -6 0 10
-262144 -1 -1 0 256;
#N canvas 111 7 806 538 inputs 0;
#X obj 107 65 r posx;
#X obj 166 65 r posy;
#X obj 68 103 f;
#X obj 41 46 inlet;
#X obj 227 64 r posx1;
#X obj 291 65 r posy1;
#X obj 55 300 outlet;
#X obj 115 249 s posx1;
#X obj 147 274 s posy1;
#X obj 362 64 r posx2;
#X obj 426 65 r posy2;
#X obj 185 249 s posx2;
#X obj 217 274 s posy2;
#X obj 489 66 r posx3;
#X obj 553 67 r posy3;
#X obj 254 248 s posx3;
#X obj 286 273 s posy3;
#X obj 616 68 r posx4;
#X obj 680 69 r posy4;
#X obj 71 138 pack f f f f f f f f f f;
#X obj 128 207 unpack f f f f f f f f f f;
#X obj 321 249 s posx4;
#X obj 354 274 s posy4;
#X connect 0 0 2 1;
#X connect 1 0 19 1;
#X connect 2 0 19 0;
#X connect 3 0 2 0;
#X connect 4 0 19 2;
#X connect 5 0 19 3;
#X connect 9 0 19 4;
#X connect 10 0 19 5;
#X connect 13 0 19 6;
#X connect 14 0 19 7;
#X connect 17 0 19 8;
#X connect 18 0 19 9;
#X connect 19 0 6 0;
#X connect 19 0 20 0;
#X connect 20 0 7 0;
#X connect 20 1 8 0;
#X connect 20 2 11 0;
#X connect 20 3 12 0;
#X connect 20 4 15 0;
#X connect 20 5 16 0;
#X connect 20 6 21 0;
#X connect 20 7 22 0;
#X restore 213 226 pd inputs;
#N canvas 84 111 790 303 merge 0;
#X obj 56 34 inlet;
#X obj 56 73 unpack f f f f f f f f f f;
#X obj 306 38 r output1;
#X obj 382 38 r output2;
#X obj 460 39 r output3;
#X obj 537 39 r output4;
#X obj 78 137 pack f f f f f f f f f f f f f f;
#X obj 78 184 outlet;
#X connect 0 0 1 0;
#X connect 1 0 6 0;
#X connect 1 1 6 1;
#X connect 1 2 6 2;
#X connect 1 3 6 3;
#X connect 1 4 6 4;
#X connect 1 5 6 5;
#X connect 1 6 6 6;
#X connect 1 7 6 7;
#X connect 1 8 6 8;
#X connect 1 9 6 9;
#X connect 2 0 6 10;
#X connect 3 0 6 11;
#X connect 4 0 6 12;
#X connect 5 0 6 13;
#X connect 6 0 7 0;
#X restore 140 254 pd merge outputs;
#X obj 213 202 metro 100;
#X connect 1 0 22 0;
#X connect 2 0 0 0;
#X connect 4 0 6 0;
#X connect 5 0 7 0;
#X connect 10 0 8 0;
#X connect 11 0 9 0;
#X connect 16 0 0 0;
#X connect 18 0 19 0;
#X connect 20 0 21 0;
#X connect 21 0 0 0;
#X connect 22 0 20 0;
#X restore 133 114 pd train on the fly;
#X text 224 182 3- run the nn switching this metro ON;
#X text 277 213 (note \, you must be in run mode);
#X msg 281 231 run;
#X text 364 303 4- when you are happy with you nn save it;
#X text 362 321 remember that you can load it also passing filename
as argument;
#X obj 301 404 nbx 8 14 -1e+037 1e+037 0 0 empty empty mse 0 -6 0 10
-262144 -1 -1 0 256;
#X text 300 422 mse is usefull while training on-the-fly: tells you
the global error in the net \, how much net's output differs from desired
output.;
#N canvas 111 7 814 546 inputs 0;
#X obj 107 65 r posx;
#X obj 166 65 r posy;
#X obj 68 103 f;
#X obj 41 46 inlet;
#X obj 227 64 r posx1;
#X obj 291 65 r posy1;
#X obj 55 300 outlet;
#X obj 115 249 s posx1;
#X obj 147 274 s posy1;
#X obj 362 64 r posx2;
#X obj 426 65 r posy2;
#X obj 185 249 s posx2;
#X obj 217 274 s posy2;
#X obj 489 66 r posx3;
#X obj 553 67 r posy3;
#X obj 254 248 s posx3;
#X obj 286 273 s posy3;
#X obj 616 68 r posx4;
#X obj 680 69 r posy4;
#X obj 71 138 pack f f f f f f f f f f;
#X obj 128 207 unpack f f f f f f f f f f;
#X obj 321 249 s posx4;
#X obj 354 274 s posy4;
#X connect 0 0 2 1;
#X connect 1 0 19 1;
#X connect 2 0 19 0;
#X connect 3 0 2 0;
#X connect 4 0 19 2;
#X connect 5 0 19 3;
#X connect 9 0 19 4;
#X connect 10 0 19 5;
#X connect 13 0 19 6;
#X connect 14 0 19 7;
#X connect 17 0 19 8;
#X connect 18 0 19 9;
#X connect 19 0 6 0;
#X connect 19 0 20 0;
#X connect 20 0 7 0;
#X connect 20 1 8 0;
#X connect 20 2 11 0;
#X connect 20 3 12 0;
#X connect 20 4 15 0;
#X connect 20 5 16 0;
#X connect 20 6 21 0;
#X connect 20 7 22 0;
#X restore 188 229 pd inputs;
#X text 325 115 2- train on the fly in realtime;
#X obj 64 348 unpack f f f f;
#X msg 66 15 create 10 4;
#X msg 247 306 save tdnn.net;
#X msg 247 325 load tdnn.net;
#X text 24 412 still;
#X text 72 412 left;
#X text 111 413 right;
#X text 156 415 na;
#X obj 66 325 ann_mlp tdnn.net;
#X connect 0 0 6 0;
#X connect 1 0 7 0;
#X connect 2 0 8 0;
#X connect 3 0 9 0;
#X connect 4 0 19 0;
#X connect 5 0 4 0;
#X connect 11 0 29 0;
#X connect 14 0 29 0;
#X connect 19 0 29 0;
#X connect 21 0 0 0;
#X connect 21 1 1 0;
#X connect 21 2 2 0;
#X connect 21 3 3 0;
#X connect 22 0 29 0;
#X connect 23 0 29 0;
#X connect 24 0 29 0;
#X connect 29 0 21 0;
#X connect 29 1 17 0;
#X connect 29 1 11 0;
#X restore 8 191 pd train and run nn;
#X text 93 61 1- start rendering;
#X text 71 170 2- open the subpatch and follow instructions;
#X text 15 5 TDNN implementation (Time Delay Neural Network) useful
for gesture recognition;
#X connect 1 0 0 0;
#X connect 2 0 0 1;