-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbender.pd
More file actions
494 lines (494 loc) · 16.5 KB
/
bender.pd
File metadata and controls
494 lines (494 loc) · 16.5 KB
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
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
#N canvas 160 179 1112 639 12;
#X obj 570 318 r \$0-out;
#X text 686 206 <-- Reset layer data from temp array;
#X text 686 230 <-- Push updates to neural net;
#N canvas 662 103 713 713 tamper 0;
#X obj 67 520 *;
#X obj 67 567 +, f 16;
#X obj 10 137 array size \$0-templayerdata;
#X msg 10 342 \$1, f 2;
#X obj 10 366 until;
#X obj 67 680 array set \$0-layerdata;
#X text 230 486 <-- Get data from backup layer;
#X text 233 679 <-- Set altered data to main layer;
#X obj 10 487 array get \$0-templayerdata 0 1;
#X msg 56 371 -1, f 2;
#X obj 10 14 r \$0-mltply;
#X obj 102 14 r \$0-offset;
#X obj 10 62 t b f, f 11;
#X obj 102 62 t b f, f 11;
#X obj 10 86 del 500;
#X obj 102 86 del 500;
#X msg 482 50 1, f 1;
#X obj 482 75 s \$0-mltplyres;
#X msg 598 50 0, f 1;
#X obj 598 102 s \$0-offsetres;
#X obj 598 14 loadbang;
#X obj 482 14 r \$0-tamperres;
#X obj 186 14 r \$0-flip;
#X obj 186 38 expr $f1*-2+1;
#X obj 186 62 t b f;
#X obj 186 86 del 500;
#X obj 67 544 *, f 22;
#X obj 598 75 s \$0-flipres;
#X obj 372 14 r \$0-seeder;
#X obj 67 651 +, f 19;
#X obj 372 62 t b f;
#X obj 10 462 t f f b;
#X obj 598 127 s \$0-seederres;
#X obj 372 86 del 500;
#X obj 197 567 expr ((random(-$f2 \, $f2)* 0.0001)+(random(-$f2 \, $f2)* 0.0001)+(random(-$f2 \, $f2)* 0.0001)+(random(-$f2 \, $f2)* 0.0001)) / 4, f 30;
#X text 416 566 <-- randomize with gaussian distribution;
#X obj 112 221 t b f;
#X obj 10 414 +;
#X obj 10 294 f, f 2;
#X obj 10 318 t f b, f 7;
#X obj 112 170 r \$0-samperc;
#X obj 210 214 s \$0-sampercdis;
#X obj 209 189 i, f 2;
#X obj 112 198 f, f 2;
#X obj 10 390 f;
#X obj 21 245 expr $f1*$f2/100 \; $f1/($f1*$f2/100), f 18;
#X obj 10 438 expr fmod($f1 \, $f2), f 20;
#X obj 10 165 t b b f, f 8;
#X connect 0 0 26 0;
#X connect 1 0 29 0;
#X connect 2 0 47 0;
#X connect 3 0 4 0;
#X connect 4 0 44 0;
#X connect 8 0 0 0;
#X connect 9 0 44 1;
#X connect 10 0 12 0;
#X connect 11 0 13 0;
#X connect 12 0 14 0;
#X connect 12 1 0 1;
#X connect 13 0 15 0;
#X connect 13 1 1 1;
#X connect 14 0 2 0;
#X connect 15 0 2 0;
#X connect 16 0 17 0;
#X connect 18 0 19 0;
#X connect 18 0 27 0;
#X connect 18 0 32 0;
#X connect 20 0 16 0;
#X connect 20 0 18 0;
#X connect 21 0 16 0;
#X connect 21 0 18 0;
#X connect 22 0 23 0;
#X connect 23 0 24 0;
#X connect 24 0 25 0;
#X connect 24 1 26 1;
#X connect 25 0 2 0;
#X connect 26 0 1 0;
#X connect 28 0 30 0;
#X connect 29 0 5 0;
#X connect 30 0 33 0;
#X connect 30 1 34 1;
#X connect 31 0 8 0;
#X connect 31 1 5 1;
#X connect 31 2 34 0;
#X connect 33 0 2 0;
#X connect 34 0 29 1;
#X connect 36 0 45 0;
#X connect 36 1 45 1;
#X connect 37 0 44 1;
#X connect 37 0 46 0;
#X connect 38 0 39 0;
#X connect 39 0 3 0;
#X connect 39 1 9 0;
#X connect 40 0 42 0;
#X connect 40 0 43 0;
#X connect 42 0 41 0;
#X connect 43 0 36 0;
#X connect 44 0 37 0;
#X connect 45 0 38 1;
#X connect 45 1 37 1;
#X connect 46 0 31 0;
#X connect 47 0 38 0;
#X connect 47 1 43 0;
#X connect 47 2 46 1;
#X connect 47 2 45 0;
#X restore 570 159 pd tamper;
#X f 15;
#X obj 578 439 bng 19 250 50 0 empty empty empty 0 -10 0 12 #fcfcfc #000000 #000000;
#N canvas 280 100 442 119 nn_tilde_bending 0;
#X obj 17 17 inlet;
#X obj 17 73 pdcontrol;
#X msg 17 45 browse https://github.com/blazejkotowski/nn_tilde_bending;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X restore 578 463 pd nn_tilde_bending;
#X text 25 521 PUSH your changes to the selected neural net layer., f 75;
#X text 575 407 Author: Martin Heinze, f 66;
#X text 602 438 <-- click to open nn_tilde_bending Repo on Github., f 62;
#N canvas 671 269 256 183 reset 0;
#X obj 39 89 array get \$0-templayerdata;
#X obj 39 113 array set \$0-layerdata;
#X obj 16 19 r \$0-reset;
#X obj 16 43 t b b b;
#X obj 16 137 s \$0-setdatares;
#X obj 62 66 s \$0-tamperres;
#X connect 0 0 1 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 3 2 5 0;
#X restore 570 207 pd reset;
#X f 15;
#N canvas 700 298 277 269 push 0;
#X obj 33 164 list append;
#X obj 33 188 list trim;
#X obj 72 94 r \$0-layername;
#X obj 10 15 r \$0-setdata;
#X obj 33 116 symbol;
#X msg 33 140 set_weights \$1;
#X obj 107 117 array get \$0-layerdata;
#X obj 33 212 s \$0-out;
#X obj 10 40 t b b b;
#X obj 10 237 s \$0-layerselectin;
#X connect 0 0 1 0;
#X connect 1 0 7 0;
#X connect 2 0 4 1;
#X connect 3 0 8 0;
#X connect 4 0 5 0;
#X connect 5 0 0 0;
#X connect 6 0 0 1;
#X connect 8 0 9 0;
#X connect 8 1 4 0;
#X connect 8 2 6 0;
#X restore 570 231 pd push;
#X f 15;
#X text 686 158 <-- Tamper with neural net layer information;
#X obj 570 342 outlet;
#X obj 570 28 inlet;
#X text 686 254 <-- MSPrior settings;
#X text 686 182 <-- Enable/ Cache reset/ reload neural net;
#X text 25 544 When loading MSPrior models \, temperature and listen mode can be set through slider/ toggle., f 75;
#N canvas 794 148 387 282 setnn 0;
#X obj 14 11 r \$0-reload;
#X msg 54 84 reload;
#X obj 54 107 s \$0-out;
#X obj 74 61 s \$0-tamperres;
#X obj 14 35 t b b b b;
#X obj 34 131 s \$0-getnndatadummy;
#X msg 188 35 enable \$1;
#X msg 266 35 set reset True;
#X obj 188 11 r \$0-pren;
#X obj 266 11 r \$0-prcr;
#X obj 188 61 s \$0-out;
#X obj 266 61 s \$0-out;
#X obj 14 163 f \$0;
#X msg 14 188 \; \$1-layerselectin bang \; \$1-preninit 1 \; \$1-prlginit 0 \; \$1-prtmpmsinit bang \;;
#X connect 0 0 4 0;
#X connect 1 0 2 0;
#X connect 4 0 12 0;
#X connect 4 1 5 0;
#X connect 4 2 1 0;
#X connect 4 3 3 0;
#X connect 6 0 10 0;
#X connect 7 0 11 0;
#X connect 8 0 6 0;
#X connect 9 0 7 0;
#X connect 12 0 13 0;
#X restore 570 183 pd setnn;
#X f 15;
#X obj 27 28 cnv 19 385 225 empty empty Bending 5 12 0 12 #c6feff #404040 0;
#X obj 33 54 bng 14 250 50 0 \$0-getnndata \$0-getnndatadummy Initialise 18 7 0 8 #c6feff #000000 #000000;
#X floatatom 106 54 5 0 0 1 Layers \$0-nolayers \$0-nolayersdummy 8;
#X floatatom 204 78 8 0 0 2 Layer \$0-layerselectin \$0-layerselect 8;
#X floatatom 251 78 12 0 0 2 Size \$0-layerdatasize \$0-layerdatasizedummy 8;
#X floatatom 360 78 7 0 0 2 Min \$0-layerdatamin \$0-layerdatamindummy 8;
#X floatatom 318 78 7 0 0 2 Max \$0-layerdatamax \$0-layerdatamaxdummy 8;
#X listbox 33 98 73 0 0 1 - \$0-layername \$0-layernamedummy 8;
#X obj 36 78 hsl 162 14 0 78 0 0 \$0-layerselectortoi \$0-layerselector Layer\ select 45 7 0 8 #c6feff #000000 #000000 0 1;
#N canvas 1062 622 450 278 (subpatch) 0;
#X array \$0-layerdata 786432 float 2;
#X coords 0 0.369979 786432 -0.369979 280 100 1 0 0;
#X restore 33 140 graph;
#X obj 365 204 bng 36 250 50 0 \$0-setdata \$0-setdatares PUSH 6 18 0 10 #c6feff #000000 #000000;
#X obj 365 162 bng 14 250 50 0 \$0-reset \$0-resetdummy RES 18 7 0 8 #c6feff #000000 #000000;
#X obj 329 142 vsl 16 95 0 3 0 0 \$0-mltply \$0-mltplyres empty 0 -9 0 6 #9f9f9f #000000 #000000 0 1;
#X obj 313 142 vsl 16 95 -0.1 0.1 0 0 \$0-offset \$0-offsetres empty -2 -9 0 6 #dfdfdf #000000 #000000 0 1;
#X obj 365 140 tgl 14 0 \$0-flip \$0-flipres INV 18 7 0 8 #c6feff #000000 #000000 0 1;
#X obj 345 142 vsl 16 95 2 2000 0 0 \$0-seeder \$0-seederres empty 0 -9 0 6 #606060 #dfdfdf #000000 0 1;
#X obj 422 98 cnv 19 125 65 empty empty MSPrior 5 12 0 12 #ffe3c6 #404040 0;
#X obj 430 124 hsl 75 14 1 1000 0 0 \$0-prtmpms \$0-prtmpmsinit Temperature 10 7 0 8 #ffe3c6 #000000 #000000 0 1;
#X obj 427 143 tgl 14 0 \$0-prlg \$0-prlginit Listen\ mode 18 7 0 8 #ffe3c6 #000000 #000000 0 1;
#X floatatom 509 124 6 0 0 0 - \$0-prtmpms \$0-prtmpmsdummy 8;
#X obj 422 28 cnv 19 125 65 empty empty Neural\ Net 5 12 0 12 #c6ffc7 #404040 0;
#X obj 427 73 bng 14 250 50 0 \$0-prcr \$0-prcrinit Cache\ Res. 18 7 0 8 #c6ffc7 #000000 #000000;
#X obj 427 54 tgl 14 0 \$0-pren \$0-preninit Enable\ 18 7 0 8 #c6ffc7 #000000 #000000 0 1;
#X obj 497 73 bng 14 250 50 0 \$0-reload \$0-reloadinit Reload 18 7 0 8 #c6ffc7 #000000 #000000;
#N canvas 794 524 214 195 presets 0;
#X obj 17 17 loadbang;
#X obj 17 41 f \$0;
#X msg 17 64 \; \$1-preninit 0 \; \$1-prtmpmsinit 12 \; \$1-vislayerdatapres 1 \; \$1-sampercinit 100 \; \$1-after_stinit 2 \; \$1-after_tiinit 1 \; \$1-after_nbstinit 12;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 578 503 pd presets;
#X text 25 267 Bender is inspired by Błażej Kotowski's work with his fork of nn~. The component can be used to tamper with nn~ compatible based neural nets. Connect the outlet to the first inlet of any nn~ (bending) object and the dedicated outlet of nn~ (bending) to the inlet of this abstraction., f 75;
#X obj 365 184 tgl 14 0 \$0-vislayerdata \$0-vislayerdatapres PLOT 18 7 0 8 #c6feff #000000 #000000 0 1;
#X obj 169 54 tgl 14 0 \$0-showlayers \$0-showlayersinit Show 18 7 0 8 #c6feff #000000 #000000 0 1;
#X text 25 446 Tamper with the layer data by moving the sliders on the right (1st: change offset \, 2nd: change spread \, 3rd: randomize values (gaussian distribution)) or click around in the graph itself. INV inverts the array. RESet overwrites your current changes (before Pushing)., f 75;
#N canvas 613 211 139 97 getnndatacmd 0;
#X obj 12 13 r \$0-getnndata;
#X msg 12 37 layers;
#X obj 12 61 s \$0-out;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 570 111 pd getnndatacmd;
#N canvas 751 626 428 273 getldatacmd 0;
#X obj 44 61 text get \$0-wab;
#X obj 12 189 symbol;
#X msg 12 213 get_weights \$1;
#X obj 44 85 s \$0-layername;
#X obj 12 13 r \$0-layerselect;
#X obj 51 167 r \$0-layername;
#X obj 12 237 s \$0-out;
#X text 154 84 <-- Select neural net layer;
#X text 126 212 <-- Extract neural net layer information;
#X obj 79 135 s \$0-tamperres;
#X obj 12 37 t b f;
#X obj 12 110 t b b, f 10;
#X obj 12 135 del 300;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 2 0 6 0;
#X connect 4 0 10 0;
#X connect 5 0 1 1;
#X connect 10 0 11 0;
#X connect 10 1 0 0;
#X connect 11 0 12 0;
#X connect 11 1 9 0;
#X connect 12 0 1 0;
#X restore 570 135 pd getldatacmd;
#X f 15;
#X text 686 134 <-- Command to extract neural net layer information;
#X text 686 110 <-- Command to extract layers information from neural net;
#X obj 570 52 route layers layer, f 33;
#N canvas 74 55 559 473 layerdata 0;
#X obj 160 97 list length;
#X obj 160 144 array size \$0-layerdata;
#X obj 96 200 array set \$0-layerdata;
#X obj 160 120 s \$0-layerdatasize;
#X obj 44 303 array min \$0-layerdata;
#X obj 24 253 array max \$0-layerdata;
#X obj 44 328 s \$0-layerdatamin;
#X obj 24 279 s \$0-layerdatamax;
#X obj 34 44 array define \$0-templayerdata;
#X obj 160 168 array size \$0-templayerdata;
#X obj 64 225 array set \$0-templayerdata;
#X text 246 43 <-- Backup layer data for easy restore.;
#X text 261 199 <-- Write single layer data to array.;
#X text 257 224 <-- Write single layer data to temp array.;
#X text 153 278 <-- Find array max value;
#X text 173 327 <-- Find array min value;
#N canvas 836 348 316 264 normalize 0;
#X obj 99 145 f \$0;
#X obj 99 122 loadbang;
#X obj 11 12 r \$0-layerdatamax;
#X obj 11 96 t f f;
#X obj 40 122 * -1;
#X obj 69 96 r \$0-layerdatasize;
#X obj 11 168 pack f f f f, f 13;
#X msg 11 193 \; \$4-layerdata bounds 0 \$1 \$3 \$2;
#X obj 141 12 r \$0-layerdatamin;
#X obj 141 36 * -1;
#X obj 11 66 expr if($f1>$f2 \, $f1 \, $f2);
#X text 10 229 Normalize graph to array min/max values;
#X connect 0 0 6 3;
#X connect 1 0 0 0;
#X connect 2 0 10 0;
#X connect 3 0 6 0;
#X connect 3 1 4 0;
#X connect 4 0 6 1;
#X connect 5 0 6 2;
#X connect 6 0 7 0;
#X connect 8 0 9 0;
#X connect 9 0 10 1;
#X connect 10 0 3 0;
#X restore 24 361 pd normalize;
#X msg 24 419 vis \$1;
#X obj 24 441 s \$0-layerdata;
#X obj 24 397 r \$0-vislayerdata;
#X text 75 418 <-- Plot array to graph;
#X obj 24 17 inlet;
#X obj 64 112 t a a;
#X obj 24 78 t b b a a;
#X connect 0 0 3 0;
#X connect 0 0 1 0;
#X connect 0 0 9 0;
#X connect 4 0 6 0;
#X connect 5 0 7 0;
#X connect 17 0 18 0;
#X connect 19 0 17 0;
#X connect 21 0 23 0;
#X connect 22 0 10 0;
#X connect 22 1 2 0;
#X connect 23 0 5 0;
#X connect 23 1 4 0;
#X connect 23 2 22 0;
#X connect 23 3 0 0;
#X restore 684 76 pd layerdata;
#N canvas 263 84 425 579 layersdata 0;
#X msg 218 88 click;
#X obj 218 64 sel 1;
#X msg 263 88 close;
#X obj 14 64 list length;
#X msg 14 111 \$1, f 2;
#X obj 14 134 until;
#X obj 14 157 i;
#X obj 14 181 + 1;
#X obj 14 205 mod, f 6;
#X obj 14 322 list;
#X obj 14 345 list split, f 12;
#X obj 54 368 route bang;
#X obj 121 414 symbol;
#X obj 121 391 list trim;
#X obj 92 248 -;
#X obj 92 272 abs;
#X obj 14 229 t b f, f 7;
#X msg 158 138 -1, f 2;
#X obj 14 88 t f f f b, f 21;
#X obj 218 121 text define \$0-wab;
#X obj 144 493 text set \$0-wab;
#X obj 52 322 sel 1;
#X obj 42 414 symbol;
#X obj 52 298 == 1;
#X obj 14 40 t a a b, f 23;
#X msg 172 88 clear;
#X obj 14 391 route list;
#X msg 167 470 1e+25;
#X obj 14 16 inlet;
#X text 261 492 <-- Write neural net layers information to text object., f 20;
#X obj 121 517 text size \$0-wab;
#X obj 121 444 t b a b;
#X obj 121 541 s \$0-nolayers;
#N canvas 879 157 322 132 selector 0;
#X obj 11 16 r \$0-nolayers;
#X msg 43 64 range 0 \$1;
#X obj 11 94 s \$0-layerselector;
#X obj 148 16 r \$0-layerselectortoi;
#X obj 148 40 i;
#X obj 148 94 s \$0-layerselectin;
#X obj 11 40 t b f;
#X msg 11 64 0, f 2;
#X connect 0 0 6 0;
#X connect 1 0 2 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 6 0 7 0;
#X connect 6 1 1 0;
#X connect 7 0 2 0;
#X restore 32 541 pd selector;
#X obj 218 40 tgl 19 0 empty \$0-showlayers Show 25 9 0 12 #fcfcfc #000000 #000000 0 1;
#X connect 0 0 19 0;
#X connect 1 0 0 0;
#X connect 1 1 2 0;
#X connect 2 0 19 0;
#X connect 3 0 18 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 7 0 6 1;
#X connect 8 0 16 0;
#X connect 9 0 10 0;
#X connect 10 0 26 0;
#X connect 10 1 11 0;
#X connect 11 1 13 0;
#X connect 12 0 31 0;
#X connect 13 0 12 0;
#X connect 14 0 15 0;
#X connect 15 0 10 1;
#X connect 15 0 23 0;
#X connect 16 0 9 0;
#X connect 16 1 14 0;
#X connect 17 0 6 1;
#X connect 18 0 4 0;
#X connect 18 1 8 1;
#X connect 18 2 14 1;
#X connect 18 3 17 0;
#X connect 21 0 22 0;
#X connect 22 0 31 0;
#X connect 23 0 21 0;
#X connect 24 0 3 0;
#X connect 24 1 9 1;
#X connect 24 2 25 0;
#X connect 25 0 19 0;
#X connect 26 1 22 1;
#X connect 27 0 20 1;
#X connect 28 0 24 0;
#X connect 30 0 32 0;
#X connect 31 0 30 0;
#X connect 31 1 20 0;
#X connect 31 2 27 0;
#X connect 34 0 1 0;
#X restore 570 76 pd layersdata;
#X f 15;
#X obj 139 122 hsl 220 14 1 100 0 0 \$0-samperc \$0-sampercinit Sample\ % 90 7 0 8 #c6feff #000000 #000000 0 1;
#X floatatom 365 122 5 0 0 2 - \$0-sampercdis \$0-sampercdisdummy 8;
#X text 25 369 By selecting a layer via the horizontal slider \, its contents are being loaded into the \$0-layerdata array. Graph normalization is applied., f 75;
#X text 25 409 Change the percentage of array datapoints selection with from 0-100% via the 'Sample %' horizontal slider., f 75;
#X text 25 332 'Initialise' reads all layers information from the neural net and stores the information into a text object., f 75;
#X obj 824 28 inlet;
#X obj 824 52 s \$0-reloadinit;
#X obj 422 168 cnv 19 125 85 empty empty AFTER 5 12 0 12 #e3c6ff #404040 0;
#X obj 428 193 hsl 75 14 0 5 0 0 \$0-after_st \$0-after_stinit Structure 18 7 0 8 #e3c6ff #000000 #000000 0 1;
#X floatatom 507 193 6 0 0 0 - \$0-after_st \$0-after_stdummy 8;
#X obj 428 213 hsl 75 14 0 3 0 0 \$0-after_ti \$0-after_tiinit Timbre 24 7 0 8 #e3c6ff #000000 #000000 0 1;
#X floatatom 507 213 6 0 0 0 - \$0-after_ti \$0-after_tidummy 8;
#X obj 428 233 hsl 75 14 0 16 0 0 \$0-after_nbst \$0-after_nbstinit NB\ steps 22 7 0 8 #e3c6ff #000000 #000000 0 1;
#X floatatom 507 233 6 0 0 0 - \$0-after_nbstdis \$0-after_nbstdummy 8;
#X text 575 387 Last updated 01.05.2025, f 66;
#X text 25 584 When loading AFTER models \, structure and timbre guidance as well as NB steps parameter can be set through sliders., f 75;
#N canvas 644 394 237 292 set_after 0;
#X msg 12 239 set nb_steps \$1;
#X msg 12 112 set guidance_timbre \$1;
#X msg 12 35 set guidance_structure \$1;
#X obj 12 11 r \$0-after_st;
#X obj 12 88 r \$0-after_ti;
#X obj 12 165 r \$0-after_nbst;
#X obj 12 59 s \$0-out;
#X obj 12 136 s \$0-out;
#X obj 12 263 s \$0-out;
#X obj 12 189 i;
#X obj 22 213 s \$0-after_nbstdis;
#X connect 0 0 8 0;
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 3 0 2 0;
#X connect 4 0 1 0;
#X connect 5 0 9 0;
#X connect 9 0 0 0;
#X connect 9 0 10 0;
#X restore 570 279 pd set_after;
#X f 15;
#N canvas 644 394 388 150 set_msprior 0;
#X msg 11 37 set temperature \$1;
#X obj 11 14 r \$0-prtmpms;
#X obj 11 60 s \$0-out;
#X msg 169 86 set listen \$1;
#X msg 169 60 symbol False;
#X msg 271 60 symbol True;
#X obj 169 14 r \$0-prlg;
#X obj 169 108 s \$0-out;
#X obj 169 37 sel 0, f 15;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 3 0 7 0;
#X connect 4 0 3 0;
#X connect 5 0 3 0;
#X connect 6 0 8 0;
#X connect 8 0 4 0;
#X connect 8 1 5 0;
#X restore 570 255 pd set_msprior;
#X f 15;
#X text 686 278 <-- AFTER settings;
#X connect 0 0 12 0;
#X connect 4 0 5 0;
#X connect 13 0 51 0;
#X connect 51 0 53 0;
#X connect 51 1 52 0;
#X connect 59 0 60 0;
#X coords 0 -1 1 1 535 240 2 20 20;