aboutsummaryrefslogtreecommitdiff
path: root/adaptive/examples/05.tracking.pd
blob: 0713c267983da7f115a7c95b9d3e75f3afe90387 (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
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
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
#N canvas 320 114 944 684 10;
#N canvas 10 567 727 354 unknown_system~ 0;
#X obj 26 26 inlet~;
#X obj 24 323 outlet~;
#X text 229 33 y[n] = ramp*x[0] + x[-1] + ramp*x[-2] + x[-3] + ramp*x[-4]
+ x[-5] + ramp*x[-6] + x[-7] + ramp*x[-7];
#X text 228 74 and ramp decreases linearly from 1 to -1;
#X obj 25 238 *~;
#X obj 41 213 r~ ramp;
#X obj 61 188 z~ 1;
#X obj 106 188 z~ 2;
#X obj 105 237 *~;
#X obj 121 212 r~ ramp;
#X obj 189 236 *~;
#X obj 205 211 r~ ramp;
#X obj 145 187 z~ 3;
#X obj 190 187 z~ 4;
#X obj 276 236 *~;
#X obj 292 211 r~ ramp;
#X obj 361 236 *~;
#X obj 377 211 r~ ramp;
#X obj 232 187 z~ 5;
#X obj 277 187 z~ 6;
#X obj 317 187 z~ 7;
#X obj 362 187 z~ 8;
#N canvas 0 0 411 300 ramp 0;
#X obj 21 266 outlet~;
#X obj 22 195 line~;
#X obj 22 95 t b b;
#X msg 52 118 1;
#X floatatom 134 157 8 0 0 0 - - -;
#X text 198 158 2000 samples in ms;
#X obj 22 35 inlet;
#X obj 199 223 snapshot~;
#X floatatom 202 251 5 0 0 0 - - -;
#X obj 206 201 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 125 55 r length;
#X obj 125 78 f 2000;
#X obj 175 102 samplerate~;
#X obj 175 80 loadbang;
#X obj 125 124 / 44.1;
#X obj 175 123 / 1000;
#X obj 22 164 pack -1 45;
#X connect 1 0 0 0;
#X connect 1 0 7 0;
#X connect 2 0 16 0;
#X connect 2 1 3 0;
#X connect 3 0 1 0;
#X connect 6 0 2 0;
#X connect 7 0 8 0;
#X connect 9 0 7 0;
#X connect 10 0 11 0;
#X connect 11 0 14 0;
#X connect 12 0 15 0;
#X connect 13 0 12 0;
#X connect 14 0 4 0;
#X connect 14 0 16 1;
#X connect 15 0 14 1;
#X connect 16 0 1 0;
#X restore 505 210 pd ramp;
#X obj 505 231 s~ ramp;
#X obj 505 187 r start_ramp;
#X obj 567 279 snapshot~;
#X msg 567 232 1;
#X obj 568 211 loadbang;
#X obj 567 303 s h_even;
#X obj 643 304 s h_odd;
#X msg 643 281 1;
#X obj 567 256 metro 100;
#X connect 0 0 4 0;
#X connect 0 0 6 0;
#X connect 0 0 7 0;
#X connect 0 0 12 0;
#X connect 0 0 13 0;
#X connect 0 0 18 0;
#X connect 0 0 19 0;
#X connect 0 0 20 0;
#X connect 0 0 21 0;
#X connect 4 0 1 0;
#X connect 5 0 4 1;
#X connect 6 0 1 0;
#X connect 7 0 8 0;
#X connect 8 0 1 0;
#X connect 9 0 8 1;
#X connect 10 0 1 0;
#X connect 11 0 10 1;
#X connect 12 0 1 0;
#X connect 13 0 10 0;
#X connect 14 0 1 0;
#X connect 15 0 14 1;
#X connect 16 0 1 0;
#X connect 17 0 16 1;
#X connect 18 0 1 0;
#X connect 19 0 14 0;
#X connect 20 0 1 0;
#X connect 21 0 16 0;
#X connect 22 0 23 0;
#X connect 22 0 25 0;
#X connect 24 0 22 0;
#X connect 25 0 28 0;
#X connect 26 0 31 0;
#X connect 27 0 26 0;
#X connect 30 0 29 0;
#X connect 31 0 25 0;
#X connect 31 0 30 0;
#X restore 172 197 pd unknown_system~;
#X obj 99 355 tgl 20 0 audio_io empty empty 0 -6 0 8 -262144 -1 -1
1 1;
#X text 124 357 <- Audio IO;
#N canvas 660 263 433 287 adaptive_filter~ 0;
#X obj 37 35 inlet~;
#X text 22 15 input signal;
#X obj 143 35 inlet~;
#X text 122 15 desired signal;
#X obj 37 255 outlet~;
#X msg 249 63 adaptation 1;
#X obj 249 42 loadbang;
#X obj 249 94 r mu;
#X msg 249 135 mu \$1;
#X obj 37 149 lms2~ 9 1e-04;
#X obj 313 114 r read;
#N canvas 0 0 450 300 read_coef 0;
#X obj 18 23 inlet;
#X msg 32 106 read coef.dat;
#X obj 18 189 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 313 136 pd read_coef;
#X obj 249 114 / 1000;
#N canvas 732 262 450 300 calc_misalignment 0;
#X obj 12 14 inlet;
#X obj 12 45 unpack f f f f f f f f f;
#X obj 12 76 sig~;
#X obj 45 76 sig~;
#X obj 78 76 sig~;
#X obj 111 76 sig~;
#X obj 144 76 sig~;
#X obj 177 76 sig~;
#X obj 209 76 sig~;
#X obj 242 76 sig~;
#X obj 275 76 sig~;
#X obj 13 104 r~ ramp;
#X obj 13 129 -~;
#X obj 44 129 -~ 1;
#X obj 79 105 r~ ramp;
#X obj 79 130 -~;
#X obj 110 130 -~ 1;
#X obj 145 104 r~ ramp;
#X obj 145 129 -~;
#X obj 176 129 -~ 1;
#X obj 210 104 r~ ramp;
#X obj 210 129 -~;
#X obj 241 129 -~ 1;
#X obj 275 105 r~ ramp;
#X obj 275 130 -~;
#X obj 146 205 /~ 9;
#X obj 146 227 s~ misalignment;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 3 0;
#X connect 1 2 4 0;
#X connect 1 3 5 0;
#X connect 1 4 6 0;
#X connect 1 5 7 0;
#X connect 1 6 8 0;
#X connect 1 7 9 0;
#X connect 1 8 10 0;
#X connect 2 0 12 0;
#X connect 3 0 13 0;
#X connect 4 0 15 0;
#X connect 5 0 16 0;
#X connect 6 0 18 0;
#X connect 7 0 19 0;
#X connect 8 0 21 0;
#X connect 9 0 22 0;
#X connect 10 0 24 0;
#X connect 11 0 12 1;
#X connect 12 0 25 0;
#X connect 13 0 25 0;
#X connect 14 0 15 1;
#X connect 15 0 25 0;
#X connect 16 0 25 0;
#X connect 17 0 18 1;
#X connect 18 0 25 0;
#X connect 19 0 25 0;
#X connect 20 0 21 1;
#X connect 21 0 25 0;
#X connect 22 0 25 0;
#X connect 23 0 24 1;
#X connect 24 0 25 0;
#X connect 25 0 26 0;
#X restore 249 185 pd calc_misalignment;
#N canvas 0 0 450 300 send_coef 0;
#X obj 25 68 unpack f f f f f f f f f;
#X obj 25 261 s _0;
#X obj 57 261 s _1;
#X obj 89 261 s _2;
#X obj 121 261 s _3;
#X obj 153 261 s _4;
#X obj 185 261 s _5;
#X obj 217 261 s _6;
#X obj 249 261 s _7;
#X obj 281 261 s _8;
#X obj 25 42 inlet;
#X obj 25 102 speedlim 100;
#X obj 45 130 speedlim 100;
#X obj 65 154 speedlim 100;
#X obj 86 180 speedlim 100;
#X obj 116 103 speedlim 100;
#X obj 136 131 speedlim 100;
#X obj 156 155 speedlim 100;
#X obj 177 181 speedlim 100;
#X obj 270 181 speedlim 100;
#X connect 0 0 11 0;
#X connect 0 1 12 0;
#X connect 0 2 13 0;
#X connect 0 3 14 0;
#X connect 0 4 15 0;
#X connect 0 5 16 0;
#X connect 0 6 17 0;
#X connect 0 7 18 0;
#X connect 0 8 19 0;
#X connect 10 0 0 0;
#X connect 11 0 1 0;
#X connect 12 0 2 0;
#X connect 13 0 3 0;
#X connect 14 0 4 0;
#X connect 15 0 5 0;
#X connect 16 0 6 0;
#X connect 17 0 7 0;
#X connect 18 0 8 0;
#X connect 19 0 9 0;
#X restore 123 231 pd send_coef;
#X connect 0 0 9 0;
#X connect 2 0 9 1;
#X connect 5 0 9 0;
#X connect 6 0 5 0;
#X connect 7 0 12 0;
#X connect 8 0 9 0;
#X connect 9 0 4 0;
#X connect 9 2 13 0;
#X connect 9 2 14 0;
#X connect 10 0 11 0;
#X connect 11 0 9 0;
#X connect 12 0 8 0;
#X restore 43 297 pd adaptive_filter~;
#X text 51 201 x[n];
#X text 183 219 d[n];
#X text 33 316 y[n];
#X floatatom 406 89 5 0 0 0 mu: mur mu;
#N canvas 215 124 811 210 init 0;
#X obj 321 45 loadbang;
#X obj 330 124 s mur;
#X msg 625 114 \; pd dsp \$1;
#X obj 625 89 r audio_io;
#X obj 395 127 s noiser;
#X obj 463 130 s amp_in_r;
#X msg 463 108 100;
#X obj 175 146 s lengthr;
#X msg 176 125 2000;
#X msg 394 104 100;
#X msg 329 100 1;
#X connect 0 0 10 0;
#X connect 0 0 9 0;
#X connect 0 0 6 0;
#X connect 0 0 8 0;
#X connect 3 0 2 0;
#X connect 6 0 5 0;
#X connect 8 0 7 0;
#X connect 9 0 4 0;
#X connect 10 0 1 0;
#X restore 845 651 pd init;
#N canvas 0 145 485 394 PROBLEM_DESCRIPTION 0;
#X text 29 288 unknown system:;
#X text 201 29 TRACKING;
#X text 30 118 The number of coefficients N=9 for the unknown and the
adaptive system.;
#X text 30 156 For an observation interval of 2000 samples \, the coefficients
ot the unknown system do not remain constant: all even-indexed coefficients
(h[0] \, h[2] \, ...) decrease linearly from the initial 1 to a final
-1 \, all odd-indexed coefficients are constant 1;
#X text 30 232 At the beginning the adaptive system has already found
the unknown system (so all coefficients are 1).;
#X text 55 308 h(n)= 1 for n=0..8;
#X text 60 352 N = 9;
#X text 29 333 number of coefficients for filter and unknown system:
;
#X text 32 66 In this example we want to examine the tracking behaviour
of the LMS-algorithm in a time varying noisy sytem idebtification problem.
;
#X restore 34 94 pd PROBLEM_DESCRIPTION;
#X text 33 73 ReadMe:;
#N canvas 0 0 320 300 input_signal~ 0;
#X obj 89 69 noise~;
#X obj 89 196 *~;
#X obj 89 255 outlet~;
#X text 65 43 white signal:;
#X obj 105 151 r amp_in;
#X obj 105 174 dbtorms;
#X obj 219 212 env~;
#X obj 219 232 dbtorms;
#X obj 219 254 s in_power;
#X obj 107 223 s~ in_sig;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 0 6 0;
#X connect 1 0 9 0;
#X connect 4 0 5 0;
#X connect 5 0 1 1;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X restore 43 170 pd input_signal~;
#X obj 172 260 +~;
#N canvas 0 0 450 300 add_noise~ 0;
#X obj 142 69 noise~;
#X obj 142 173 *~;
#X obj 158 111 r noise;
#X obj 142 251 outlet~;
#X obj 158 143 dbtorms;
#X obj 266 191 s~ add-noise;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 1 0 5 0;
#X connect 2 0 4 0;
#X connect 4 0 1 1;
#X restore 224 244 pd add_noise~;
#X floatatom 769 87 5 0 0 1 dB noiser noise;
#X floatatom 581 88 5 0 0 1 dB amp_in_r amp_in;
#N canvas 0 0 450 300 graph3 0;
#X array MSE 20000 float 0;
#X coords 0 100 19999 90 400 140 1;
#X restore 405 254 graph;
#N canvas 391 507 889 385 visualisation 0;
#X obj 29 34 r start;
#X obj 29 295 tabwrite~ MSE;
#X obj 505 84 t b f;
#X text 462 23 MSE:;
#X obj 444 116 +;
#X obj 617 65 r~ add-noise;
#X obj 617 109 dbtorms;
#X obj 617 133 s noise_power;
#X obj 168 194 r~ add-noise;
#X obj 56 221 +~;
#X obj 429 268 loadbang;
#X obj 444 64 r excess;
#X obj 505 64 r noise_power;
#X obj 459 144 s mse;
#X obj 458 194 s mse_db;
#X obj 444 169 rmstodb;
#X obj 617 87 env~ 64;
#X obj 56 249 env~ 64;
#X msg 429 302 \; MSE xticks 0 500 5;
#X obj 29 60 t b b b;
#X obj 51 121 s start_ramp;
#X obj 57 162 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 294 24 Excess Error:;
#X obj 294 192 dbtorms;
#X obj 309 157 s excess_db;
#X obj 314 221 s excess;
#X obj 294 133 env~ 64;
#X floatatom 365 193 5 0 0 0 - - -;
#X obj 293 64 r~ misalignment;
#X obj 311 90 r~ in_sig;
#X obj 294 111 *~;
#X msg 552 337 \; MSE ylabel 20600 90 95 100;
#X msg 563 302 \; MSE xlabel 89 0 5000 10000 15000 20000;
#X connect 0 0 19 0;
#X connect 2 0 4 0;
#X connect 2 1 4 1;
#X connect 4 0 13 0;
#X connect 4 0 15 0;
#X connect 5 0 16 0;
#X connect 6 0 7 0;
#X connect 8 0 9 1;
#X connect 9 0 17 0;
#X connect 10 0 31 0;
#X connect 10 0 18 0;
#X connect 10 0 32 0;
#X connect 11 0 4 0;
#X connect 12 0 2 0;
#X connect 15 0 14 0;
#X connect 16 0 6 0;
#X connect 17 0 1 0;
#X connect 19 0 1 0;
#X connect 19 0 21 0;
#X connect 19 1 20 0;
#X connect 23 0 25 0;
#X connect 26 0 23 0;
#X connect 26 0 24 0;
#X connect 26 0 27 0;
#X connect 28 0 30 0;
#X connect 29 0 30 1;
#X connect 30 0 26 0;
#X connect 30 0 9 0;
#X restore 727 651 pd visualisation;
#X text 385 105 (step-size);
#X text 502 88 in-signal:;
#X floatatom 581 105 6 0 0 1 rms in_power -;
#X floatatom 769 104 6 0 0 1 rms noise_power -;
#X text 693 87 add-noise:;
#X text 468 216 MSE:;
#X floatatom 508 215 5 0 0 1 dB mse_db -;
#X floatatom 585 215 7 0 0 1 rms mse -;
#X text 566 214 ->;
#X text 787 228 MSE [dB];
#X text 827 399 [samples];
#X text 30 23 TRACKING - TIME VARYING NOISY SYSTEM IDENTIFICATION;
#N canvas 0 0 450 110 NEEDED_EXTERNALS 0;
#X text 17 31 For this patch you will need the zexy external by IOhannes
Zmoelnig and the iemlib by Thomas Musil.;
#X text 18 70 You can download them here: http://pd.iem.at;
#X restore 793 7 pd NEEDED_EXTERNALS;
#X text 444 90 e-03;
#X text 536 104 power:;
#X text 724 104 power:;
#X floatatom 508 155 8 0 0 0 - lengthr length;
#X text 421 154 ramp-length:;
#X text 568 155 samples;
#X text 407 198 Excess Error:;
#X floatatom 508 198 5 0 0 1 dB excess_db -;
#X floatatom 585 198 7 0 0 1 rms excess -;
#X text 566 197 ->;
#X obj 99 399 vradio 15 1 0 3 empty empty empty 0 -6 0 8 -262144 -1
-1 2;
#X text 116 398 too small mu;
#X text 117 414 too big mu;
#X text 117 428 proper step size;
#N canvas 500 68 462 300 OBSERVATIONS 0;
#X text 20 19 OBSERVATIONS;
#X text 20 94 1.study:;
#X text 42 124 too big mu: unstable;
#X text 20 63 See the effect of different step sizes mu.;
#X text 43 135 proper mu: adaptation works;
#X text 19 182 Now we try to find the optimal step size mu.;
#X text 19 207 2.study: candidate step sizes;
#X text 42 112 too small mu: adaptation not possible;
#X text 43 229 the optimal mu is something about mu=0.004;
#X text 43 244 for mu < 0.004 the adaptation needs more time;
#X text 43 258 for mu > 0.004 the coefficients are very unprecise;
#X restore 34 116 pd OBSERVATIONS;
#N canvas 0 0 450 300 graph1 0;
#X array unknown 10 float 2;
#X coords 0 1.2 9 -1.2 200 140 1;
#X restore 400 474 graph;
#N canvas 0 0 450 300 graph1 0;
#X array adaptive 10 float 2;
#X coords 0 1.2 9 -1.2 200 140 1;
#X restore 691 472 graph;
#X text 351 451 impulse response unknown system:;
#X text 635 450 impulse response adaptive system:;
#N canvas 37 0 1161 468 draw_tables 0;
#X obj 37 20 r _0;
#X obj 37 85 tabwrite adaptive;
#X msg 151 61 1;
#X obj 37 44 t f b;
#X obj 188 86 tabwrite adaptive;
#X obj 188 45 t f b;
#X obj 341 86 tabwrite adaptive;
#X obj 341 45 t f b;
#X obj 490 87 tabwrite adaptive;
#X obj 490 46 t f b;
#X obj 643 89 tabwrite adaptive;
#X obj 643 48 t f b;
#X msg 302 62 2;
#X msg 455 62 3;
#X msg 604 63 4;
#X msg 757 65 5;
#X obj 188 21 r _1;
#X obj 341 21 r _2;
#X obj 490 22 r _3;
#X obj 643 24 r _4;
#X obj 37 179 tabwrite adaptive;
#X obj 37 138 t f b;
#X obj 190 179 tabwrite adaptive;
#X obj 190 138 t f b;
#X obj 339 180 tabwrite adaptive;
#X obj 339 139 t f b;
#X obj 492 182 tabwrite adaptive;
#X obj 492 141 t f b;
#X msg 151 155 6;
#X msg 304 155 7;
#X msg 453 156 8;
#X msg 606 158 9;
#X obj 37 114 r _5;
#X obj 190 114 r _6;
#X obj 339 115 r _7;
#X obj 492 117 r _8;
#X obj 36 252 r h_even;
#X obj 187 252 r h_odd;
#X msg 150 290 1;
#X obj 36 273 t f b;
#X obj 187 274 t f b;
#X obj 340 274 t f b;
#X obj 489 275 t f b;
#X obj 642 277 t f b;
#X msg 301 291 2;
#X msg 454 291 3;
#X msg 603 292 4;
#X msg 756 294 5;
#X obj 36 367 t f b;
#X obj 189 367 t f b;
#X obj 338 368 t f b;
#X obj 491 370 t f b;
#X msg 150 384 6;
#X msg 303 384 7;
#X msg 452 385 8;
#X msg 605 387 9;
#X obj 36 314 tabwrite unknown;
#X obj 187 315 tabwrite unknown;
#X obj 340 315 tabwrite unknown;
#X obj 489 316 tabwrite unknown;
#X obj 642 318 tabwrite unknown;
#X obj 36 408 tabwrite unknown;
#X obj 189 408 tabwrite unknown;
#X obj 338 409 tabwrite unknown;
#X obj 491 411 tabwrite unknown;
#X obj 340 253 r h_even;
#X obj 642 255 r h_even;
#X obj 189 346 r h_even;
#X obj 491 349 r h_even;
#X obj 489 254 r h_odd;
#X obj 36 345 r h_odd;
#X obj 338 347 r h_odd;
#X obj 861 114 loadbang;
#X msg 861 142 \; adaptive yticks 0 0.1 5;
#X msg 861 181 \; adaptive ylabel 9.7 -1 -0.5 0 0.5 1;
#X msg 860 217 \; unknown yticks 0 0.1 5;
#X msg 860 256 \; unknown ylabel 9.7 -1 -0.5 0 0.5 1;
#X connect 0 0 3 0;
#X connect 2 0 1 1;
#X connect 3 0 1 0;
#X connect 3 1 2 0;
#X connect 5 0 4 0;
#X connect 5 1 12 0;
#X connect 7 0 6 0;
#X connect 7 1 13 0;
#X connect 9 0 8 0;
#X connect 9 1 14 0;
#X connect 11 0 10 0;
#X connect 11 1 15 0;
#X connect 12 0 4 1;
#X connect 13 0 6 1;
#X connect 14 0 8 1;
#X connect 15 0 10 1;
#X connect 16 0 5 0;
#X connect 17 0 7 0;
#X connect 18 0 9 0;
#X connect 19 0 11 0;
#X connect 21 0 20 0;
#X connect 21 1 28 0;
#X connect 23 0 22 0;
#X connect 23 1 29 0;
#X connect 25 0 24 0;
#X connect 25 1 30 0;
#X connect 27 0 26 0;
#X connect 27 1 31 0;
#X connect 28 0 20 1;
#X connect 29 0 22 1;
#X connect 30 0 24 1;
#X connect 31 0 26 1;
#X connect 32 0 21 0;
#X connect 33 0 23 0;
#X connect 34 0 25 0;
#X connect 35 0 27 0;
#X connect 36 0 39 0;
#X connect 37 0 40 0;
#X connect 38 0 56 1;
#X connect 39 0 56 0;
#X connect 39 1 38 0;
#X connect 40 0 57 0;
#X connect 40 1 44 0;
#X connect 41 0 58 0;
#X connect 41 1 45 0;
#X connect 42 0 59 0;
#X connect 42 1 46 0;
#X connect 43 0 60 0;
#X connect 43 1 47 0;
#X connect 44 0 57 1;
#X connect 45 0 58 1;
#X connect 46 0 59 1;
#X connect 47 0 60 1;
#X connect 48 0 61 0;
#X connect 48 1 52 0;
#X connect 49 0 62 0;
#X connect 49 1 53 0;
#X connect 50 0 63 0;
#X connect 50 1 54 0;
#X connect 51 0 64 0;
#X connect 51 1 55 0;
#X connect 52 0 61 1;
#X connect 53 0 62 1;
#X connect 54 0 63 1;
#X connect 55 0 64 1;
#X connect 65 0 41 0;
#X connect 66 0 43 0;
#X connect 67 0 49 0;
#X connect 68 0 51 0;
#X connect 69 0 42 0;
#X connect 70 0 48 0;
#X connect 71 0 50 0;
#X connect 72 0 73 0;
#X connect 72 0 74 0;
#X connect 72 0 75 0;
#X connect 72 0 76 0;
#X restore 623 651 pd draw_tables;
#N canvas 40 12 435 335 mu-study-1 0;
#X obj 24 21 inlet;
#X obj 79 128 s mur;
#X obj 138 128 s noiser;
#X obj 200 128 s amp_in_r;
#X obj 24 126 s start;
#X msg 24 103 bang;
#X msg 200 105 100;
#X obj 78 202 s mur;
#X obj 120 203 s noiser;
#X obj 181 203 s amp_in_r;
#X obj 23 201 s start;
#X msg 23 178 bang;
#X obj 77 279 s mur;
#X obj 119 280 s noiser;
#X obj 180 280 s amp_in_r;
#X obj 22 278 s start;
#X msg 22 255 bang;
#X obj 24 50 sel 0 1 2;
#X msg 137 105 100;
#X msg 119 180 100;
#X msg 181 180 100;
#X msg 180 257 100;
#X msg 120 257 100;
#X msg 78 179 1000;
#X msg 77 256 1;
#X obj 275 128 s read;
#X obj 257 203 s read;
#X obj 256 280 s read;
#X obj 24 78 t b b b;
#X obj 23 153 t b b b;
#X obj 22 230 t b b b;
#X msg 79 105 1e-05;
#X connect 0 0 17 0;
#X connect 5 0 4 0;
#X connect 6 0 3 0;
#X connect 11 0 10 0;
#X connect 16 0 15 0;
#X connect 17 0 28 0;
#X connect 17 1 29 0;
#X connect 17 2 30 0;
#X connect 18 0 2 0;
#X connect 19 0 8 0;
#X connect 20 0 9 0;
#X connect 21 0 14 0;
#X connect 22 0 13 0;
#X connect 23 0 7 0;
#X connect 24 0 12 0;
#X connect 28 0 5 0;
#X connect 28 1 31 0;
#X connect 28 1 18 0;
#X connect 28 1 6 0;
#X connect 28 2 25 0;
#X connect 29 0 11 0;
#X connect 29 1 23 0;
#X connect 29 1 19 0;
#X connect 29 1 20 0;
#X connect 29 2 26 0;
#X connect 30 0 16 0;
#X connect 30 1 24 0;
#X connect 30 1 22 0;
#X connect 30 1 21 0;
#X connect 30 2 27 0;
#X connect 31 0 1 0;
#X restore 99 446 pd mu-study-1;
#N canvas 56 35 192 821 mu-study-2 0;
#X obj 24 21 inlet;
#X obj 79 127 s mur;
#X obj 24 126 s start;
#X msg 24 103 bang;
#X obj 78 202 s mur;
#X obj 23 201 s start;
#X msg 23 178 bang;
#X obj 77 279 s mur;
#X obj 22 278 s start;
#X msg 22 255 bang;
#X obj 24 50 sel 0 1 2 3 4 5 6 7;
#X obj 77 352 s mur;
#X obj 22 351 s start;
#X msg 22 328 bang;
#X obj 76 427 s mur;
#X obj 21 426 s start;
#X msg 21 403 bang;
#X obj 75 504 s mur;
#X obj 20 503 s start;
#X msg 20 480 bang;
#X obj 75 580 s mur;
#X obj 20 579 s start;
#X msg 20 556 bang;
#X obj 74 657 s mur;
#X obj 19 656 s start;
#X msg 19 633 bang;
#X msg 75 557 1;
#X obj 24 78 t b b b;
#X obj 23 153 t b b b;
#X obj 22 230 t b b b;
#X obj 22 303 t b b b;
#X obj 21 378 t b b b;
#X obj 20 455 t b b b;
#X obj 20 531 t b b b;
#X obj 19 608 t b b b;
#X obj 119 127 s read;
#X obj 118 202 s read;
#X obj 117 279 s read;
#X obj 117 352 s read;
#X obj 116 427 s read;
#X obj 115 504 s read;
#X obj 115 580 s read;
#X obj 114 657 s read;
#X msg 79 104 100;
#X msg 78 179 10;
#X msg 74 634 0.1;
#X msg 75 481 2;
#X msg 76 405 4;
#X msg 77 329 6;
#X msg 77 256 8;
#X connect 0 0 10 0;
#X connect 3 0 2 0;
#X connect 6 0 5 0;
#X connect 9 0 8 0;
#X connect 10 0 27 0;
#X connect 10 1 28 0;
#X connect 10 2 29 0;
#X connect 10 3 30 0;
#X connect 10 4 31 0;
#X connect 10 5 32 0;
#X connect 10 6 33 0;
#X connect 10 7 34 0;
#X connect 13 0 12 0;
#X connect 16 0 15 0;
#X connect 19 0 18 0;
#X connect 22 0 21 0;
#X connect 25 0 24 0;
#X connect 26 0 20 0;
#X connect 27 0 3 0;
#X connect 27 1 43 0;
#X connect 27 2 35 0;
#X connect 28 0 6 0;
#X connect 28 1 44 0;
#X connect 28 2 36 0;
#X connect 29 0 9 0;
#X connect 29 1 49 0;
#X connect 29 2 37 0;
#X connect 30 0 13 0;
#X connect 30 1 48 0;
#X connect 30 2 38 0;
#X connect 31 0 16 0;
#X connect 31 1 47 0;
#X connect 31 2 39 0;
#X connect 32 0 19 0;
#X connect 32 1 46 0;
#X connect 32 2 40 0;
#X connect 33 0 22 0;
#X connect 33 1 26 0;
#X connect 33 2 41 0;
#X connect 34 0 25 0;
#X connect 34 1 45 0;
#X connect 34 2 42 0;
#X connect 43 0 1 0;
#X connect 44 0 4 0;
#X connect 45 0 23 0;
#X connect 46 0 17 0;
#X connect 47 0 14 0;
#X connect 48 0 11 0;
#X connect 49 0 7 0;
#X restore 99 632 pd mu-study-2;
#X obj 99 509 vradio 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1
-1 7;
#X text 97 488 candidate step sizes:;
#X text 117 508 mu=0.1;
#X text 117 523 mu=0.01;
#X text 117 538 mu=0.008;
#X text 117 553 mu=0.006;
#X text 117 568 mu=0.004;
#X text 117 583 mu=0.002;
#X text 117 598 mu=0.001;
#X text 117 614 mu=0.0001;
#X connect 0 0 12 0;
#X connect 11 0 0 0;
#X connect 11 0 3 0;
#X connect 12 0 3 1;
#X connect 13 0 12 1;
#X connect 41 0 51 0;
#X connect 53 0 52 0;